Ats Jobs API avatar

Ats Jobs API

Pricing

from $1.30 / 1,000 jobs

Go to Apify Store
Ats Jobs API

Ats Jobs API

Search for jobs directly from 75+ ATS platforms (Greenhouse, Lever, Ashby, Workday, iCIMS, Taleo, SuccessFactors, and dozens more). Supports advanced filters for skills, companies, salary, work model, employment type, and experience level. Zero ghost jobs, direct company sources.

Pricing

from $1.30 / 1,000 jobs

Rating

5.0

(1)

Developer

Enrico

Enrico

Maintained by Community

Actor stats

12

Bookmarked

414

Total users

88

Monthly active users

0.28 hours

Issues response

20 hours ago

Last modified

Share

ATS Jobs API — search 3.9 million+ live jobs across 75+ ATS platforms in one call: Greenhouse, Lever, Ashby, Workday, iCIMS, Taleo, SuccessFactors, and more. One normalized JSON schema across every source, verified daily, zero ghost jobs — with live openings from companies like NVIDIA, Airbnb, IKEA, and OpenAI. Open the actor, hit Try for free, and run the default input (queries: ["Software Engineer", "Product Manager"]) — no code or API key required.

Service Status

What does ATS Jobs API do?

  • Searches 3.9 million+ live jobs across 75+ ATS platforms in one call — no board tokens, no per-company setup, no per-vendor integrations
  • Filters by work model, employment type, experience level, salary range, skills, companies, and posting date — plus sources to scope which platforms to search
  • Excludes noise with negative keywords — prefix any query token with - (["Software Engineer", "-staff"])
  • Switches between full-text search and title-only matching with search_description — broad keyword recall or precise title matches
  • Returns de-duplicated, verified listings — duplicates merged by company + canonical title + listing URL, expired jobs removed daily, so no ghost jobs
  • Enriches every job with AI-extracted data: typed hard/soft skills, responsibilities, benefits, a 2–3 sentence summary, geocoded locations, USD-normalized salaries, and work-authorization signals (H1B sponsorship, clearance)
  • Optionally attaches the full company profile — funding, leadership, ratings, tech stack, H1B history — with one switch
  • Exports to JSON, CSV, or Excel, and plugs into schedules, webhooks, Zapier, Make, and the Apify API

Which ATS platforms are covered?

CategoryPlatforms
Tech / startupgreenhouse, lever, ashby, workable, polymer, rippling, gem, kula, joincom
Enterprise HCMworkday, successfactors, taleo, oraclecloud, csod, dayforce, kronos, ultipro, saashr, paycom, paycor, paylocity, adpmyjobs, adpworkforcenow, isolved, pageup, trinet, hibob
SMB / mid-marketbamboohr, breezy, jazzhr, personio, recruitee, smartrecruiters, freshteam, jobscore, recooty, zohorecruit, manatal, hireology, hirehive, hiringthing, homerun, gusto, onshift
AI / talent experienceeightfold, phenompeople, paradox
Specialty / public sector / otheracquiretm, applicantpro, applicantstack, applitrack, careerplug, careerpuck, comeet, deel, dover, fountain, gohire, governmentjobs, harri, hirebridge, hrmdirect, hrsmart, icims, joblinkapply, jobvite, peopleadmin, peoplematter, pinpoint, rival, talnet, teamtailor, trakstar, ttcportals, werecruit

Leave sources empty to use the full 75+ provider set. Set it to a subset (e.g. ["greenhouse", "lever", "ashby"]) to scope a run.

Why search jobs across ATS platforms?

Job postings don't live in one place — they're scattered across dozens of applicant tracking systems. Tech startups hire on Greenhouse, Lever, and Ashby; global enterprises run Workday, SuccessFactors, and Taleo; SMBs use BambooHR, JazzHR, or Personio; and a long tail of specialty platforms covers everything from public-sector hiring to hourly work. Scrape any single ATS and you see one slice of the market — and you first have to know which vendor each employer uses.

