Skip to content

Explore 10,000 US and Canadian job postings.

Download a dated sample from employer career sites, inspect the original posting links, or try an importer before connecting to the live API.

Updated

The short answer

The sample contains 9,000 US and 1,000 Canadian source records from November 5, 2026 at 03:06:09 UTC. It is free to download without an API key. To check whether a job is open today, follow its employer link.

Put this guide to work

  • Download all 10,000 records (JSONL)

    One JSON object per line, 4.6 MB. Includes titles, employers, locations, source URLs and observation times.

  • Download the Python notebook

    Open in Jupyter or upload to Google Colab. Run the cells to filter by country and title, inspect employer links and export your selection as CSV.

Where can I preview the sample?

Try the explorer to filter by country and search titles or employers. Select a posting to open its original employer link. The snapshot covers six hiring systems. The country split was chosen in advance and cannot be used to estimate hiring demand. Source records can overlap across postings.

How may I reuse the sample?

The Jobs API licenses its compilation, selection and documentation under CC BY 4.0. Attribute The Jobs API, link the dated dataset and indicate any changes. Employer marks and the pages linked from each record have separate rights.

What is a jobs dataset?

A jobs dataset is a table of job postings: one row per job, with columns like title, employer, place, pay and date. People use it for research, dashboards, machine learning and AI products.

A file goes stale fast. Jobs open and close every day. So the useful question is not only how to get the data once, but how to keep it current.

How do I load the current country feed?

  1. Send GET /v1/jobs?country=CA&limit=1000 with your API key. Use country=US for the US feed.
  2. Store the returned records by ID. On each subsequent request, pass next_cursor back as cursor and keep the same country filter.
  3. Continue until next_cursor is null, including after a short page. Use the changes feed to maintain your copy.

How do I keep it fresh?

  • New jobs: call /v1/active-ats with time_frame=1h each hour, or 24h each day. Windows end on the hour, so you never skip or repeat a job.
  • Changed jobs: /v1/modified-ats returns jobs whose content changed in a time range.
  • Closed jobs: /v1/expired-ats returns the ids of jobs that left the feed. Delete them from your copy.
  • Or use one stream: /v1/changes lists every created, updated, expired and excluded job in order, seconds behind collection.

How do I download job postings as CSV?

The job feeds return JSON, because jobs have lists inside them (several places, several job types). You can flatten them into CSV with jq:

Turn one page of new jobs into CSV
curl -s "https://api.thejobsapi.com/v1/active-ats?time_frame=24h&limit=1000" \
  -H "Authorization: Bearer YOUR_API_KEY" \
| jq -r '(["id","title","organization","date_posted","url"]), (.[] | [.id, .title, .organization, .date_posted, .url]) | @csv' > jobs.csv

Add the columns you need. Our job fields page lists every field and what it holds.

The employer list is the one feed that comes as CSV directly: /v1/ats-organizations?format=csv. On the free trial it is a sample.

What does the live API add to the sample?

The title, employer, every location with city, province or state and country, the full description in text or HTML, the posting date, the date we first collected it, the job and apply links, the hiring system, and pay and job type when the employer states them. Add include_source_fields=true for the employer’s own extra fields, like department, with the path where each was found.

Where does the data come from?

From employer career sites and the hiring systems behind them, in the US and Canada. Not from LinkedIn or Indeed. Missing facts stay empty; we do not fill them with guesses.

What does it cost?

The US is $900 USD a month, Canada is $200 USD a month, and both are $1,100 USD a month, with no job or request limit. That covers a full backfill and every update after it. The free trial lasts 14 days and includes 100,000 jobs from the US and Canada, with no request limit. You do not need a card.

Questions people ask

Can I download all job postings in one file?

The dated 10,000-record sample is available as one JSONL file. To download the current country feed, page through the API and save the records by ID.

Is there a free job postings dataset?

Yes. Download the free November 5 sample above or explore it on Hugging Face. For current data, the API trial includes up to 100,000 jobs over 14 days.

How do I get job postings as CSV?

Pull the JSON feed and flatten it with a tool like jq, pandas or a spreadsheet import. The employer list also comes as CSV directly.

How far back does the data go?

The feeds hold active jobs. The 6m window covers jobs first collected in the last 183 days that are still open. Closed jobs leave the feed.

How often should I update my copy?

Hourly or daily works for most uses. For the freshest copy, follow the changes feed every few minutes.

Does the trial include the US?

Yes. The trial covers the US and Canada.

Sources and further reading

Tell us what you need.

A few details help us understand your project.

API access and coverage