ATS Job Scraper – Greenhouse, Lever, Workday & More
Pricing
from $1.70 / 1,000 job postings
ATS Job Scraper – Greenhouse, Lever, Workday & More
Scrape live job postings from company career sites across Greenhouse, Lever, Ashby, Workday, Workable, SmartRecruiters, Recruitee, and BambooHR. Enter company names or career-page URLs, auto-detect the ATS, and get clean structured job data.
Pricing
from $1.70 / 1,000 job postings
Rating
0.0
(0)
Developer
Saulius Saulenas
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
ATS Job Scraper — Greenhouse, Lever, Ashby, Workday, Workable & more
Get live job postings straight from company career sites — not from a stale database, not from LinkedIn. Give this Actor a list of company names (or career-page URLs) and it automatically finds each company's job board across 8 ATS platforms and returns every open position as clean, structured data:
| Platform | Detection | Descriptions | Typical users |
|---|---|---|---|
| Greenhouse | ✅ automatic | ✅ included | Stripe, Duolingo, Figma… |
| Lever | ✅ automatic | ✅ included | Spotify, Palantir… |
| Ashby | ✅ automatic | ✅ included (+ salary ranges) | OpenAI, Linear, Ramp… |
| Workday | ✅ auto for many tenants (URL always works) | ✅ included | NVIDIA and much of the Fortune 500 |
| Workable | ✅ automatic | ✅ included | Thousands of SMBs |
| SmartRecruiters | ✅ automatic | ✅ included | Bosch, Visa, IKEA… |
| Recruitee | ✅ automatic | ✅ included | European scale-ups |
| BambooHR | ✅ automatic | ✅ included | US SMBs |
Workday and Workable coverage is what sets this Actor apart — most cheap ATS scrapers skip the platform where most enterprise jobs actually live.
Why teams use it
- Recruiting & talent intelligence — monitor competitors' hiring by team, seniority, location.
- Job boards & aggregators — fill your board with fresh, deduplicated postings straight from the source.
- Sales & lead generation — a company hiring "Head of RevOps" or "Kubernetes Engineer" is a buying signal. Track your target-account list daily and route new postings to your CRM.
- Market research — salary transparency (Ashby publishes ranges), remote-work trends, hiring velocity.
What makes it different
- Company names in, jobs out. No slugs, no URLs, no homework.
"Stripe"is enough — the Actor probes all 8 platforms and finds the board. (URLs work too, in any format, including plain careers pages which get sniffed for embedded boards.) - Monitoring mode (
onlyNewJobs): schedule the Actor daily and receive each job exactly once, ever — only postings it hasn't returned before. You pay per new job, so a daily run over a 500-company watchlist costs cents on a quiet day. - Honest data. Fields the source platform doesn't expose (e.g. true posting dates on
SmartRecruiters) come back as
nullwith the raw value preserved — never guessed. - No proxies, no per-seat SaaS fee, no rate-limit drama. These are the same public APIs that power the companies' own career pages.
Input
{"companies": ["Stripe", "Duolingo", "OpenAI", "Bosch Group"],"careerPageUrls": ["https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"],"titleKeywords": ["engineer", "developer"],"locationKeywords": ["Remote", "London"],"postedAfter": "7d","onlyNewJobs": false,"includeDescriptions": true,"maxJobsPerCompany": 500,"maxTotalJobs": 5000}
Everything except companies/careerPageUrls is optional. Filters: titleKeywords,
titleExcludeKeywords, locationKeywords, remoteOnly, postedAfter (YYYY-MM-DD or 7d/24h/2w).
Output
One record per job posting:
{"id": "ashby:openai:8f2a…","platform": "ashby","companyName": "OpenAI","title": "Software Engineer, Applied AI","url": "https://jobs.ashbyhq.com/openai/8f2a…","applyUrl": "https://jobs.ashbyhq.com/openai/8f2a…/application","location": "San Francisco","locations": ["San Francisco", "Remote"],"remote": true,"workplaceType": "remote","department": "Engineering","team": "Applied AI","employmentType": "FullTime","salaryMin": 257000,"salaryMax": 335000,"salaryCurrency": "USD","salaryInterval": "year","salaryRaw": "$257K – $335K","postedAt": "2026-07-30T18:04:11.000Z","descriptionHtml": "<p>…full posting…</p>","descriptionText": "…plain-text version…","matchConfidence": "verified","scrapedAt": "2026-08-11T09:12:44.000Z"}
matchConfidence tells you how the company was matched: url (you gave the board URL),
verified (the board's own API confirmed the company name), exact-slug (you typed the exact
board slug), or guessed (slug derived from the company name and the platform doesn't expose a
name to verify against — for guessed boards companyName is the board slug, never your input
text, so a mismatched board can't masquerade as your target company).
Export as JSON, CSV, Excel or feed it to the Apify API,
n8n, Make, Zapier, or your warehouse like any Apify dataset. A per-company breakdown
(which platform was detected, jobs found, companies with no board) is saved to the
SUMMARY key of the run's key-value store.
Monitoring mode — get each job once, pay for it once
Set onlyNewJobs: true and set a fixed monitorId (e.g. "my-watchlist"). The Actor remembers
every job it has already returned for that monitor — durably, updated as the run progresses — and
outputs only new postings on subsequent runs. Combine with
Apify Schedules for a zero-maintenance
"new jobs at my target companies" feed.
Two things worth knowing:
- If you don't set
monitorId, one is derived from your company list — which means editing the list starts a fresh memory and re-delivers currently open jobs. A fixedmonitorIdkeeps the memory when your watchlist evolves (the run log warns about this too). - Avoid running two monitors with the same
monitorIdat the same instant; overlapping runs may deliver the same brand-new job twice.
Pricing
$2.00 per 1,000 job postings returned, plus a symbolic $0.00005 per Actor start. Platform usage (compute, storage) is included — you pay only for the results.
- 5 companies, ~150 jobs → about $0.30
- Daily monitoring of 50 companies, ~40 new jobs/day → about $0.08/day
- Full pull of a 5,000-job enterprise watchlist → about $10.00
maxJobsPerCompany (default 500) and maxTotalJobs (default 5,000) cap every run, and Apify's
per-run cost limit is always enforced — you can never be surprised by a bill.
Good to know
- Descriptions on Workday, SmartRecruiters, Workable and BambooHR require one extra request per
job (that's how those platforms work). Runs are still fast; set
includeDescriptions: falseif you only need titles/locations/links and want maximum speed. - Workday auto-detection finds most tenants from the company name alone (it discovers the
career-site token automatically). For unusual setups, paste the career-site URL — the one
containing
myworkdayjobs.com— and it always works. - posting dates:
postedAtis only filled when the platform exposes a real date. SmartRecruiters only publishes a "released" timestamp that refreshes constantly, so SR jobs havepostedAt: nulland the raw timestamp inpostedAtRaw. Workday exposes relative dates ("Posted 5 Days Ago") which are converted to approximate dates and kept raw inpostedAtRaw. - A company isn't found? The summary lists exactly what was tried. Companies whose careers run on unsupported systems (e.g. iCIMS, Taleo, Phenom) won't be detected — tell us which platform you're missing and it moves up the roadmap.
- Pasting a single job's URL (e.g.
boards.greenhouse.io/acme/jobs/12345) scrapes that company's whole board — board URLs and job URLs share the same slug. UsetitleKeywordsto narrow the output if you only need certain roles. - EU-hosted boards (
boards.eu.greenhouse.io,jobs.eu.lever.co) are fully supported. - Is this legal? The Actor reads the same public, unauthenticated APIs that render each company's own public careers page — no logins, no personal data, only public job advertisements.
Roadmap
Personio, Teamtailor, iCIMS, JazzHR adapters · salary extraction from description text · webhook alerts. Missing something? Open an issue on the Actor's page.