ATS Job Scraper — Greenhouse, Lever, Ashby, Workable avatar

ATS Job Scraper — Greenhouse, Lever, Ashby, Workable

Pricing

Pay per event

Go to Apify Store
ATS Job Scraper — Greenhouse, Lever, Ashby, Workable

ATS Job Scraper — Greenhouse, Lever, Ashby, Workable

Scrape jobs from Greenhouse, Lever, Ashby, Workable & SmartRecruiters career boards into ONE unified schema. Paste careers URLs, get title, location, remote flag, salary, description.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Automation Craft

Automation Craft

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

Categories

Share

ATS Job Scraper — Greenhouse, Lever, Ashby, Workable & SmartRecruiters

Scrape open jobs from company career boards on five applicant-tracking systems in one run, in one unified format. Paste careers-page URLs (or company tokens), press Start, and get clean, deduplicated job records: title, department, location, remote flag, employment type, salary data where published, posting date, apply link, and (optionally) the full job description.

No login, no API keys, no proxies to configure, no code.

Why this Actor

Most job scrapers cover a single ATS, so monitoring companies across Greenhouse and Lever and Ashby means running three actors with three different output formats. This Actor covers all five major ATS platforms and normalizes everything into one schema, so your spreadsheet, database, or agent pipeline only needs to understand one shape.

Built for:

  • Recruiters & sourcers — track competitor hiring across every board they use.
  • Job seekers — one watchlist across all the companies you care about, with keyword and remote-only filters.
  • Sales & market intelligence — hiring signals by department, team, and location.
  • Job boards & aggregators — a normalized multi-ATS ingestion feed.

How to use it

Add one entry per company under Companies, in any of these formats:

FormatExample
Careers-page URL (auto-detected)https://boards.greenhouse.io/stripe, https://jobs.lever.co/spotify, https://jobs.ashbyhq.com/linear, https://apply.workable.com/huggingface, https://careers.smartrecruiters.com/ServiceNow
provider:token pairgreenhouse:stripe, lever:spotify, ashby:linear, workable:huggingface, smartrecruiters:ServiceNow
Bare company tokenduolingo — probed against all five providers automatically

URLs tolerate http/https, www., trailing paths, and job-page deep links. EU-hosted Greenhouse/Lever boards are detected from eu. URLs. SmartRecruiters tokens are case-sensitive (ServiceNow, not servicenow).

Optional settings: keyword filter (title/department/team/location), remote only, full descriptions, and exact caps per company and per run — caps are honored exactly.

What "unified" means — per-provider field coverage

Every job record has the same fields. Where an ATS does not publish a field, you get null — we never guess. This table is the exact contract:

Unified fieldGreenhouseLeverAshbyWorkableSmartRecruiters
title, url, applyUrl, jobId
departments
team✅ (function)✅ (function)
location + allLocations✅ (+offices)✅ (+secondary)✅ (one per posting)
remote flag⚠️ only when the location says "Remote"
employmentType
compensation✅ when published✅ structured ranges
publishedAt
updatedAt
descriptionHtml + descriptionText✅ (one extra request per job)
companyName— (token only)— (token only)

Output example

{
"type": "job",
"provider": "ashby",
"company": "linear",
"jobId": "1e6cbc0e-…",
"title": "Senior Product Engineer",
"departments": ["Engineering"],
"team": "Product Engineering",
"location": "North America",
"allLocations": ["North America", "Europe"],
"remote": true,
"workplaceType": "Remote",
"employmentType": "FullTime",
"compensation": { "compensationTierSummary": "$180K – $240K • Equity" },
"publishedAt": "2026-07-14T18:02:11.000Z",
"url": "https://jobs.ashbyhq.com/linear/1e6cbc0e-…",
"applyUrl": "https://jobs.ashbyhq.com/linear/1e6cbc0e-…/application",
"descriptionHtml": null,
"descriptionText": null
}

Export as JSON, CSV, Excel, or read it from the API — standard Apify dataset.

Pricing — what a run actually costs

Pay per event, only for what you receive:

EventPrice
Actor start$0.005
Job record delivered$0.001
Full description delivered (only with Include full job descriptions on)+$0.001 per job that got one

Worked examples: 200 jobs across 3 companies = $0.205. The same 200 jobs with full descriptions = $0.405. Unknown company, empty board, or zero filter matches = you pay only the start fee — a status record in the dataset explains exactly what happened.

What this Actor does NOT do

  • ❌ It does not scrape job boards like LinkedIn, Indeed, or Naukri — it reads company career boards hosted on Greenhouse, Lever, Ashby, Workable, and SmartRecruiters.
  • ❌ It does not return applicant data, salary data the company didn't publish, or fields marked "—" in the coverage table above.
  • ❌ It does not discover companies for you — you supply the companies; it gets you every open job they list.
  • ❌ It cannot see unlisted/internal-only postings.

Fair-use & compliance

This Actor reads the same public, unauthenticated job-board endpoints the companies' own careers pages use, at a polite request rate. It collects no personal data and works with no login. You are responsible for complying with applicable laws and the target sites' terms in your jurisdiction and use case.

Tips

  • The bare token probe picks the first provider where the company has open jobs — when you know the provider, use provider:token or the URL form for precision.
  • Very large boards: maxJobsPerCompany and maxJobsTotal are exact caps, so you can bound cost precisely.
  • remote: null means the ATS didn't say — filter with remoteOnly only when you need certainty, and remember Greenhouse boards only match via location text.

Questions or a provider you'd like added? Open an issue via the Actor's Issues tab — feedback shapes the roadmap.

More data tools by Automation Craft