Jobs Data Benchmark
For a fixed set of companies whose careers pages run on a public ATS board, how many of their open roles does the provider return, how many of its postings are closed or duplicated, and are locations and dates right?
Leaderboard
| Provider | Employer coverage | Postings recall | Latency p50 | Cost / job | Overall |
|---|---|---|---|---|---|
| #1Bright Data live | 98.3%A (top fifth of the field on this metric) | 85.0%A (top fifth of the field on this metric) | - | $0.0017B (upper half of the field on this metric) | 3.6A (top fifth of the field on this metric) |
| #2Apollo.io | 96.7%A (top fifth of the field on this metric) | 78.0%A (top fifth of the field on this metric) | 3,896msB (upper half of the field on this metric) | $0.0023B (upper half of the field on this metric) | 3.6A (top fifth of the field on this metric) |
| #3HarvestAPI live | 95.0%B (upper half of the field on this metric) | 59.3%C (lower half of the field on this metric) | 4,579msC (lower half of the field on this metric) | $0.0001A (top fifth of the field on this metric) | 2.7B (upper half of the field on this metric) |
| #4LeadMagic | 85.0%C (lower half of the field on this metric) | 76.7%B (upper half of the field on this metric) | 9,729msD (bottom fifth of the field on this metric) | $0.028D (bottom fifth of the field on this metric) | 2.1C (lower half of the field on this metric) |
| #5Blitz API | 91.7%C (lower half of the field on this metric) | 73.2%C (lower half of the field on this metric) | 2,143msA (top fifth of the field on this metric) | $0.019C (lower half of the field on this metric) | 1.9C (lower half of the field on this metric) |
| #6Crustdata live | 83.3%D (bottom fifth of the field on this metric) | 47.6%D (bottom fifth of the field on this metric) | 2,858msB (upper half of the field on this metric) | - | 1.7C (lower half of the field on this metric) |
Grade, against the field on this metric:A (top fifth of the field on this metric)top fifthB (upper half of the field on this metric)upper halfC (lower half of the field on this metric)lower halfD (bottom fifth of the field on this metric)bottom fifth
Ranked by overall grade, the weighted mean of each provider's grades on every metric of the suite, core and specific; ties are broken on Employer coverage. Click any column to re-sort; # is the default rank.
Suite-specific metrics
What only this data type needs measured. Same providers, same run, same rank as the leaderboard. Wider than the page: scroll the table sideways for the remaining columns.
| Provider | Closed or unknown postings | Duplicate postings | Location accuracy | Posted-date accuracy | Description present | Coverage by country | Overall |
|---|---|---|---|---|---|---|---|
| #1Bright Data live | 10.4%A (top fifth of the field on this metric) | 15.0%B (upper half of the field on this metric) | 95.5%C (lower half of the field on this metric) | 24.5%D (bottom fifth of the field on this metric) | 100.0%A (top fifth of the field on this metric) | 92.9%A (top fifth of the field on this metric) | 3.6A (top fifth of the field on this metric) |
| #2Apollo.io | 29.9%B (upper half of the field on this metric) | 15.0%B (upper half of the field on this metric) | 96.3%B (upper half of the field on this metric) | 67.8%A (top fifth of the field on this metric) | 0.0%D (bottom fifth of the field on this metric) | 92.9%A (top fifth of the field on this metric) | 3.6A (top fifth of the field on this metric) |
| #3HarvestAPI live | 10.6%A (top fifth of the field on this metric) | 33.8%D (bottom fifth of the field on this metric) | 96.3%B (upper half of the field on this metric) | 32.8%C (lower half of the field on this metric) | 0.0%D (bottom fifth of the field on this metric) | 91.7%B (upper half of the field on this metric) | 2.7B (upper half of the field on this metric) |
| #4LeadMagic | 47.3%C (lower half of the field on this metric) | 16.7%C (lower half of the field on this metric) | 97.3%A (top fifth of the field on this metric) | 66.3%B (upper half of the field on this metric) | 0.0%D (bottom fifth of the field on this metric) | 78.6%D (bottom fifth of the field on this metric) | 2.1C (lower half of the field on this metric) |
| #5Blitz API | 71.2%D (bottom fifth of the field on this metric) | 22.2%C (lower half of the field on this metric) | 93.1%D (bottom fifth of the field on this metric) | 58.4%C (lower half of the field on this metric) | 0.0%D (bottom fifth of the field on this metric) | 88.9%C (lower half of the field on this metric) | 1.9C (lower half of the field on this metric) |
| #6Crustdata live | 35.4%C (lower half of the field on this metric) | 13.8%A (top fifth of the field on this metric) | 96.6%A (top fifth of the field on this metric) | 66.8%A (top fifth of the field on this metric) | 100.0%A (top fifth of the field on this metric) | 81.3%C (lower half of the field on this metric) | 1.7C (lower half of the field on this metric) |
Grade, against the field on this metric:A (top fifth of the field on this metric)top fifthB (upper half of the field on this metric)upper halfC (lower half of the field on this metric)lower halfD (bottom fifth of the field on this metric)bottom fifth
Overall grade
Weighted mean of each provider's grades on every metric of the suite, A = 4 to D = 1, in leaderboard order.
Verdict
6 providers ranked. On employer coverage, the field runs from 98.3% (Bright Data) to 83.3% (Crustdata): the gap is the reason to benchmark on the data you actually buy.
Price basis
The pack behind Cost / job, per provider: the central tier of its self-serve price ladder (on the public pricing page or after a free signup, never through sales) (the upper middle one when the count is even), in list price, monthly billing where offered, euro prices converted at 1 EUR = 1.1551 USD. Per request is the pack price divided by the requests it covers; Cost / job then divides it by the measured yield.
| Provider | Pack used | Pack price | Per request | Billed |
|---|---|---|---|---|
| Bright Data live | Scaletier 2 of 2 | $499 / month384,000 credits | $0.0011 credit | Only when found |
| Apollo.io | Professional (1 seat)tier 2 of 3 | $99 / month4,000 credits | $0.0251 credit | Every request |
| HarvestAPI live | Pro top-uptier 3 of 4 | $280 / month483.59 credits | $0.0010.001 credits | Every request |
| LeadMagic | Professionaltier 3 of 4 | $499 / month50,000 credits | $0.0101 credit | Only when found |
| Blitz API | Plustier 2 of 3 | $499 / monthflat rate, spread over 10,000 requests | $0.050 | Every request |
| Crustdata live | No public price | - | - | - |
Methodology
- 01Who is in the test set
60 companies (18 in France, 14 in the United Kingdom, 16 in the United States, 12 elsewhere in Europe) whose careers pages run on a public Greenhouse, Lever, Ashby or Recruitee board with 5 to 60 open roles, and whose board descriptions name the company. Their 1,724 open roles were read from the boards' public APIs on the run day: title, locations, publication date.
- 02How each provider is asked
Each provider lists the company's postings the way its API does, page after page: Apollo by organization (resolved from the domain first), Blitz API by LinkedIn company page (resolved from the domain first), LeadMagic by domain, keeping the postings it marks open, Crustdata by domain, restricted to listings updated in the 30 days before the run, since its index keeps closed postings for years, and Bright Data through its LinkedIn job listings dataset, discovered by company name, worldwide and at any date. Bright Data runs every company of a batch in one asynchronous job, so its latency is not measured.
- 03How a posting is judged
A returned posting is matched to an open role by the ATS job id in its link when it points to the board, otherwise by its title (gender tags and punctuation dropped; the same words, or the same words give or take two, such as a region suffix), preferring a role in the same country. Recall is the share of the 1,724 open roles found. A posting that matches no open role counts as closed or unknown; one that matches a role another posting already matched counts as a duplicate. Location needs the country right; the posted date must fall within 3 days of the board's publication date.
- 04What a job costs
The list price of the requests on the central pack of the provider's self-serve price ladder (the middle tier, the upper one when the count is even), for all 60 companies, divided by the open roles found: per page for Apollo, per posting returned for LeadMagic, per request for Blitz API's flat-rate plan spread over 10,000 requests. Crustdata publishes no dollar price.
- 05What this does not tell you
A single snapshot says nothing about how fast a new role appears or a closed one disappears, and history is not graded. A company whose roles also live on job boards outside its ATS can make a real posting look unknown, alike for every provider.
- 06Same conditions for everyone
Most provider calls go through the same API gateway, with a fresh answer forced on every call; providers it does not carry are called directly on their own API, or through Clay or their own web app where no API access was available, and the method above names them. Latency is measured from the same place for everyone, includes the gateway hop where there is one, and for asynchronous APIs runs until the job completes: comparable between providers, not a vendor's absolute latency.
- 07Grades and overall
Every value is graded against the other providers on the same metric: A for the top fifth, B the upper half, C the lower half, D the bottom fifth. Overall is the weighted mean of a provider's grades on every metric it was measured on, A = 4 to D = 1. Weights: Employer coverage 10×, Postings recall 5×, Latency p50 0.25×, Cost / job 3×, every other metric 1×. A provider needs at least 20 attempted entries to be ranked; one that could not run is listed as not measured, never scored as zero, and "-" marks a metric not measured.
Raw responses hold personal data and are not published; the per-provider aggregates behind every number, with the counts they were computed from, are in the repository underruns/2026-09-25/scores/jobs.json. Inputs were checked before the run: people whose name, title and employer their own employer publishes, companies checked against registries and filings. Results on your own data will be lower: they include input errors we deliberately excluded so every provider was tested on the same, known-correct set.
What we measure
Every metric is defined once and applied the same way to every provider, so it compares across providers. The core metrics (coverage, accuracy, latency, pricing, and freshness and API quality where they apply) recur across suites; the rest are specific to this data type.
Questions about the Jobs Data benchmark
Which is the best jobs data provider?
Bright Data ranks first on the Jobs Data benchmark, with an overall grade of 3.6 A, ahead of Apollo.io (3.6 A) and HarvestAPI (2.7 B). 6 providers were ranked in the run of 2026-09-25. The overall grade covers every metric of the benchmark, so the leader on a single metric can rank lower.
Which jobs data provider has the highest employer coverage?
Bright Data leads on employer coverage, at 98.3%, ahead of Apollo.io at 96.7%. Across the 6 providers ranked, employer coverage runs from 98.3% to 83.3%. Share of test companies with at least one posting returned.
Which jobs data provider has the highest postings recall?
Bright Data leads on postings recall, at 85.0%, ahead of Apollo.io at 78.0%. Share of the companies' open roles found among the returned postings.
Which jobs data provider is fastest?
Blitz API leads on latency p50, at 2,143ms, ahead of Crustdata at 2,858ms. Median time to list one company, all pages and the lookup before them included.
Which jobs data provider has the lowest cost per job?
HarvestAPI leads on cost per job, at $0.0001, ahead of Bright Data at $0.0017. List price of the requests divided by the open roles found, on the central pack of the self-serve price ladder.
How is the Jobs Data benchmark measured?
Every provider answers the same frozen, verified test set (60 companies · 18 FR / 14 UK / 16 US / 12 other EU · 1,724 open roles · set v2026-09-25.1) in the same window, graded by the companies' own ATS boards (objective). Each value gets a letter grade against the rest of the field, A for the top fifth down to D for the bottom fifth, and the leaderboard ranks providers on the weighted mean of their grades on every metric, employer coverage weighing most; ties are broken on employer coverage.
Providers in this suite
Not measured in this run
In this suite, but not ranked this run: no self-serve access, no credits, or fewer than 20 entries run. Not measured is never scored as zero.