Greenhouse, Lever, Ashby & Workday Jobs API (ATS Scraper) avatar

Greenhouse, Lever, Ashby & Workday Jobs API (ATS Scraper)

Pricing

from $2.00 / 1,000 job returneds

Go to Apify Store
Greenhouse, Lever, Ashby & Workday Jobs API (ATS Scraper)

Greenhouse, Lever, Ashby & Workday Jobs API (ATS Scraper)

Get every open job from any company's career page in ONE clean schema. Auto-detects Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee, Personio and Workday from a URL or domain. Salary, remote, location, keyword and date filters plus delta mode (only new jobs).

Pricing

from $2.00 / 1,000 job returneds

Rating

0.0

(0)

Developer

Cemal Atakli

Cemal Atakli

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Get every open job from any company's career page in one clean JSON schema. Paste career-page URLs, company domains or job-board links. The Actor detects which applicant tracking system (ATS) each company uses and reads that ATS's official public job-board API.

  • 8 ATSs, one schema. It covers Greenhouse, Lever, Ashby, Workday, Workable, SmartRecruiters, Recruitee and Personio, and auto-detects the ATS from a URL, a career page or just a domain (stripe.com).
  • Filters and delta mode. Filter by keywords, locations, remote only and posted within N days. Scheduled runs return, and charge for, only jobs you haven't received yet.
  • $2 per 1,000 jobs, flat. It is HTTP-only, with no browser, no proxies and no proxy fees.

Quick start

This is the prefilled input: 2 jobs from Ramp's Ashby board in a few seconds, for less than $0.01. Raise maxItems for real use.

{ "targets": ["https://jobs.ashbyhq.com/ramp"], "maxItems": 2 }

Sample output

companyatstitleworkplace_typesalary (USD)posted_at
RampashbySenior Corporate Paralegalhybrid185,000–250,0002026-09-26
SpotifyleverSenior Program Manager - Podcast Sales Strategy & Solutionshybrid96,693–138,1342026-09-25
AirbnbgreenhouseAccountantremote87,000–102,0002026-09-25
Hugging FaceworkableSenior Open-Source Python Engineer, ML Developer Tools - EMEA Remoteremote–2026-09-21

Price comparison (Apify Store, September 2026)

ActorPrice per 1,000 jobsCoverageMonthly users
This Actor$2 flat (+ $0.005 per run)8 ATSs, auto-detect, delta modenew
jobo.world/ats-jobs-api$4 (free tier; lower on paid tiers)multi-ATS150
fantastic-jobs/workday-jobs-api$2 (free tier; lower on paid tiers)Workday only136

Related Actors: Remote Jobs Scraper & Aggregator for remote job boards, and Wappalyzer Alternative – Bulk Tech Stack Detector to see the software stack of the companies that are hiring.

What it does

  1. Resolve each input:
    • Job-board URLs are recognized directly (jobs.lever.co/…, boards.greenhouse.io/…, jobs.ashbyhq.com/…, *.myworkdayjobs.com/…, apply.workable.com/…, *.recruitee.com, *.jobs.personio.de, jobs.smartrecruiters.com/…).
    • For a domain or career page, the actor scans the careers pages for ATS links and embeds.
    • If none are found, it probes each ATS's public API with the company name (stripe.com → stripe).
  2. Fetch all open jobs from the public job-board endpoints that power the company's own career site.
  3. Normalize everything into one schema, apply your filters and optionally skip jobs already delivered.

Use cases

  • Job boards and aggregators: fill a niche board (remote, AI, climate, EU startups) from hundreds of company career pages.
  • Sales and recruiting intelligence: spot companies hiring for a role, such as "data engineer" at Series B fintechs. Hiring is a buying signal.
  • Job alerts: schedule daily runs with delta mode and get only new postings. Send them to Slack, email or a Google Sheet with Apify integrations.
  • Salary benchmarking: collect posted pay ranges by title, location and company.
  • Market and competitor research: track headcount growth by department and new offices.
  • AI agents: give an LLM agent a live, structured view of who is hiring (see below).

Input example

{
"targets": [
"https://boards.greenhouse.io/airbnb",
"https://jobs.ashbyhq.com/ramp",
"lever:spotify",
"huggingface.co",
"stripe.com",
"https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"
],
"companies": [
{ "ats": "smartrecruiters", "slug": "Ubisoft2", "company": "Ubisoft" },
{ "ats": "personio", "slug": "1komma5grad" }
],
"keywords": ["engineer*", "data scientist"],
"locations": ["London", "Berlin", "remote"],
"remoteOnly": false,
"postedWithinDays": 14,
"onlyNew": true,
"includeDescription": false
}

The targets field accepts any of these:

Input formExample
Job-board URLhttps://jobs.lever.co/palantir
Career pagehttps://www.notion.so/careers
Bare domainlinear.app
Shorthandgreenhouse:airbnb, ashby:openai, lever/spotify, workable:huggingface, recruitee:bunq, personio:ottonova, smartrecruiters:Ubisoft2
Workday career-site URLhttps://salesforce.wd12.myworkdayjobs.com/External_Career_Site

Workday tenants can't be guessed from a domain, so pass the Workday URL from your browser's address bar.

Output example

