Job Opportunity Index

Recommended strategy

Backfill once

Page through every open posting with a cursor (ordered by id, stable while new postings arrive):

GET /api/v1/active-jobs?time_frame=6m&limit=1000&cursor=1
GET /api/v1/active-jobs?time_frame=6m&limit=1000&cursor=<last id of the previous page>

Stop when a page comes back empty. Add description_format=text if you store descriptions.

Stay current

  • Hourly: active-jobs?time_frame=1h, or daily at the same hour: time_frame=24h.
  • Daily: modified-jobs (apply modified_fields to your copy) and expired-jobs?time_frame=1d (remove those ids).

After an outage

  • active-jobs?time_frame=6m&date_created_gte=<your last successful sync> fetches everything indexed since.
  • expired-jobs?time_frame=1m removes everything that closed in the last 31 days.

Size it first

active-jobs-count?time_frame=1m&…your filters… tells you how many postings your filters match per month.