Skip to main content
GET

Overview

The Expired Jobs feed lists jobs that have been removed from company career pages since a given date, so you can remove them from your own copy of Hirebase data. It is built for hourly or daily syncs and covers the last 14 days. It returns identifiers only. For past postings and older data, use the Historical Jobs endpoints.

Authentication

This endpoint requires an API key for all requests, including page 1. See Authentication to get one.
Metering: each request costs 0. Expired data is not billed; only live job data counts against your Jobs API allowance (m_jobs_api_calls).
string
required
Your Hirebase API key

Query Parameters

string
required
Starting date or datetime to list expired jobs from, as ISO 8601 (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ; naive values are treated as UTC). Must be within the last 14 days: on or after midnight UTC 14 days ago. Older values return 400.
integer
default:"1"
Page number for pagination (min: 1). Walk pages in order — see Pagination.
integer
default:"100"
Number of results per page (min: 1, max: 1000)

Response

array
List of expired job objects
integer
Total number of expired jobs matching the query across all pages
integer
Current page number in the response
integer
Number of results returned per page
integer
Total number of pages available for the query (ceil(total_count / limit))

Use Cases

Data Cleanup

Identify and remove stale job postings from your database

Database Synchronization

Keep your local job database in sync with Hirebase, hourly or daily
For job lifecycle or market analysis over longer periods, use Historical Jobs.

Pagination

Use the page and limit parameters to paginate through large result sets:
Calculate total pages: use the total_pages field in the response, or ceil(total_count / limit).

Walk pages in order

Request pages in order with the same since and limit. Each page picks up where the previous one ended, as long as you request it within 15 minutes, so a sequential walk stays fast at any depth. Jumping straight to a deep page is not supported: if (page - 1) × limit is over 200,000 and you did not just fetch the page before it, the request returns 400. Start again from page 1, or use Export Expired Jobs.
Recommended usage — incremental sync: poll daily with since=<yesterday> (or hourly with a datetime). A one-day window is typically ~150k records (~150 pages at limit=1000). To catch up after missed syncs, or to get a whole window as one file, use Export Expired Jobs. Both are limited to the last 14 days; if your sync has been down longer than that, re-export live jobs and remove any you hold that are no longer in it.

Important Notes

The since parameter is required and must be a valid date within the last 14 days
  • Jobs are considered expired when they are no longer available on the company’s career page
  • The date_expired field represents when Hirebase detected the job was no longer active (not necessarily when the company removed it)
  • Results are sorted by date_expired descending (most recent first), then job_slug descending
  • Maximum limit per request is 1000 jobs
  • since can be at most 14 days ago. There is no end-date parameter; unsupported query params such as until are ignored

Error Responses

Unprocessable Entity
Missing required since query parameter:
Bad Request
since cannot be parsed as a date, is older than 14 days, or the page is too deep to jump to directly (see Walk pages in order). The detail message says which:
Unauthorized
Invalid or missing API key
Not Found
Invalid endpoint path
Too Many Requests
Rate limit exceeded
Internal Server Error
Unexpected server error. Back off and retry.