{
"uid": "ashby:ramp:34413f8d-26bf-4bbc-8ade-eb309a0e2245",
"company": "Ramp",
"company_slug": "ramp",
"ats": "ashby",
"job_id": "34413f8d-26bf-4bbc-8ade-eb309a0e2245",
"title": "Security Engineer, Cloud",
"department": "Engineering",
"team": "Backend",
"locations": ["New York, NY (HQ)", "Remote (Canada)", "Remote (US)", "Miami, FL"],
"country": "USA",
"remote": false,
"workplace_type": "hybrid",
"employment_type": "full_time",
"employment_type_raw": "FullTime",
"salary_min": 211400,
"salary_max": 290600,
"salary_currency": "USD",
"salary_interval": "year",
"salary_source": "ats",
"posted_at": "2026-04-07T17:12:35Z",
"updated_at": null,
"job_url": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245",
"apply_url": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245/application",
"scraped_at": "2026-09-27T10:00:00Z"
}

With Include job description turned on, each job also gets description_html and description_text.

Normalized values:

  • employment_type: full_time, part_time, contract, internship, temporary or other
  • workplace_type: remote, hybrid or onsite, or null when the ATS doesn't say

The OUTPUT record in the key-value store reports, for every input:

  • the ATS and slug it resolved to
  • how it was detected (url_pattern, page_scan, slug_guess or explicit)
  • jobs found and jobs matched
  • any error

Supported ATSs and data coverage

ATSEndpoint usedSalaryPosted dateRemote / workplaceDescription
Greenhouseboards-api.greenhouse.io/v1/boards/{slug}/jobsfrom description text✅from metadata and location✅
Leverapi.lever.co/v0/postings/{slug} (+ EU)✅ salaryRange, else from text✅✅ workplaceType✅
Ashbyapi.ashbyhq.com/posting-api/job-board/{slug}✅ compensation✅✅✅
WorkdayPOST /wday/cxs/{tenant}/{site}/jobs + job detailfrom description text✅ (detail)from location✅ (detail)
Workableapply.workable.com/api/v1/widget/accounts/{slug}from text✅✅ telecommuting✅
SmartRecruitersapi.smartrecruiters.com/v1/companies/{id}/postings–✅✅✅ (1 extra request per job)
Recruitee{slug}.recruitee.com/api/offers/✅✅✅✅
Personio{slug}.jobs.personio.de/xml–✅from office name✅

Pricing

Pay per event:

  • $0.002 per job returned ($2 per 1,000)
  • $0.005 per run start
  • No subscription, no proxy fees

In delta mode you pay only for new jobs.

Actor (Apify Store, Sept 2026)Price per job (free tier → top tier)ATS coverage
This actor$0.002 flat8 ATSs, auto-detect, delta mode
fantastic-jobs/career-site-job-listing-api$0.012 → $0.004many (aggregated feed)
jobo.world/ats-jobs-api$0.004 → $0.0013multi-ATS
memo23/career-site-ats-jobs-api$0.004 → $0.0025 (+$0.03 per start)multi-ATS
fantastic-jobs/greenhouse-jobs-api$0.002 → $0.0012Greenhouse only
fantastic-jobs/workday-jobs-api$0.002 → $0.0012Workday only
bovi/greenhouse-lever-ashby-job-scraper$0.0015 → $0.00143 ATSs

Single-ATS actors can be cheaper per job if you only need one ATS. This actor covers 8 ATSs in one schema, detects the ATS for you, and in delta mode charges only for new jobs.

Example: 50 companies checked daily with about 20 new jobs per day costs about $0.045 per day (about $1.35 per month).

Use with AI agents / Apify MCP

The actor works well as a tool for LLM agents. Its input is simple (company names, domains or URLs) and its output is compact, typed JSON.

  • Apify MCP server: add https://mcp.apify.com/?tools=gazidev/ats-jobs-api to Claude Desktop, Cursor, or any other MCP client. Then ask things like "Which of these 30 fintech companies are hiring a staff data engineer in London? Include salary ranges."
  • API / SDK: call run-sync-get-dataset-items with the input JSON and get the jobs back in one HTTP request.
  • Keep includeDescription off to save agent tokens. Turn it on only for jobs you want the model to read closely.

FAQ

Is this legal and allowed? The actor only reads the public job-board endpoints that the ATS vendors provide so career sites and job aggregators can show open positions. The same data is shown publicly on the company's careers page. The actor does not log in, bypass protection or collect personal data.

How does auto-detection work? URLs are matched against known ATS URL patterns. For domains, the actor loads /careers, /jobs, careers.<domain> and the homepage, follows career links and looks for ATS board links or embeds. If none are found, it tries the domain name as a slug on each ATS's API. The detection method is reported per input. If a guess is wrong, pass the board URL or an explicit {ats, slug} entry.

Why wasn't my company detected? Some companies use an ATS this actor doesn't support (iCIMS, Taleo, SuccessFactors, Teamtailor and others), or load their jobs board with JavaScript on a custom domain. Workday can't be guessed from a domain. For Workday, paste the …myworkdayjobs.com/... URL.

How does delta mode work? Jobs you received are remembered, as hashed IDs, in a named key-value store called ats-jobs-api-state. The memory is keyed by your company list and filters, or by your own stateKey. Jobs are forgotten 120 days after they were last seen open.

Are Workday results complete? Workday lists at most about 2,000 postings per search. When you set keywords, they are also sent to Workday's own search, so large employers are covered for the roles you care about.

How accurate is salary data? salary_source: "ats" means the structured compensation fields published by the company. "description" means a pay range parsed from the job text, such as US pay-transparency statements. Parsed ranges are best-effort.

Can I get the full description? Yes. Turn on includeDescription to get both HTML and plain text.