ATS Jobs Scraper - Workday, Greenhouse, Lever, Ashby & More avatar

ATS Jobs Scraper - Workday, Greenhouse, Lever, Ashby & More

Pricing

from $0.60 / 1,000 job postings

Go to Apify Store
ATS Jobs Scraper - Workday, Greenhouse, Lever, Ashby & More

ATS Jobs Scraper - Workday, Greenhouse, Lever, Ashby & More

[💵 $1.00 / 1K] Scrape open jobs across 7 ATS platforms - Workday, Greenhouse, Lever, Ashby, SmartRecruiters, Recruitee, Personio - in one unified schema. Auto-detects each company's ATS. Monitoring mode returns only new jobs since your last run.

Pricing

from $0.60 / 1,000 job postings

Rating

0.0

(0)

Developer

WebData Labs

WebData Labs

Maintained by Community

Actor stats

0

Bookmarked

12

Total users

8

Monthly active users

6 days ago

Last modified

Share

ATS Jobs Scraper - Workday, Greenhouse, Lever, Ashby, SmartRecruiters, Recruitee, Personio

Scrape open jobs across 7 major ATS platforms in one run, one unified schema. Give it company slugs; it auto-detects which ATS each company uses and returns clean, enriched job rows. Turn on monitoring mode to get only the jobs posted since your last run.

Most ATS scrapers cover a single platform and hand back that platform's raw shape. This Actor reads the official public job-board APIs of Workday, Greenhouse, Lever, Ashby, SmartRecruiters, Recruitee, and Personio, auto-detects the ATS per company, and normalizes everything into one consistent schema with remote flags, departments, locations, and posting dates - ready for recruiting, sourcing, job-board aggregation, or B2B sales-signal workflows.

✅ What you get / ❌ what this isn't

This Actor gives youThis Actor is not
Open jobs from 7 ATS platforms in one unified schemaNot a job-board with login-gated or paid postings
Automatic ATS detection per company (or force it with a prefix)Not a company-discovery tool (you provide the slugs)
Monitoring mode: only new jobs since your last run, per companyNot affiliated with any of the ATS vendors
Per-company roll-up: which ATS, total roles, new roles, remote count, top departmentsNot a resume or candidate scraper
Reliable official/public JSON reads (no anti-bot, no proxy needed)Not a guarantee a company uses one of these ATS

🔎 Why use this Actor

  • Aggregate open roles across many companies without writing seven integrations.
  • Monitor hiring on a schedule and pay only for new postings - onlyNewJobs remembers what you have seen per company and pushes just the delta.
  • Track which companies are hiring for a role - a strong B2B buying signal.
  • Build or refresh a niche job board from startup, tech, and enterprise employers (Workday adds the Fortune-500 tier).
  • Feed normalized job rows into spreadsheets, an ATS/CRM, or an LLM pipeline.

🗂️ What data you get

FieldTypeDescription
companystringCompany board slug
atsstringworkday, greenhouse, lever, ashby, smartrecruiters, recruitee, or personio
titlestringJob title
department, teamstringOrg grouping when provided
locationstringPrimary location
isRemotebooleanRemote detection across all sources
employmentTypestringFull-time/contract etc. when provided
postedAtstringPosting date (normalized, when the ATS exposes it)
url, applyUrlstringJob and apply links

Plus a per-company summary row: ATS used, total jobs, new jobs (in monitoring mode), remote count, unique departments/locations, top departments, and newest posting date.

👥 Who it's for

  • Recruiters and sourcers tracking open roles across many employers.
  • Job-board and aggregator builders.
  • B2B sales/RevOps using hiring as an intent signal.
  • Market researchers tracking hiring trends.
  • Data teams building normalized jobs datasets.

Example tasks

⚙️ How to scrape ATS jobs

  1. Open the Actor on Apify.
  2. Enter company board slugs (for example stripe, bunq, boschgroup). Force an ATS with a prefix (lever:palantir, workday:adobe) or paste a full job-board URL.
  3. Optionally enable onlyNewJobs for scheduled monitoring.
  4. Run the Actor.
  5. Open the dataset view for Job postings or Company summaries.
  6. Export JSON, CSV, Excel, HTML, RSS, or XML, or call the Actor through the Apify API.

📥 Input

