Search Job Bank Canada jobs
Job postings on Job Bank (the Government of Canada job board) for keywords, with every filter the site offers: province, posting age, full or part time, employment term, language, annual or hourly salary band, source (posted on Job Bank or by governments) and occupation (NOC), sorted by relevance or date. Each result has the title, employer, location, salary with min, max and period, source, job number, work location and apply method. facets gives every filter value with counts. 25 per page; pass next_page back as page.
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
q | string | Keywords (title, skill or employer). Example: cook |
province | string | Province codes, comma separated (AB, BC, MB, NB, NL, NT, NS, NU, ON, PE, QC, SK, YT). Example: ON |
posted | 2 | 30 | Posting age. |
job_type | string | F full time, P part time; comma separated. |
term | string | P permanent, T term or contract, S seasonal, C casual; comma separated. |
language | string | E English, F French, B both; comma separated. |
salary_annual | string | Annual salary bands A-E, comma separated (A $100k+, B 80-100k, C 60-80k, D 40-60k, E 20-40k). |
salary_hourly | string | Hourly salary bands A-E, comma separated (A $50+, B 40-50, C 30-40, D 20-30, E under 20). |
source | string | 16 posted on Job Bank, 3 federal government, 4 provincial governments, 5 municipal governments; comma separated. |
occupation | string | 5-digit NOC occupation codes, comma separated (facets.occupation). |
sort | relevance | date | Order. |
page | integer | Page number (from 1). |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/jobbank/v1/search?q=cook" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/jobbank/v1/search",
params={"q": "cook"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/jobbank/v1/search");
url.searchParams.set("q", "cook");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).