Skip to main content
Rolling out. The Historical Jobs endpoints are documented ahead of release and may not be live on api.hirebase.org yet. If you get a 404 or 405, the rollout has not reached production; check the changelog or email hello@hirebase.org and we will let you know when it is available.
The live Jobs API answers “who is hiring right now”. The historical archive answers “who was hiring, for what, where and when”. It holds every posting Hirebase has seen expire, with the same structured fields as live jobs, and is sold by the dataset rather than against a monthly quota. Typical uses: labour-market research over a segment (for example US sustainability / ESG roles since 2023), backfilling a database with past postings for a set of titles or companies, market sizing and competitive analysis, and building training or evaluation corpora.

The workflow

1

Discover, for free

Call Historical Jobs Search with your filters. You get the total match count, a breakdown by year posted, the top hiring companies, a sample of matching titles, a description-text coverage estimate and a price quote. It costs nothing, so iterate until the match set looks right.
2

Export, priced per record

Send the same filter object to Historical Jobs Export with format and an optional limit. The response quotes the exact price and returns a Stripe Checkout link plus the task id.
3

Pay, then download

Pay at the link. The export starts immediately, streams every matching full record to a file, and emails you a private download link valid for 30 days. You can also poll GET /v2/tasks/{task_id}.

What you can filter on

Job-title terms, keywords (matched on skills, technologies and benefits), geography (country, region, city or a named region group), company names or slugs, and posted / expired date ranges. Anything else returns 422 so a typo can never silently widen a paid export. Salary, seniority, job type, industry and work arrangement are in every exported record but are not filterable on the archive yet.

What you get, and what is missing

Every record keeps its structured fields: title, company, location, posted and expired dates, category, seniority, years of experience, salary, skills, technologies, benefits, education and requirements summary. Free-text description is retained on a subset; the search response’s coverage.description_text_sample_pct tells you the share for your particular match set before you pay. Coverage by year reflects Hirebase’s own crawl growth. Expect a few hundred records per year before 2025 for a narrow segment and thousands from 2025 on. The by_year_posted breakdown shows you exactly what you would be buying. Multi-location postings appear once per location. If you want one row per opening, group on company_slug + job_title + date_posted after download.

Pricing

A 3,000-record dataset is about 180;20,000recordsabout180; 20,000 records about 490; 150,000 about $1,340. The quote is shown before you pay and never exceeded. Failed exports are refunded automatically.

Example

Python
Looking only for which jobs expired since a date so you can prune your own copy? That is the free, slug-only Expired Jobs feed, which is unchanged.