{
"companies": [
"stripe",
"recruitee:bunq",
"smartrecruiters:boschgroup",
"https://adobe.wd5.myworkdayjobs.com/external_experienced"
],
"maxJobsPerCompany": 200,
"onlyNewJobs": false,
"includeDescription": false
}

📤 Output

{
"recordType": "job",
"company": "ramp",
"ats": "ashby",
"title": "Director, Performance Marketing",
"department": "Marketing",
"location": "New York, NY (HQ)",
"isRemote": true,
"employmentType": "FullTime",
"postedAt": "2026-06-11T17:21:26.410+00:00",
"url": "https://jobs.ashbyhq.com/ramp/..."
}

🔁 Monitoring mode (only new jobs)

Set onlyNewJobs: true and run the Actor on a schedule. The first run returns all current postings and initializes a per-company memory on your account; every following run pushes only jobs that were not seen before, so a daily check of a stable company can cost a fraction of a cent. Each company summary still reports totalJobs, newJobs, and previouslySeenJobs, so you always know the full picture.

💵 How much does it cost?

The launch price is about $1.00 / 1,000 job postings, tier-discounted for higher Apify plans. One job posting is one charged result; company summary rows are part of the same output. In monitoring mode you are charged only for the new postings pushed.

⚠️ Limits and caveats

  • This Actor reads the public job-board APIs/endpoints of the 7 ATS platforms. It is not affiliated with them.
  • Companies run concurrently (five at a time by default). Transient connection errors, rate limits, and 5xx responses are retried with exponential backoff.
  • You provide the company board slugs. The Actor enriches them; it does not discover which companies exist.
  • Unprefixed slugs auto-detect across Greenhouse, Lever, Ashby, SmartRecruiters, Recruitee, and Personio. Workday runs only with a workday: prefix or a myworkdayjobs.com URL because tenant discovery needs extra probing; the careers-page URL is the most reliable Workday input.
  • Field availability varies by ATS: Workday's list endpoint exposes only a relative posting age (kept in postedOnRaw), Personio does not expose posting dates, and SmartRecruiters' list endpoint does not include the ad body.
  • A company is found only if it uses one of these ATS and has public postings; otherwise the company row is returned with found: false.
  • Website Tech Stack Detector - find the tools a company's site runs.
  • Website Contact Extractor - turn company domains into outreach-ready emails.
  • Shopify Store Analyzer - catalog and contact intelligence for Shopify stores.
  • Lead List Deduplicator - clean and merge enriched rows before CRM import.

❓ FAQ

How does ATS auto-detection work?

For an unprefixed slug, the Actor checks Greenhouse, Lever, Ashby, SmartRecruiters, Recruitee, and Personio in order and uses the first that returns open postings. Force one with a prefix: greenhouse:, lever:, ashby:, smartrecruiters:, recruitee:, personio:, or workday:.

Where do I find a company's board slug?

It's the company identifier in its careers URL - for example boards.greenhouse.io/stripe, jobs.lever.co/palantir, bunq.recruitee.com, everphone.jobs.personio.de, or careers.smartrecruiters.com/BoschGroup. You can paste the full URL too.

How do I scrape a Workday company?

Paste its careers URL (for example https://adobe.wd5.myworkdayjobs.com/external_experienced) or use workday:adobe. With a bare slug the Actor probes the tenant's Workday host and career-site name automatically; if discovery fails, use the URL.

How does monitoring mode remember what it has seen?

The Actor keeps a per-company set of job IDs in a named key-value store on your Apify account (ats-jobs-scraper-delta-state). Delete that store to reset the memory.

Can it return job descriptions?

Yes for Greenhouse, Lever, Ashby, Recruitee, and Personio - turn on includeDescription. Workday and SmartRecruiters list endpoints do not include the ad body, so descriptionHtml is null for those sources.

Does it need a proxy?

No. These are public official endpoints that work without a proxy. Enable Apify Proxy only if you process many companies and hit IP rate limits.

🛠️ Support

For bugs or missing fields, open an Actor issue with the run URL, the company slug, and the field or behavior you expected.

⭐ Rate this Actor

If this Actor saved you time, please take 30 seconds to leave a review on the Reviews tab of ATS Jobs Scraper - reviews are the main trust signal other users see, and they directly decide which features get built next. If something is broken or a field is missing, please open an issue first - we typically respond within a day and would love the chance to fix it before you rate.