ATS Jobs API - Greenhouse, Lever, Ashby, Workday Jobs
Pricing
from $0.90 / 1,000 job listings
ATS Jobs API - Greenhouse, Lever, Ashby, Workday Jobs
ATS jobs API for Greenhouse, Lever, Ashby, Workday and 73 more systems: give a company domain, get every open job with yearly salary, remote/hybrid/on-site, contract type, city and country, benefits, skills and apply link. Only-new-jobs mode. $1.50 per 1,000 jobs, first 3 per run free. No login.
Pricing
from $0.90 / 1,000 job listings
Rating
0.0
(0)
Developer
Khandji Omar
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
One domain or company → every open job listed on Greenhouse, Lever, Ashby or Workday. You type
stripe.com. You get all 545 open roles.This Actor works out which applicant-tracking system a company runs, then reads that ATS's own public endpoint. Official endpoints only — no cookies, no proxies, no login, nothing that can be blocked. Clean, deduplicated, structured rows. 3 job listings free on every run.
77 applicant tracking systems, one schema, one call. The best known: Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Rippling, Breezy HR, Personio, BambooHR, Recruitee, Teamtailor, Workable, Jobvite, Pinpoint, Gem, JOIN, Homerun, HireHive, Manatal, Dover, Avature, PageUp, Zoho Recruit, Oracle Recruiting Cloud, Eightfold, JazzHR, Comeet, iCIMS, Trakstar Hire, UKG UltiPro, Paylocity, ApplicantPro, iSolved Hire, Hireology, HiBob, HiringThing, Cornerstone, softgarden, Factorial.
With includeDescription (on by default) each row also carries the full job description,
salary, contract type, workplace type and apply link where the system publishes them
(Greenhouse, Lever, Ashby, Recruitee, Teamtailor, Pinpoint, Gem and others), plus facts read from
the text by rules, without AI: experience_years, skills, visa_sponsorship, education,
salary_min, salary_max, salary_currency, and since 2026-10-28 employment_type, work_arrangement, office_days_per_week, city, region, country, salary_period, salary_yearly_min, salary_yearly_max, benefits, job_language, contact_emails, is_agency, company_website, company_logo, company_open_jobs. Same price.
Search all companies, no company list needed (new, 2026-10-26)
Do not know which companies to ask for? Tick Search all companies and give a keyword and/or a location:
{"searchAllCompanies": true, "keywords": ["data engineer"], "locations": ["London"]}
The Actor searches an index of the open roles of 1,447 companies (89,333 jobs on 2026-10-26), read from their own
Greenhouse and Lever boards and rebuilt Tuesday to Saturday. The 25 companies with the most matches get their full
description fetched live, the others come with title, company, location, date and apply link. Same price per job, same
filters (excludeKeywords, remoteOnly, postedAfter), and it combines with a company list in the same run.
Measured on the first index: "data engineer" finds 390 roles, engineers in London 531, roles in Berlin 575.
The run summary (RUN_SUMMARY.json, key index) says when the index was built and how many jobs matched.
You do not need to know the company's ATS
Many ATS scrapers ask you for a board token — the internal handle a company registered with Greenhouse or Lever. Finding it means opening the careers page and reading the HTML, which is the work you came here to avoid.
Give this Actor a domain instead:
| You give | It finds | You get |
|---|---|---|
stripe.com | Greenhouse → stripe | 545 roles |
anthropic.com | Greenhouse → anthropic | 399 roles |
figma.com | Greenhouse → figma | 177 roles |
ramp.com | Ashby → ramp | 123 roles |
notion.so | Ashby → notion | 110 roles |
vercel.com | Greenhouse → vercel | 81 roles |
monzo.com | Greenhouse → monzo | 75 roles |
(Measured 2026-08-03 — 1,550 live roles from eight bare domains, nothing else supplied.)
It works in two passes: it reads the company's careers page and looks at where it
links, and if nothing is linked it derives the likely handle from the domain and
asks the providers directly. A company running its own careers page with no
hosted ATS comes back as "ats": null — an answer, not an error.
Board tokens still work if you have them, and you can mix both in one run.
Or paste the job board link itself in the same field (since 2026-10-26): https://boards.greenhouse.io/stripe, https://jobs.lever.co/spotify, https://acme.bamboohr.com/careers or a Workday careers URL. The system and the company are read from the link, with no guess.
What a run costs
Standard price: $1.50 per 1,000 job listings — volume discounts can reduce the Store price to $0.90 per 1,000 (Gold plan and above). You pay only for listings actually delivered to you. There is no per-run fee: a run that finds nothing costs $0.
Ask for many companies at once
Measured on this Actor at ~35 open roles per company:
| Companies in one run | Jobs returned | You pay | Per job |
|---|---|---|---|
| 1 | 35 | $0.05 | $0.0014 |
| 10 | 350 | $0.52 | $0.0015 |
| 50 | 1,750 | $2.62 | $0.0015 |
Batching does not change the price per job — it changes your wall clock. Fifty companies asked together take one run instead of fifty, and the free allowance below is the only thing that makes a small run cheaper per row.
Free tier — 3 job listings on every run
The first 3 job listings of every run are free. Not a trial, not a first-run coupon: it applies to every run you ever make, so you can wire this Actor into a pipeline and evaluate it on your own target companies before a cent is billed.
Beyond the free 3, the standard rate is $0.0015 per job listing — $1.50 per 1,000, with Store volume discounts down to $0.90 per 1,000 — and only for listings actually delivered to you.
One guard, stated plainly: the free allowance never covers more than half of a run, so a run returning 20 listings gets 3 free rather than 10. That is what stops the free tier from becoming an unlimited free plan for anyone willing to split one job into many tiny runs, and what lets us keep offering it.
Quick start
Paste company websites into Company domains and press Start. That is the whole setup — no tokens, no provider to choose.
Or call it as an HTTP API — see Use it as a live HTTP API.
Filter before you pay
Filters are applied before billing, so you are never charged for a job you excluded. A run over 20 companies that keeps only remote engineering roles bills for the remote engineering roles, not the fan-out.
| Input | Effect |
|---|---|
keywords | Keep jobs whose title, department, company or location contains one of these |
excludeKeywords | Drop jobs matching any of these — intern, senior, sales |
locations | Keep jobs whose location contains one of these — Berlin, United Kingdom |
remoteOnly | Keep only roles whose location says remote, anywhere or distributed |
postedAfter | Keep jobs posted on or after YYYY-MM-DD |
excludeTitleKeywords | Drop jobs whose title has one of these words (senior, intern) |
excludeCompanies / excludeLocations | Drop these companies / these places |
departments | Keep only these teams (Engineering, Sales) |
employmentTypes | Full-time, part-time, contract, temporary, internship, freelance, per diem, volunteer (tick "Not stated" to keep jobs that do not say) |
workArrangements | Remote, hybrid or on-site |
countries | Country names or codes (United States, DE) |
onlyWithSalary / minYearlySalary | Only jobs with a published salary / at least this much per year (hourly pay converted) |
excludeAgencies | Drop jobs posted by staffing agencies |
onlyNewJobs | Only jobs this same search has not delivered before; already delivered jobs are never charged again |
industries / companySizes | Only companies in these industries / of these sizes (1-10 ... 10,001+) |
Keywords match whole words and do not stem. engineer returns "Backend
Engineer" but not "Engineering Intern" — pass both words if you want both.
That strictness is deliberate: a substring filter for ai matches "maintainer"
and, measured on a real board, kept 40% of unrelated roles. Jobs from providers
that publish no date are kept by postedAfter rather than silently dropped.
More than the leaders, for less (checked on the Store on 2026-10-28)
| This Actor | fantastic-jobs Career Site Job Listing API | memo23 Career Site ATS Jobs API | |
|---|---|---|---|
| Price per job | $0.0015 | $0.012 | $0.004 + $0.03 per run |
| Free jobs on every run | Yes | No | No |
| Any company you name, read live from its own ATS | Yes | No (its own database only) | Yes |
| Search all companies by keyword, no list | Yes (daily index) | Yes (275k sites, hourly): it does better | No |
| Contract type, on-site / hybrid / remote, office days | Yes | Yes (AI) | Workplace type only |
| City, region and country as separate fields | Yes | Yes | No |
| Salary as numbers + pay period + yearly equivalent | Yes | Numbers + unit | No |
| Benefits list, skills, years of experience, visa, degree | Yes | Yes (AI) | No |
| Job language, contact emails written in the posting | Yes | Yes | Paid email add-on |
| Staffing-agency flag and filter | Yes | Yes | No |
| Open roles per company (hiring intensity) | Yes | No | Yes |
| Company website and logo | Yes | Yes | No |
| Only the jobs new since your last run | Yes | Yes (time window) | Yes |
| Company industry, employees, size band, headquarters, founding year | Yes (Wikidata, free; empty for companies it does not know) | Industry and size (LinkedIn): more small startups covered | No |
| Filters applied before you pay | Yes, 15 filters | Yes | Partly |
Every fact above is read by plain rules from the job system's own fields and the posting text: no AI cost passed on to you, and a field is left empty when the posting does not say it, never guessed.
Compared with memo23/career-site-ats-jobs-api
Read on the Store on 2026-10-23 (Career Site ATS Jobs API — Greenhouse, Lever, Workday, 116 ATS). Where it does better, this section says so.
- Built on the site's own data, not a resold scraper: no second Actor between you and the source.
- Only here (fields its Store page does not list):
change_type(new or changed since your last scheduled run);why_it_matters(one-line reading of the row). - Free results on every run and a hard cost cap (
maxTotalChargeUsd). - Price: $1.5 per 1,000 here, $4 there.
- Where it does better: it lists 116 applicant tracking systems, this Actor 77 (we add more every week, each one tested on a real company first).
Why use it: the ATS instead of a job aggregator
Most job scrapers scrape an aggregator — LinkedIn, Indeed, a job board. That means cookies, proxies, rate limits, and roles that are already stale or reposted by an agency.
This Actor goes to the source: the ATS the employer publishes from.
| Aggregator scraper | This Actor | |
|---|---|---|
| What breaks it | anti-bot, layout changes, expired cookies | nothing — these are the companies' own public API endpoints |
| Freshness | an aggregator's copy, sometimes days old | the role as the employer published it |
| Duplicates | the same role reposted by three agencies | one row per role, deduplicated |
| Proxy bill | yes | none |
| Who reposted it | unknowable | irrelevant — it is first-hand |
Use cases
- Build a job board from hundreds of company career sites, across 77 ATS providers (35 more added since 2026-10-26: Jibe, Paradox, Taleo Business Edition, Phenom, Radancy, Deel, ClearCompany, Lumesse TalentLink, Eploy, Talos360, Jobtrain, JoblinkApply, OnShift, CareerPlug, ApplicantStack, onlyfy, Talentech, Gupy, Traffit, HireBridge, TriNet Hire, Polymer, GoHire, AcquireTM, Harbour ATS, Sage People, SilkRoad, Paycor, Getro, AppliTrack, PeopleAdmin, Loxo, Tribepad, Cezanne/Intervieweb, networx), in one normalized schema.
- Recruiting — watch target employers and get new roles the day they open.
- Sales triggers — hiring surges by function and seniority signal budget and pain.
- Labor-market research — roles by function, seniority, location and remote share.
Use it from code (API)
Every Apify Actor is an API. Start a run and read the results with one call.
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("om_kh/ats-jobs-api").call(run_input={"companyDomains": ["stripe.com", "figma.com"], "keywords": ["engineer"]})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('om_kh/ats-jobs-api').call({"companyDomains": ["stripe.com","figma.com"],"keywords": ["engineer"]});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
One HTTP call (cURL) — runs the Actor and returns the dataset in the same response:
curl -X POST "https://api.apify.com/v2/acts/om_kh~ats-jobs-api/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"companyDomains": ["stripe.com", "figma.com"], "keywords": ["engineer"]}'
Integrations: n8n, Make, Zapier, Google Sheets
- n8n — the official Apify node, operation Run Actor and get dataset, Actor
om_kh/ats-jobs-api. - Make — Apify › Run an Actor, then Apify › Get Dataset Items.
- Zapier — Apify › Run Actor; map the dataset items into your next step.
- Google Sheets, webhooks, Slack — add an integration from the Integrations tab of this Actor.
- Schedules — run it every hour or day from Schedules in Apify Console.
Your feedback
Did this Actor save you time? A short review on the Reviews tab helps other people find it, and every review is read. Something missing or broken? Open an issue on the Issues tab: it is answered and fixed fast.
More Actors from the same author
- Company Careers Page Scraper - Jobs from Any Career Site — give a company domain, it finds the ATS
- Greenhouse Job Scraper - Title, Location, Salary API
- Lever.co Jobs API - Title, Location, Department, Salary
- Ashby Jobs API - Title, Location, Department Data
- Workday Jobs API - Title, Location, Department Data
- Hiring Signals API - Companies Hiring Now by Role — hiring velocity per company, as a buying trigger
Supported ATS providers
Every provider below is fetched in parallel, and you can mix as many companies and providers as you like in one call.
Greenhouse jobs API
Pass the board token — the path segment in boards.greenhouse.io/<token> or
job-boards.greenhouse.io/<token>. Example: stripe.
Greenhouse publishes the whole board in one document, so a company's full listing comes back in a single request. This is the fastest and most complete of the first nine.
Workday jobs API
Pass the full careers URL exactly as it appears in your browser, with or
without the /en-US/ locale segment:
https://redhat.wd5.myworkdayjobs.com/en-US/jobs
The Actor derives the search endpoint itself and pages through the results.
Workday is the one that matters for enterprises — it is what most large employers run on, and a single tenant can advertise thousands of roles. Two things to know: Workday returns 20 roles per page, and this Actor pages up to 200 roles per tenant per run so a single company cannot consume your whole budget. Need more from one tenant, run it again against a narrower Workday site URL (Workday tenants usually expose several, one per region or job family).
Lever postings API
Pass the company handle from jobs.lever.co/<handle>. Example: netflix.
Ashby jobs API
Pass the board name from jobs.ashbyhq.com/<board>. Common among
venture-backed startups.
SmartRecruiters jobs API
Pass the company identifier from careers.smartrecruiters.com/<id>.
Rippling ATS jobs
Pass the company handle from ats.rippling.com/<handle>.
Breezy HR jobs
Pass the company handle from <handle>.breezy.hr.
Personio jobs API
Pass the company handle from <handle>.jobs.personio.de. Personio is
widespread across European, especially German-speaking, employers.
BambooHR jobs
Pass the company handle from <handle>.bamboohr.com.
35 more systems (added since 2026-10-26)
Paste the board link in companyDomains, or the handle in the system's own field. Each one was read on a real company first.
| System | Board link | Tested on |
|---|---|---|
| HireBridge | recruit.hirebridge.com/v3/Jobs/list.aspx?cid=<cid> | 112 jobs |
| TriNet Hire | app.trinethire.com/companies/<company>/jobs | 20 jobs |
| Polymer | jobs.polymer.co/<company> | 15 jobs |
| GoHire | jobs.gohire.io/<board>/ | 10 jobs |
| AcquireTM | <tenant>.acquiretm.com | first 10 jobs of the board |
| Harbour ATS | <tenant>.harbourats.com/vacancies/ | 108 jobs (every page) |
| Sage People | <site>.my.salesforce-sites.com/recruit | 10 jobs |
| SilkRoad (Rival) | jobs.silkroad.com/<company>/Careers | 49 jobs (every page) |
| Paycor Recruiting | recruitingbypaycor.com/career/CareerHome.action?clientId=<id> | 10 jobs |
| Getro (VC job boards) | the network's board host, e.g. jobs.a16z.com | 17 jobs (first page) |
| AppliTrack (Frontline, US schools) | www.applitrack.com/<district>/onlineapp | 84 jobs, whole board |
| PeopleAdmin (US universities) | <site>.peopleadmin.com | 47 jobs, whole Atom feed with text |
| Loxo | app.loxo.co/<agency> | 7 jobs (title and link) |
| Tribepad | <site>.tribepad.com | 12 jobs (title and link) |
| Cezanne / Intervieweb | <host>.intervieweb.it/<board>/en/career | 2 jobs |
| networx / IRIS | <brand>.current-vacancies.com | 3 jobs |
| Gupy (Brazil) | <company>.gupy.io | 304 jobs (Ambev) |
| Traffit (Poland) | <company>.traffit.com | 2 jobs with text |
| Phenom (big employers) | the careers host or just the company domain, e.g. cvshealth.com | 4,859 jobs at CVS Health, 2,818 at Thermo Fisher, with skills and apply link |
| Radancy / TalentBrew (big employers) | the careers host, e.g. jobs.vinci.com/en | 5,000 jobs at VINCI in 82 s |
| JoblinkApply (US hourly) | fcssecurity | 79 jobs with pay |
| ClearCompany | lcmh | 161 jobs with text |
| Deel | klarna | 95 jobs with salary band |
| Talentech (Nordics) | surgicalscience | 6 jobs |
| OnShift (US senior care) | wesbury | 11 jobs with shift |
| Jobtrain (UK public sector) | iomgovjobs | 74 jobs with salary and closing date |
| Lumesse TalentLink | mubeacareers.recruitmentplatform.com | 124 jobs with text |
| Eploy (UK) | altradweb.eploy.net | 150 jobs, every page |
| Talos360 (UK) | ukas.talosats-careers.com | 18 jobs with salary range |
| ApplicantStack | swipeclock | 4 jobs with text |
| onlyfy / Prescreen (DACH) | prescreen | 1 job with text |
| CareerPlug (US franchises) | sportclips | 15 jobs |
| Jibe (iCIMS career sites) | jobs.uhs.com | 4,988 jobs at UHS (cap 5,000), 20,663 listed at Costco |
| Paradox career sites | jobs.harrishealth.org | 390 jobs at Harris Health |
| Taleo Business Edition | https://phf.tbe.taleo.net/phf02/ats/careers/v2/jobSearch?org=COSTCO&cws=41 | 16 jobs at Costco |
With includeDescription on, the first 40 job pages of a board are read for their description, date, place and salary.
Output schema
One clean row per role:
A real row from this Actor's latest run on Apify (2026-10-23; long texts are cut and people's names hidden here, your dataset has them in full):
{"source_url": "https://jobs.ashbyhq.com/ramp/2a4968ae-220c-471b-b890-a011de570bbb","title": "Software Engineer, Bill Pay & Procurement","company": "ramp","location": "New York, NY (HQ)","department": "Engineering","posted_at": "2025-10-29T20:06:15.084+00:00","source": "ashby","salary": "$168K – $275.1K • Offers Equity","job_id": "2a4968ae-220c-471b-b890-a011de570bbb","description": "ABOUT RAMP\n\nRamp is building the smart infrastructure for finance teams, embedded in the transaction flow of every dollar a business spen...","employment_type": "FullTime","workplace_type": "remote","apply_url": "https://jobs.ashbyhq.com/ramp/2a4968ae-220c-471b-b890-a011de570bbb/application","function": "Engineering","seniority": "Mid","is_remote": false,"posted_within_days": 359,"is_recent": false,"experience_years": 3,"skills": ["Python","SQL"],"salary_min": 168000,"salary_max": 275100,"salary_currency": "USD","record_id": "027593ffeed76d350d99d1c0","change_type": "new","why_it_matters": "New job posting: Software Engineer, Bill Pay & Procurement at ramp — a hiring signal."}
| Field | What it holds |
|---|---|
source_url | canonical link to the role on the employer's own board |
title | role title as published |
company | the handle or board you passed |
location | as the employer wrote it |
department | team or department, when the ATS exposes one |
salary | posted range, when the employer published one |
posted_at | ISO-8601 publication timestamp, when available |
source | which ATS the row came from |
Duplicates across boards are removed. Seniority and job function are inferred and attached, so you can filter without post-processing.
Facts on every job (new 2026-10-28)
Read by rules, no AI cost, empty when the posting does not say it:
| Field | What it holds |
|---|---|
employment_type | FULL_TIME, PART_TIME, CONTRACT, TEMPORARY, INTERNSHIP, FREELANCE, PER_DIEM or VOLUNTEER: from the system's own field, the title, or a clear phrase |
work_arrangement, office_days_per_week | REMOTE, HYBRID or ON_SITE, and the office days when a hybrid posting states them |
city, region, country | The first location split into parts; country is a 2-letter code |
salary_period, salary_yearly_min, salary_yearly_max | HOUR, DAY, WEEK, MONTH or YEAR, and the pay converted to a yearly amount, so hourly and yearly jobs compare |
benefits | Health, dental, vision, retirement plan, equity, bonus, paid time off, parental leave, learning budget and 12 more |
job_language | The posting's language (en, fr, de, es, pt, it, nl) |
contact_emails | Emails written in the posting (recruiter or jobs inbox); privacy and no-reply boxes left out |
is_agency | true when a staffing agency posted it for a client |
company_website, company_logo, company_open_jobs | The company's site and logo, and how many open roles this run found for it |
company_industry, company_employees, company_size, company_headquarters, company_founded | From Wikidata by the company's website (on by default, includeCompanyProfile): e.g. Stripe = financial services, 8,000 employees, 5,001-10,000, San Francisco, 2010. Empty for companies Wikidata does not know |
Measured 2026-10-28 on 592 live roles (Stripe, Palantir, Notion, Airbnb): city on 84%, country on 75%, on-site/hybrid/remote on 67%, benefits on 74%, contract type on 51%.
Use it from an AI agent (MCP and x402)
Connect Claude Desktop, Cursor, VS Code or any MCP client to Apify's MCP server
at https://mcp.apify.com and add this Actor, om_kh/ats-jobs-api, as a tool — the
agent passes the same JSON as the run input and gets the dataset back.
AI agents that pay with x402 can run it too, without an Apify account: the Actor charges only per result delivered, so an agent pays exactly for what it gets.
Bonus: only the new roles, plus a hiring signal
Pass the previous run's output as previousJobs and you get only what
changed — roles opened, roles updated — plus a hiring-growth summary in
HIRING_SIGNAL.json.
That turns the Actor into a hiring-intent feed: which teams a company is staffing
up, in which cities, starting when. Useful for sales triggers ("they just opened
12 sales roles"), recruiting, and competitive research. Leave previousJobs empty
and you simply get the full current list.
Frequently asked questions
Is there a free Workday jobs API?
Workday exposes a public search endpoint on every tenant's careers site, and this Actor reads it directly. No Workday account, key or partnership is needed. The first 3 listings of every run are free here; beyond that it is $0.0015 per role.
How do I get jobs from a company's own careers page?
Find which ATS the company uses — the careers page URL usually gives it away
(boards.greenhouse.io/..., jobs.lever.co/..., <tenant>.myworkdayjobs.com/...)
— then pass that handle or URL in the matching field. If the URL does not match
any of the thirty-seven providers of this Actor, the company is on something else and this Actor
cannot read it.
Does this scrape LinkedIn or Indeed?
No, deliberately. Those are aggregators: their copies are second-hand, often stale, and reposted by recruiters. This Actor reads the employer's own ATS, so every row is first-hand. If you do want aggregator coverage, see the related scrapers at the bottom.
Will it break when a site changes its layout?
There is no layout involved. These are JSON API endpoints the companies publish
for their own careers pages, so there is nothing to parse and no anti-bot to
fight. A provider can still change its API — when a board is unreachable it is
reported in source_errors and costs you nothing.
How many jobs will one run return?
As many as the companies have published, minus duplicates, subject to your own
maxTotalChargeUsd cap and the 200-per-tenant Workday limit. For reference, a
single large Greenhouse board typically returns 300–600 live roles.
What does it cost to try?
Nothing. The first 3 listings of every run are free, forever, and a board whose ATS fails is never billed.
Can an AI agent use it?
Yes. RUN_SUMMARY.json and HIRING_SIGNAL.json give an agent the outcome
without re-reading the dataset, and the run-sync API endpoint returns the jobs
as plain JSON in one HTTP call.
Is this a job posting API?
Yes. Give it a company domain and it returns that company's job postings as structured rows, read live from the applicant tracking system the employer publishes from. There is no index in between, so a posting appears here as soon as the employer publishes it.
Which ATS platforms are supported?
Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Rippling, Breezy HR, Personio, BambooHR, Recruitee, Teamtailor, Workable, Jobvite, Pinpoint, Gem, JOIN, Homerun, HireHive, Manatal, Dover, Avature, PageUp, Zoho Recruit, Oracle Recruiting Cloud, Eightfold, JazzHR, Comeet, iCIMS, Trakstar Hire, UKG UltiPro, Paylocity, ApplicantPro, iSolved Hire, Hireology, HiBob, HiringThing, Cornerstone, softgarden, Factorial — thirty-seven systems, one output schema.
Do I need an API key for the ATS?
No. Every endpoint used here is the public one the company's own careers page calls. No key, no cookie, no login, no proxy.
How do I get jobs from a company career site?
Put the company's website in Company domains. The Actor reads the careers page, finds which system sits behind it, and returns the roles. If you already know the board token you can pass that instead.
Can I filter to remote or recent jobs only?
Yes — remoteOnly, postedAfter, keywords, excludeKeywords and locations.
Filters run before billing, so you are not charged for rows you excluded.
Limits and costs
- Hard cost cap. Set
maxTotalChargeUsdand the run can never bill above it. - A failed board is never billed. Unreachable ATS endpoints are reported in
source_errorsand cost you nothing. - Workday: up to 200 roles per tenant per run, 20 per page.
- Free tier: 10 listings per run, never more than half of a run.
Related tools
- Have a single company's own career page instead of an ATS board? → Company Careers Page Scraper - Jobs from Any Career Site
- Want a hiring-trend signal instead of raw job listings? → Hiring Signals API - Companies Hiring Now by Role
All input fields
Every field the Start form accepts, so nothing in the schema is undocumented. Most runs only need the fields already covered above — these are the rest, including advanced/bring-your-own-data options.
ashbyBoards(Ashby job boards) — Board names on Ashby (from jobs.ashbyhq.com/bambooHrCompanies(BambooHR companies) — Company handles on BambooHR (frombreezyCompanies(Breezy HR companies) — Company handles on Breezy HR (fromcurrentJobs(Bring your own jobs (optional)) — Optional. Supply your own job rows to normalize/deduplicate instead of fetching. Leave empty to fetch from the boards above.greenhouseBoards(Greenhouse company boards) — Company board tokens on Greenhouse (from boards.greenhouse.io/leverCompanies(Lever companies) — Company handles on Lever (from jobs.lever.co/personioCompanies(Personio companies) — Company handles on Personio (fromripplingCompanies(Rippling ATS companies) — Company handles on Rippling ATS (from ats.rippling.com/smartRecruitersCompanies(SmartRecruiters companies) — Company identifiers on SmartRecruiters.workdayCareerUrls(Workday careers URLs) — Full careers-site URLs on Workday, e.g. https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite. Most large enterprises use Workday.