ATS Jobs Scraper: Greenhouse, Lever, Workable & SmartRecruiters avatar

ATS Jobs Scraper: Greenhouse, Lever, Workable & SmartRecruiters

Pricing

from $0.96 / 1,000 jobs

Go to Apify Store
ATS Jobs Scraper: Greenhouse, Lever, Workable & SmartRecruiters

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

Emilio Cisneros

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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

  1. Paste careers-page URLs (Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee) or bare company slugs into Companies.
  2. Optionally filter by title keywords, location, remote-only or posted within N days.
  3. 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 openai and 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 getYou 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 ApifyClient
client = 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).