Job Scraper — Greenhouse, Lever, Ashby, Workday +5 ATS avatar

Job Scraper — Greenhouse, Lever, Ashby, Workday +5 ATS

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Job Scraper — Greenhouse, Lever, Ashby, Workday +5 ATS

Job Scraper — Greenhouse, Lever, Ashby, Workday +5 ATS

Scrape open jobs straight from a company's own ATS — Greenhouse, Lever, Ashby, SmartRecruiters, Workday, BambooHR, Personio, Recruitee, Breezy HR — via public APIs. No LinkedIn/Indeed, no anti-bot, no login. Auto-detect + monitor mode for new postings.

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

20 days ago

Last modified

Share

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

Jobs straight from the company's own ATS — no LinkedIn or Indeed middleman, no anti-bot walls, no "under maintenance" breakage. Give it a company name or a careers-board URL and it auto-detects the applicant tracking system (ATS) and returns clean, structured, real-time jobs from the source of truth:

  • 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)
  • Recruitee (...recruitee.com)
  • Breezy HR (...breezy.hr — job listings only, no descriptions)

Why this vs LinkedIn / Indeed scrapers

LinkedIn and Indeed scrapers fight aggressive anti-bot systems — they break, get rate-limited, and go "under maintenance" exactly when you need them. This actor reads each ATS's public JSON API — the same endpoint the company's own careers page uses — so it is structurally reliable: no proxies, no login, no headless browser, no CAPTCHAs to break. You get the company's live openings direct from the source, usually fresher than they appear on aggregators.

  • Direct from the ATS — the source of truth, not a re-scraped aggregator copy.
  • No anti-bot fragility — public APIs, so runs are fast, cheap, and don't silently break.
  • One actor, nine ATS platforms — stop juggling a different scraper per board.
  • Auto-detection — pass a bare company slug (stripe, notion) or a full board URL.
  • Real-time hiring-intent signal — a company opening roles is a company buying; catch it first.

What you get

  • Job identity: title, department, location, remote flag, employmentType, postedDate.
  • Apply data: canonical applyUrl and jobId.
  • Full description in both HTML and plain text — ready for search, RAG, or LLM pipelines.
  • Source company and detected ats on every row.
  • Monitor mode: run on a schedule and get only newly-posted jobs — a clean hiring signal.

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, workday, bamboohr, personio, 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:
    $APIFY_TOKEN=<your-token> npx -y @apify/actors-mcp-server --actors ponderable_hydrometer/multi-ats-jobs

Doing sales / recruiting intelligence? Pair this with our Company Hiring Signals actor (turns raw openings into hiring-intent signals) and the Website Tech Stack Detector for technographic lead enrichment.

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.