Coverage
Every field in the ledger, counted on the rows we will actually serve you — including the ones we do not have. You will find this out on evaluation day either way; better it comes from us.
| Live listings we will serve | 3,318,454 |
| Employers | 178,739 |
| Posted in the last 7 days | 232,815 |
| Held and deliberately not served | 378,889 |
| Closed roles retained | 6,083,548 |
| Countries | 251 |
| Measured | 2026-09-20T22:53:41Z |
| Ledger last refreshed | 2026-09-20T22:50:29Z |
| Employer career sites and direct submissions | 1,662,060 · 3 sources |
| Employer applicant-tracking systems | 1,646,948 · 17 sources |
| Government and public employment services | 9,446 · 3 sources |
The ledger carries no aggregator data. These 19 sources are fetched for our own products and are never published here or through the API, because we are not licensed to redistribute them:
adzuna · apify_all_jobs · apify_fantastic_jobs · apify_job_listings · apify_xing · arbeitnow · arbeitsagentur · careerjet · eures · france_travail · himalayas · jobicy · jooble · landing_jobs · remoteok · remotive · the_muse · weworkremotely · working_nomads
This is why the data is safe to build a product on. If your compliance team asks where a row came from, the answer is in the row.
Measured from the ledger on a schedule, not at the moment you load the page — the exact measurement time is in the table above, and the API returns it as measured_at with an age_seconds beside it. Counting this per request took 24 seconds and returned an error instead of a number. Machine-readable at GET api.jobopportunitiesapi.org/public/coverage.