Expired & Historical Jobs API
Historical Jobs Search
Free discovery over the historical archive: counts, year breakdown, top companies, sample titles and a price quote
POST
Find out what the historical archive holds before you buy an export. The archive contains every job Hirebase has seen expire (roughly 29M records) with the same structured fields as live jobs. This endpoint returns aggregate information only, so you can iterate on filters as often as you like at no cost, then hand the same filter set to Historical Jobs Export.
Metering: free. Costs 0 units on every plan and every origin. Standard rate limits apply.
Request Body
All fields are optional, but at least one filter must be present. Unknown keys return422 rather than being ignored. Only filters the archive index evaluates are accepted, so the count you see here is exactly the count an export will bill.
string[]
Job-title terms. Same quoting,
AND and - exclusion syntax as Search Jobs. Example: ["sustainability", "ESG", "\"renewable energy\""].string[]
Terms matched against
skills, technologies and benefits. Description text is not searched on the archive.object[]
Structured locations with any of
city, region, country. Example: [{"country": "United States"}].string
Named region group, e.g.
Bay_Area, Northeast, Europe.string[]
Exact company names.
string[]
Company slugs, e.g.
["edf-renewables"].string
Inclusive lower bound on
date_posted, YYYY-MM-DD.string
Inclusive upper bound on
date_posted, YYYY-MM-DD.string
Inclusive lower bound on
date_expired, YYYY-MM-DD.string
Inclusive upper bound on
date_expired, YYYY-MM-DD.integer
default:"50"
Number of sample titles to return,
0–100.Not supported on the archive (returns
422): salary, job type, seniority, industry, work arrangement, and free-text description search. These fields are still present in every exported record; they just cannot be used to filter yet.Response
integer
Archived jobs matching the filters. This is the number an uncapped export would contain.
object[]
{year, count} for each year from 2021 (or date_posted_from) to the current year.object[]
Up to 10
{company_name, count} entries.object[]
{job_title, year_posted} for the most recently posted matches. Titles only; full records come from the export.object
description_text_sample_pct: share of the sampled records that still carry free-text description (0–100). Structured fields are retained on all records. note: a plain-language coverage caveat.object
record_count, price_usd for exporting the whole match set, and tiers describing the pricing.Coverage
The archive reflects Hirebase’s own crawl footprint, which has grown year over year. A thin early year means Hirebase saw fewer postings then, not that the market was smaller.
About 60% of the archive is US-based.