A job listings API for the US and Canada.
What a job listings API is, what a good one returns, and how to search and sync job postings from employer career sites in the US and Canada.
Updated
The short answer
A job listings API is a web address your code calls to get job postings as data, usually JSON. The Jobs API returns jobs collected from employer career sites and hiring systems in the US and Canada, with the title, employer, places, full description, posting date and apply link. You can search with /v1/jobs and keep a copy in sync with the new, changed and expired job feeds.
What is a job listings API?
It is a way to ask a computer for job postings instead of reading job sites by hand. You send a request, like “nurse jobs in Ontario,” and get a list of jobs back as data.
People also call it a job listing API or a job postings API. They all mean the same thing. What changes from one provider to the next is where the jobs come from, how fresh they are and how much of each job you get.
What does each job include?
- Title and employer name.
- Every location the employer listed, plus remote when the employer says so.
- The full description, as text or HTML.
- The date the job was posted, and the date we first collected it.
- The link to the original job page and the link to apply.
- Pay and job type when the employer states them.
- The hiring system it came from, such as Workday or Greenhouse.
Where do the jobs come from?
We read the public career sites employers run, and the hiring systems (ATS) behind them. That is where a job is first posted and where it closes first.
We do not copy jobs from LinkedIn or Indeed. Each job links back to the employer’s own page.
Which filters can I use?
| Filter | What it does |
|---|---|
| q | Search title, employer and description. Supports "exact phrase", OR, -exclude and prefix*. |
| title | The same search, on the job title only. |
| province / state | Canadian province codes (ON,BC) or US state codes, comma separated. |
| city | One city, ideally with its province or state, like Toronto, ON. |
| remote | true for remote jobs only, false to leave them out. |
| has_salary | true for jobs with an employer-stated salary. |
| employment_type | FULL_TIME, PART_TIME, CONTRACTOR, TEMPORARY, INTERN, VOLUNTEER, PER_DIEM. |
| source | Hiring systems, like workday,greenhouse. |
| window | Jobs first seen in the last 1h, 24h, 7d, 30d or 6m. |
| country | CA (default) or US. |
Try it: search job listings
This request returns full-time accounting jobs in Calgary that show pay, with the description as text:
curl "https://api.thejobsapi.com/v1/jobs?country=CA&city=Calgary,%20AB&title=accountant&employment_type=FULL_TIME&has_salary=true&description=text" \
-H "Authorization: Bearer YOUR_API_KEY"Results come newest first, up to 1,000 per page. Pass next_cursor back to get the next page.
Search or sync: which do you need?
Search when your users type a query and you show results right away. Use /v1/jobs.
Sync when you keep your own copy, for a job board or a search index. Pull new jobs with /v1/active-ats, then remove closed ones with /v1/expired-ats, or follow every change in order with /v1/changes.
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. Paid plans have no job or request limit. 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
What is the difference between a job listings API and a job board?
A job board is a website people read. A job listings API gives the same kind of jobs to your code, so you can build your own board, app or report.
Is a job postings API the same as a jobs API?
Yes. Job listings API, job postings API and jobs API are names for the same thing.
Do I get the full job description?
Yes. Ask for description=text, html or both on /v1/jobs. You get the whole description, not a snippet.
Can I search jobs in the United States?
Yes. The United States is the default: use state instead of province, or leave out country=CA.
How do I know when a job closes?
Use /v1/expired-ats or the changes feed. A job closes after it is missing from two complete scans of the employer’s board at least two hours apart.
Are the jobs from LinkedIn or Indeed?
No. We collect them from employer career sites and their hiring systems.
Is there a free trial?
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.