Multi-ATS Job Scraper — Greenhouse, Lever, Ashby, Workday avatar

Multi-ATS Job Scraper — Greenhouse, Lever, Ashby, Workday

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Multi-ATS Job Scraper — Greenhouse, Lever, Ashby, Workday

Multi-ATS Job Scraper — Greenhouse, Lever, Ashby, Workday

Scrape open jobs straight from a company's own ATS — Greenhouse, Lever, Ashby, SmartRecruiters, Workday, BambooHR, Personio — via their public APIs. No LinkedIn or Indeed, no anti-bot walls, no login. Auto-detects the ATS, monitor mode for new postings, full HTML + text descriptions.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

Ponderable Hydrometer

Ponderable Hydrometer

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

Share

Multi-ATS Job Scraper

Scrape every open job from a company's careers page in seconds — straight from the source, no LinkedIn or Indeed middleman. Give it a company name or job-board URL and it auto-detects the applicant tracking system (ATS) and returns clean, structured jobs from:

  • Greenhouse (boards.greenhouse.io/...)
  • Lever (jobs.lever.co/...)
  • Ashby (jobs.ashbyhq.com/...)
  • SmartRecruiters (jobs.smartrecruiters.com/...)
  • Workday (...myworkdayjobs.com/... — pass the full board URL)
  • BambooHR (...bamboohr.com/careers)
  • Personio (...jobs.personio.com)

No proxies, no login, no headless browser — the actor uses each ATS's public JSON API, so runs are fast, cheap, and reliable (no "under maintenance" breakage from anti-bot walls).

Why use it

  • One actor, four ATS platforms. Stop juggling a different scraper per board.
  • Auto-detection. Pass a bare company slug (stripe, notion) or a full board URL — it figures out the ATS for you.
  • Monitor mode. Run it on a schedule and get only newly-posted jobs — a clean hiring-intent signal for sales, recruiting, and market-intelligence use cases.
  • Full job descriptions in both HTML and plain text, ready for search, RAG, or LLM pipelines.
  • AI-agent & automation friendly. Simple input, predictable output — easy to call from n8n, Make, or your own code.

Who it's for

Recruiters and sourcers, sales / lead-gen teams (a company hiring is a company buying), job-board aggregators, HR-tech and ATS-migration tools, VC and market-intelligence researchers, and anyone building a jobs dataset.

Input

FieldTypeDefaultDescription
companiesarray— (required)Company slugs or job-board URLs, e.g. ["stripe", "https://jobs.lever.co/palantir"]
atsHintstringautoForce an ATS: greenhouse, lever, ashby, smartrecruiters, or auto
includeDescriptionbooleantrueInclude full HTML + plain-text job description
monitorModebooleanfalseOnly output jobs not seen in previous runs
maxJobsPerCompanyinteger2000Safety cap per company
{
"companies": ["stripe", "gopuff", "https://jobs.ashbyhq.com/openai"],
"atsHint": "auto",
"includeDescription": true,
"monitorMode": false,
"maxJobsPerCompany": 2000
}

Output

One dataset item per open job:

{
"company": "stripe",
"ats": "greenhouse",
"title": "Account Executive, AI Sales",
"department": "AI GTM Strategy & Solutions",
"location": "San Francisco, CA",
"remote": false,
"employmentType": "Full-time",
"postedDate": "2026-06-26T17:05:44-04:00",
"applyUrl": "https://stripe.com/jobs/search?gh_jid=7954688",
"jobId": "7954688",
"descriptionHtml": "<p>...</p>",
"descriptionText": "Who we are ...",
"status": "ok"
}

Companies that can't be resolved are not written to the dataset (so you never pay for an empty result) — they are reported in the run log and in the run's SUMMARY record, with a status of ats_not_found, error, or invalid_input. Nothing fails silently.

How to find a company's board

  • Greenhouse: the token in boards.greenhouse.io/<token> (or job-boards.greenhouse.io/<token>).
  • Lever: the slug in jobs.lever.co/<slug>.
  • Ashby: the name in jobs.ashbyhq.com/<name>.
  • SmartRecruiters: the company id in jobs.smartrecruiters.com/<companyId> (case-sensitive, e.g. BoschGroup).
  • Workday: pass the full board URL, e.g. https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite (a bare name isn't enough — Workday needs the datacenter and site).
  • BambooHR: the subdomain in <company>.bamboohr.com.
  • Personio: the subdomain in <company>.jobs.personio.com.

Or just pass the plain company name and let auto-detection try each platform.

Use from an AI agent (MCP)

This actor works as a tool for AI agents through the Model Context Protocol. Because it takes a plain company name or URL and returns structured jobs, it's a natural fit for assistants doing recruiting, lead research, or jobs-data collection.

  • Hosted: point your MCP client at Apify's MCP server (https://mcp.apify.com) and enable the actor ponderable_hydrometer/multi-ats-jobs.
  • Local: run Apify's MCP server with just this actor:
    $APIFY_TOKEN=<your-token> npx -y @apify/actors-mcp-server --actors ponderable_hydrometer/multi-ats-jobs

The agent can then call it with a single company ("stripe") or a list — the input is intentionally forgiving. See Apify's MCP documentation for client setup details.

Notes & limits

  • Seven ATS platforms are supported today: Greenhouse, Lever, Ashby, SmartRecruiters, Workday, BambooHR and Personio (Workable, Recruitee and others are on the roadmap).
  • Workday is detected only from a full board URL — its API needs the datacenter and site, which can't be guessed from a company name. Fetching descriptions does one extra request per job, so large Workday tenants are slower; lower maxJobsPerCompany or set includeDescription: false for speed.
  • Personio descriptions come from its public XML feed, which many companies leave empty; the core fields (title, location, department, type, date) are always returned.
  • Auto-detection accepts a match only when a platform returns at least one job, which avoids false positives — if a company has zero open roles, pass the explicit board URL to confirm it.
  • Data comes from public job-board APIs; you are responsible for using the output in line with your own legal and compliance requirements.