ATS Job Scraper - 10 Platforms, Jobs API, Deduped | $1.50/1K avatar

ATS Job Scraper - 10 Platforms, Jobs API, Deduped | $1.50/1K

Pricing

$5.00 / 1,000 verified job postings

Go to Apify Store
ATS Job Scraper - 10 Platforms, Jobs API, Deduped | $1.50/1K

ATS Job Scraper - 10 Platforms, Jobs API, Deduped | $1.50/1K

Job postings from 16,276 verified career boards across 10 ATS platforms: Greenhouse, BambooHR, Lever, Ashby, Workable, Workday, Recruitee, Personio, Rippling, SmartRecruiters. Deduped. Demo/sandbox boards excluded. Title, company, location, remote, apply URL, posted date. $1.50 per 1,000 results.

Pricing

$5.00 / 1,000 verified job postings

Rating

0.0

(0)

Developer

Kaleb Confer

Kaleb Confer

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

Share

Verified Job Boards

Job postings from public ATS boards — checked against the vendor's own record count, and told you either way.

Every other job scraper hands you rows and lets you assume they're all there. This one reports, per board, whether completeness was proven, and says so plainly when it can't be.

Every claim on this page is published and checkable: the per-board coverage table, what share of the feed is count-verified, and the cases where it is not — what this index can and cannot prove. The board directory itself is at job-board-directory.

The two things buyers complain about

Look at the open issues on any job-data API and you find the same two, over and over: duplicates and missing records. Both are completeness failures, and both are handled structurally here rather than by effort.

Missing records. Greenhouse, SmartRecruiters, Workday and BambooHR publish a total alongside the board. Every fetch is compared to it. A board that comes up short is flagged, not quietly included.

Duplicates. Deduplication happens at two levels, because one rule cannot do both jobs.

Inside a platform, identity is the vendor's own posting id. Titles cannot be trusted for this: Stripe runs requisitions 8128772 and 8156996, both Account Executive, SMB (Grower) in Chicago, and they are two separate openings with two application links. Collapsing them would hide a real job.

Across platforms, the vendor's id is useless — a company mid-migration runs two live boards and the same real role carries a Greenhouse id and an Ashby id, which have nothing in common. So a role that appears on two of a company's boards under the same title and location is collapsed to one row. Measured 2026-09-03: Trusted Health runs live boards on Ashby and Greenhouse, 6 postings between them, delivered as 5.

Paying per result, you are charged for the 5.

What every run returns

Alongside the roles, a PROVENANCE record:

{
"boards": 3,
"boards_with_published_count": 2,
"boards_verified_complete": 2,
"duplicates_removed": 1,
"unique_roles": 188,
"detail": [
{ "company": "Stripe", "ats": "greenhouse", "postings_fetched": 566,
"count_published_by_vendor": 566, "verified_complete": true,
"completeness_basis": "vendor count matched" },
{ "company": "Ramp", "ats": "ashby", "postings_fetched": 136,
"count_published_by_vendor": null, "verified_complete": null,
"completeness_basis": "vendor publishes no count; whole board returned in one call" }
]
}

Note the null on Ramp. Ashby doesn't publish a count, so completeness there is credible but not proven — one call returns the whole board, with no pagination to truncate. It is reported as unknown rather than dressed up as verified. That distinction is the entire point.

Input

FieldDescription
companiesCompany names. Board tokens resolve automatically — Stripe finds greenhouse/stripe.
keywordOptional title filter.
platformsWhich ATS platforms to check. Default: greenhouse, ashby, lever.
maxResults0 for no limit.

Supported platforms

PlatformCompleteness provable?
Greenhouseyes — publishes meta.total
SmartRecruitersyes — publishes totalFound
Workdayyes — publishes a total
Ashbywhole board in one call, no count published
Leverwhole board in one call, no count published
Workablewhole board in one call, no count published
Recruiteewhole board in one call, no count published
Ripplingwhole board in one call, no count published
Personiowhole board in one call, no count published

Titles, companies and departments are indexed for full-text search, so keyword matches on word stems rather than on a raw substring.

Why not LinkedIn

Measured, not assumed. LinkedIn's public guest endpoint returns 30 unique postings for a broad query and goes empty at offset 600, with no total anywhere in the response. You cannot prove a corpus complete against a source that won't tell you how big it is.

Every endpoint used here is the ATS vendor's own documented public API: no login, no session cookie, no terms accepted, no CAPTCHA, no IP-block circumvention. A board token either resolves or returns 404. Postings contain company data, not personal data of private individuals.

Cost

Pay per result. You are charged for unique, deduplicated roles delivered — not for the run, and not for the duplicates that were removed before you saw them.