This actor searches Jobo's entire index instead: 3.9 million+ live jobs from thousands of company boards across all 75+ platforms, in one query, with one schema. That's how you find openings at NVIDIA and Walmart (Workday), Airbnb, Stripe, and Anthropic (Greenhouse), IKEA and Deloitte (SmartRecruiters), OpenAI and Notion (Ashby), and Mistral AI (Lever) side by side — without caring which ATS each employer happens to run.

Can I use the official ATS APIs instead?

Some ATS vendors publish official job APIs — but every one of them is per-company. Greenhouse's Job Board API takes one board token per call, Lever's Postings API one company slug, Ashby's one organization name — and Workday has no public jobs API at all. To replicate a cross-platform search you'd need every company's identifier on every ATS, a separate integration per vendor, and your own normalization layer. No ATS offers a public cross-company search API — that's the gap this actor closes: one query across every board Jobo indexes on 75+ platforms, with normalized fields the official feeds don't provide (geocoded locations, USD-normalized salaries, AI-extracted skills).

What data can you extract?

Every result is a structured job record in Jobo's normalized schema — the same shape across all 75+ platforms and all Jobo actors, so you can mix sources freely. Highlights:

FieldDescription
title / normalized_titleRaw posting title + canonical title for grouping
companyCompany preview: name, website, logo, summary, industries (+ id for enrichment)
locationsGeocoded: city, region, country, latitude/longitude
compensation{min, max, currency, period}, normalized to annual USD for filtering
employment_type / workplace_type / experience_levele.g. "Full-time" / "Remote" / "Mid Level"
qualificationsAI-extracted must-have & preferred skills (typed hard/soft), education, certifications
responsibilities / benefitsBullet lists extracted from the description
summary / description2–3 sentence AI recap + full description, HTML stripped
listing_url / apply_urlCanonical listing on the source ATS + direct apply link
is_h1b_sponsor / is_work_auth_required / is_clearance_requiredWork-authorization signals
date_posted / created_at / updated_atEmployer posting date + Jobo index/refresh timestamps
sourceThe originating ATS slug — "greenhouse", "workday", "icims", …

Set include_company_details: true to replace the company preview with the fully enriched profile: funding rounds and investors, leadership, employee ratings, tech stack, headcount and revenue bands, and H1B filing history. The complete field list is on this page's Output schema tab and at docs.jobo.world.

How much does it cost?

This actor uses pay-per-result pricing: you pay a fixed rate per job record returned — the current rate is in the pricing box on this page. There are no separate compute, proxy, or storage charges, and a run never returns more than page_size results, so spend is fully predictable. Apify's free plan includes enough credit to pull thousands of jobs, so you can evaluate the full dataset before paying anything.

How do I search jobs across 75+ ATS platforms?

  1. Open the actor and click Try for free — you'll need a free Apify account.
  2. Enter your search on the Input tab: keep the default queries (["Software Engineer", "Product Manager"]) or add your own titles and locations.
  3. Pick your platforms (optional): leave sources empty to search all 75+ ATSes at once, or scope it to a subset like ["greenhouse", "lever", "ashby"].
  4. Narrow with filters (optional): work model, experience level, salary range, skills, specific companies — or turn search_description off for title-only matching.
  5. Click Start, then export your results from the Output tab as JSON, CSV, or Excel — or connect a schedule, webhook, or integration to make it run on autopilot.

⬇️ Input

Every field is optional — an empty input returns the newest jobs across all 75+ platforms. Up to 5 queries are OR-ed together; prefix a token with - to exclude it.

ParameterTypeDescription
queriesarray (≤5)Job titles or keywords, OR-ed. -token excludes.
search_descriptionbooleantrue (default) = full-text search across title, company, skills, and description; false = title-only matching. See below.
sourcesarrayATS platforms to search (e.g. ["greenhouse", "lever"]). Empty = all 75+.
locationsarrayCities, regions, or countries — geocoded server-side.
work_modelsarrayremote, hybrid, onsite.
employment_typesarrayfull-time, part-time, contract, internship, freelance, temporary.
experience_levelsarrayintern, entry, mid, senior, lead, executive.
skills_include / skills_excludearrayMatch against AI-extracted skills.
companies_include / companies_excludearrayFilter by company name (case-insensitive).
min_salary_usd / max_salary_usdintegerAnnual USD bounds; jobs without a disclosed salary are excluded when set.
posted_after / posted_beforestringISO 8601 (2026-01-01) or relative (7 days ago).
page / page_sizeintegerPage 1–100 × 1–100 results per page (default 50).
include_company_detailsbooleanAttach the full enriched company profile (default false).

