ATS Jobs Scraper: Greenhouse, Lever, Workable & SmartRecruiters
Pricing
from $0.96 / 1,000 jobs
ATS Jobs Scraper: Greenhouse, Lever, Workable & SmartRecruiters
Scrape company job postings from Greenhouse, Lever, Ashby, Workable, SmartRecruiters and Recruitee careers pages in one schema: title, location, remote, salary, department, description, apply URL. Paste careers URLs or slugs. Hiring signals for sales and recruiting. Official public APIs, no proxies.
Pricing
from $0.96 / 1,000 jobs
Rating
0.0
(0)
Developer
Emilio Cisneros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Get every open job from a company's careers page in one clean, normalized dataset — no matter which applicant tracking system (ATS) the company uses. Paste careers-page URLs (or just company slugs) and get title, location, remote flag, department, employment type, salary range (when published), posting date, description and apply link.
How to use
- Paste careers-page URLs (Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee) or bare company slugs into Companies.
- Optionally filter by title keywords, location, remote-only or posted within N days.
- Click Start, then download the jobs as JSON, CSV or Excel, or connect them to Google Sheets, Slack or a webhook.
Why this Actor
- 6 ATSs, one schema — Greenhouse, Lever (US & EU), Ashby, Workable, SmartRecruiters, Recruitee.
- Official public job-board APIs — the same JSON feeds the companies' own careers pages use. No browser, no proxies, no CAPTCHAs, so runs are fast, cheap and reliable.
- Auto-detect — give a bare slug like
openaiand every supported ATS is tried. - Filters — title keywords, excluded keywords, location, remote-only, department, posted within N days.
- Fair pricing — pay only per job returned. Boards that fail or have no jobs produce a free error record explaining why.
- Fails loudly — if nothing matches, the run fails with a clear message instead of "succeeding" with an empty dataset.
Input examples
{"companies": ["https://jobs.ashbyhq.com/openai", "https://boards.greenhouse.io/airbnb", "lever:palantir", "https://apply.workable.com/blueground", "https://jobs.smartrecruiters.com/BoschGroup", "https://bunq.recruitee.com"],"titleKeywords": ["engineer", "data"],"locationKeywords": ["remote", "united states"],"postedWithinDays": 30,"maxItems": 500}
Accepted company formats: careers URLs (boards.greenhouse.io/<slug>, job-boards.greenhouse.io/<slug>, jobs.lever.co/<slug>, jobs.eu.lever.co/<slug>, jobs.ashbyhq.com/<slug>, apply.workable.com/<slug>, jobs.smartrecruiters.com/<slug>, <slug>.recruitee.com), provider:slug, or a bare slug.
Output (one item per job)
{"provider": "ashby", "company": "openai", "companyName": "openai", "jobId": "8fb1615c-…","title": "Technical Program Manager, Compute Infrastructure", "department": "Technical Program Management","location": "San Francisco", "locations": ["San Francisco"], "country": "United States","workplaceType": null, "isRemote": null, "employmentType": "FullTime","salary": { "min": 230000, "max": 385000, "currency": "USD", "interval": "1 YEAR", "summary": "$230K – $385K" },"postedAt": "2026-03-12T16:38:15.322Z", "url": "https://jobs.ashbyhq.com/openai/…", "applyUrl": "https://jobs.ashbyhq.com/openai/…/application","descriptionText": "About the Team …", "scrapedAt": "2026-10-19T03:00:00.000Z"}
Error records (not charged) look like {"input": "...", "error": "BOARD_NOT_FOUND", "errorMessage": "...", "#error": true}.
Use cases
Job aggregators and niche job boards, recruiting and sourcing, hiring-signal / sales-trigger monitoring (who is hiring for what), labor-market research, salary benchmarking, and AI agents that need fresh job data. Schedule it daily and use postedWithinDays: 1 to get only new jobs.
Pricing
Pay per result: $1.20 per 1,000 jobs (plus Apify's tiny start fee). Error records are free.
How much does it cost?
You only pay for results, never for compute time:
| You get | You pay (Starter/Bronze plan price) |
|---|---|
| 100 jobs | $0.12 |
| 1,000 jobs | $1.20 |
| 10,000 jobs | $12.00 |
Apify's free plan includes $5 of usage every month, and free-plan users pay half price on this Actor, so that covers about 8,332 jobs at no cost. Paid plans get volume discounts (Silver -10%, Gold -20%). Set a maximum cost per run and the Actor stops cleanly at your limit.
Notes
Data comes from publicly published job postings via the providers' public job-board endpoints. Job postings are company data, not personal data. Please respect each provider's terms and use the data responsibly.
Run it from code (API, Python, JavaScript)
curl -X POST "https://api.apify.com/v2/acts/api-co~ats-jobs-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" -d '{"companies": ["https://boards.greenhouse.io/airbnb", "lever:palantir"], "titleKeywords": ["engineer"], "maxItems": 200}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("api-co/ats-jobs-scraper").call(run_input={"companies": ["https://boards.greenhouse.io/airbnb", "lever:palantir"], "titleKeywords": ["engineer"], "maxItems": 200})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('api-co/ats-jobs-scraper').call({"companies": ["https://boards.greenhouse.io/airbnb", "lever:palantir"], "titleKeywords": ["engineer"], "maxItems": 200});const { items } = await client.dataset(run.defaultDatasetId).listItems();
It also works from AI agents through the Apify MCP server, and with Zapier, Make, n8n, Google Sheets and webhooks. You can schedule it in the Apify Console.
FAQ
Is this a LinkedIn or Indeed scraper? No. It reads companies' own ATS job boards (Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee). These are first-party, usually fresher than aggregators, and include the direct apply link.
How do I find a company's ATS slug?
Open the company's careers page and copy the job-board URL, e.g. boards.greenhouse.io/airbnb. If you only know the name, pass a bare slug like airbnb and every supported ATS is tried.
Can I monitor new jobs daily?
Yes. Schedule the Actor with postedWithinDays: 1 and connect the dataset to Slack, Google Sheets, Zapier, Make or n8n.
Does it return salary? Yes, when the company publishes it (common on Ashby and Greenhouse in US pay-transparency states).