Ats Jobs API
Pricing
from $1.30 / 1,000 jobs
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
Maintained by CommunityActor stats
12
Bookmarked
414
Total users
88
Monthly active users
0.28 hours
Issues response
20 hours ago
Last modified
Categories
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.
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
sourcesto 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?
| Category | Platforms |
|---|---|
| Tech / startup | greenhouse, lever, ashby, workable, polymer, rippling, gem, kula, joincom |
| Enterprise HCM | workday, successfactors, taleo, oraclecloud, csod, dayforce, kronos, ultipro, saashr, paycom, paycor, paylocity, adpmyjobs, adpworkforcenow, isolved, pageup, trinet, hibob |
| SMB / mid-market | bamboohr, breezy, jazzhr, personio, recruitee, smartrecruiters, freshteam, jobscore, recooty, zohorecruit, manatal, hireology, hirehive, hiringthing, homerun, gusto, onshift |
| AI / talent experience | eightfold, phenompeople, paradox |
| Specialty / public sector / other | acquiretm, 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:
| Field | Description |
|---|---|
title / normalized_title | Raw posting title + canonical title for grouping |
company | Company preview: name, website, logo, summary, industries (+ id for enrichment) |
locations | Geocoded: city, region, country, latitude/longitude |
compensation | {min, max, currency, period}, normalized to annual USD for filtering |
employment_type / workplace_type / experience_level | e.g. "Full-time" / "Remote" / "Mid Level" |
qualifications | AI-extracted must-have & preferred skills (typed hard/soft), education, certifications |
responsibilities / benefits | Bullet lists extracted from the description |
summary / description | 2–3 sentence AI recap + full description, HTML stripped |
listing_url / apply_url | Canonical listing on the source ATS + direct apply link |
is_h1b_sponsor / is_work_auth_required / is_clearance_required | Work-authorization signals |
date_posted / created_at / updated_at | Employer posting date + Jobo index/refresh timestamps |
source | The 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?
- Open the actor and click Try for free — you'll need a free Apify account.
- Enter your search on the Input tab: keep the default
queries(["Software Engineer", "Product Manager"]) or add your own titles andlocations. - Pick your platforms (optional): leave
sourcesempty to search all 75+ ATSes at once, or scope it to a subset like["greenhouse", "lever", "ashby"]. - Narrow with filters (optional): work model, experience level, salary range, skills, specific companies — or turn
search_descriptionoff for title-only matching. - 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.
| Parameter | Type | Description |
|---|---|---|
queries | array (≤5) | Job titles or keywords, OR-ed. -token excludes. |
search_description | boolean | true (default) = full-text search across title, company, skills, and description; false = title-only matching. See below. |
sources | array | ATS platforms to search (e.g. ["greenhouse", "lever"]). Empty = all 75+. |
locations | array | Cities, regions, or countries — geocoded server-side. |
work_models | array | remote, hybrid, onsite. |
employment_types | array | full-time, part-time, contract, internship, freelance, temporary. |
experience_levels | array | intern, entry, mid, senior, lead, executive. |
skills_include / skills_exclude | array | Match against AI-extracted skills. |
companies_include / companies_exclude | array | Filter by company name (case-insensitive). |
min_salary_usd / max_salary_usd | integer | Annual USD bounds; jobs without a disclosed salary are excluded when set. |
posted_after / posted_before | string | ISO 8601 (2026-01-01) or relative (7 days ago). |
page / page_size | integer | Page 1–100 × 1–100 results per page (default 50). |
include_company_details | boolean | Attach the full enriched company profile (default false). |
The full input schema with defaults is on this page's Input schema tab.
Title-only matching vs full-text search
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
page1→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
sourcesto 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_usdworks across currencies. - Geocoding is best-effort — loose strings like
"Worldwide"won't geocode, but the raw location string is always preserved. industriescan be empty for long-tail companies that Jobo's enrichment pipeline hasn't profiled yet.sourcecarries 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
| Who | What for |
|---|---|
| Job boards | Cross-ATS aggregators with normalized data from every platform the market uses |
| AI agents | Career copilots grounded in the broadest live job dataset — one tool call, 75+ platforms |
| Recruiters | Sourcing intel regardless of which ATS an employer happens to run |
| HR tech | Market dashboards that don't stop at a single vendor's customer base |
| Salary research | Compensation benchmarks across segments — startups to global enterprises |
| Market research | Hiring-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.
⚖️ Is it legal to scrape ATS job listings?
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.
🔗 Related actors
| Actor | Best for |
|---|---|
| ATS Jobs Feed | Bulk export for data pipelines — cursor pagination, 1,000 jobs/batch |
| AI Deep Job Search | Describe your ideal job in plain English, get AI-scored matches |
| Greenhouse Jobs Scraper | 175,000+ jobs from tech companies on Greenhouse |
| Workday Jobs Scraper | 850,000+ jobs from Fortune 500 employers on Workday |
| Lever Jobs Scraper | 75,000+ jobs from VC-backed startups on Lever |
| Crunchbase Company Lookup | Funding, 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.
- Questions or bugs? Open a ticket on this actor's Issues tab — issues are answered within hours.
- Website: jobo.world · Enterprise API: jobo.world/enterprise · API status: jobo.world/status
- Email: enrico@jobo.world