The full input schema with defaults is on this page's Input schema tab.

search_description controls what your queries match against:

  • true (default) — full-text search. Queries match the job title, company, skills, and full description. Broadest recall, best for keyword discovery — "python" finds every role that mentions Python anywhere.
  • false — title-only matching. Queries match the job's title plus a curated set of same-role alternative titles: "Android Developer" still finds Android Engineer roles, but never an IT Support Engineer posting that merely lists Android as a skill. Use it when you pass real job titles and want relevance with healthy volume.
  • Double-quoted query — exact title. Wrap a query in double quotes ("\"Android Developer\"") for an exact literal-title phrase match; alternative titles are excluded.

Remote engineering roles across every platform

{
"queries": ["Software Engineer"],
"work_models": ["remote"],
"page_size": 100
}

Senior roles, scoped to the three big tech ATSes

{
"queries": ["Backend Engineer"],
"sources": ["greenhouse", "lever", "ashby"],
"experience_levels": ["senior", "lead"],
"page_size": 100
}

Exact titles only — no description noise

{
"queries": ["Android Developer"],
"search_description": false,
"page_size": 100
}

⬆️ Output example

Results land in the dataset under two views: Job Listings (all sources) (one row per job) and Company details (populated when include_company_details is on). Every row uses the same normalized schema regardless of platform — the source field carries the slug of the ATS the job came from (here "greenhouse"; on a mixed run you'll also see "workday", "icims", and so on). Export as JSON, CSV, or Excel. A typical record:

{
"id": "f0f6a7d0-c667-48f7-95bc-a91f172e2d6d",
"title": "Software Engineer",
"normalized_title": "Software Engineer",
"summary": "Design and develop software for capital equipment and medical devices used by cardiac surgeons and electrophysiologists…",
"company": {
"id": "6647fb14-d420-434a-a332-9c972016b9b0",
"name": "AtriCure",
"website": "https://atricure.com",
"logo_url": "https://images.jobo.world/logos/atricure.jpg",
"industries": ["Medical Devices & Equipment"],
"details_url": "https://connect.jobo.world/api/companies/6647fb14-d420-434a-a332-9c972016b9b0"
},
"locations": [
{
"location": "Minneapolis, MN",
"city": "Minneapolis",
"region": "Minnesota",
"country": "United States",
"latitude": 44.9772995,
"longitude": -93.2654692
}
],
"compensation": { "min": 71036, "max": 104186, "currency": "USD", "period": "yearly" },
"employment_type": "Full-time",
"workplace_type": "On-site",
"experience_level": "Mid Level",
"qualifications": {
"must_have": {
"education": ["Bachelor's degree in Systems Engineering, Electrical Engineering, or Computer Engineering"],
"skills": [
{ "name": "C", "type": "hard" },
{ "name": "C++", "type": "hard" },
{ "name": "Software Development Methodologies", "type": "hard" }
]
},
"preferred": {
"skills": [
{ "name": "Rust", "type": "hard" },
{ "name": "Python", "type": "hard" }
]
}
},
"is_work_auth_required": true,
"listing_url": "https://job-boards.greenhouse.io/atricure/jobs/4309998009",
"apply_url": "https://job-boards.greenhouse.io/atricure/jobs/4309998009#app",
"source": "greenhouse",
"date_posted": "2026-07-09T13:47:14Z",
"description": "…full job description, HTML stripped…"
}

What can you expect from a run?

  • One run returns one page — up to 100 results per call. Walk page 1→100 to reach 10,000 jobs per query; for full-inventory pulls use ATS Jobs Feed (cursor pagination, 1,000 jobs per batch).
  • Results can mix sources — a single page is ranked across every platform you include; set sources to scope a run to specific ATSes (which usually speeds it up too).
  • Freshness: every listing is re-verified daily; expired jobs are removed within 24 hours of disappearing from the source board.
  • Salaries are normalized to annual USD using current FX rates, so min_salary_usd works across currencies.
  • Geocoding is best-effort — loose strings like "Worldwide" won't geocode, but the raw location string is always preserved.
  • industries can be empty for long-tail companies that Jobo's enrichment pipeline hasn't profiled yet.
  • source carries the originating ATS slug — handy for routing, analytics, or per-source weighting when you feed the data downstream.

Integrations, API & MCP

Everything on the Apify platform works out of the box: schedules (hourly/daily/weekly runs), webhooks on run completion, and one-click integrations with Zapier, Make, n8n, Slack, Google Sheets, and Google Drive.

Prefer code? Call this actor as a multi-ATS jobs API from Python or JavaScript with the Apify API clients — start a run, wait for it, and page through the dataset in a few lines (ready-made snippets are in the API section of this page). AI agents can run it through the Apify MCP server, which exposes this actor as a tool.

Use cases

WhoWhat for
Job boardsCross-ATS aggregators with normalized data from every platform the market uses
AI agentsCareer copilots grounded in the broadest live job dataset — one tool call, 75+ platforms
RecruitersSourcing intel regardless of which ATS an employer happens to run
HR techMarket dashboards that don't stop at a single vendor's customer base
Salary researchCompensation benchmarks across segments — startups to global enterprises
Market researchHiring-velocity tracking without per-ATS bias

❓ FAQ

Should I use this actor or a single-ATS actor?

Use this actor for cross-platform coverage, or when you don't know (or care) which ATS an employer uses. Use a single-ATS actor like Greenhouse Jobs Scraper when you only ever need one platform — simpler input, identical output schema.

How many ATS platforms are covered?

75+ — Greenhouse, Lever, Ashby, Workday, iCIMS, Taleo, SuccessFactors, Oracle Cloud, ADP, Paycom, Dayforce, BambooHR, Personio, SmartRecruiters, and many more. The full slug list is in the table above.

Which ATS platforms have no dedicated actor?

Most of them — this actor covers all 75+. iCIMS, Taleo, SuccessFactors, Dayforce, ADP, Oracle Cloud, Paycom, UKG (ultipro, kronos), and dozens more have no dedicated Jobo actor and are searchable only here: set sources to any slug from the table above.

How do I download more than 10,000 jobs?

Use ATS Jobs Feed — it streams the full inventory with cursor pagination at 1,000 jobs per batch, built for ETL pipelines.

Are duplicate listings removed?

Yes. Jobo de-duplicates by company + canonical title + listing URL before results are returned, so cross-posted duplicates of the same role are merged.

Can I filter by salary?

Yes — min_salary_usd / max_salary_usd, matched against USD-normalized compensation. Jobs that don't disclose a salary are excluded whenever a salary filter is set.

How fresh is the data?

New jobs are indexed within 24 hours of appearing on any of the 75+ platforms; every listing is re-verified daily and removed within 24 hours of expiring.

Where can I check if the API behind this actor is up?

At jobo.world/status — the live status page for the Jobo Connect API that powers every Jobo actor.

Yes — this actor only extracts publicly posted job listings, the content employers publish specifically to be found and shared. It does not collect private user data. Note that scraped results can incidentally contain personal data (e.g., a recruiter's name in a job description); personal data is protected by the GDPR and similar regulations, so only process it with a legitimate reason and consult a lawyer if unsure. Read more in Apify's guide to the legality of web scraping.

All ATS names are trademarks of their respective owners. This actor is an independent product and is not affiliated with, endorsed by, or sponsored by any of them.

ActorBest for
ATS Jobs FeedBulk export for data pipelines — cursor pagination, 1,000 jobs/batch
AI Deep Job SearchDescribe your ideal job in plain English, get AI-scored matches
Greenhouse Jobs Scraper175,000+ jobs from tech companies on Greenhouse
Workday Jobs Scraper850,000+ jobs from Fortune 500 employers on Workday
Lever Jobs Scraper75,000+ jobs from VC-backed startups on Lever
Crunchbase Company LookupFunding, leadership, and tech-stack data for any company

About Jobo & support

Jobo builds job-data infrastructure: a normalized, daily-verified index of jobs scraped directly from company ATS boards, powering job boards, AI agents, and HR-tech products.