Job Bank Canada Scraper
Pricing
from $0.25 / 1,000 jobs
Job Bank Canada Scraper
Jobs from Job Bank, the Government of Canada's job board, with the wage as numbers, hours per week, vacancies, education, experience and the workplace address. Search by keyword and province, filter by date, terms and language, and flag jobs open to international candidates.
Pricing
from $0.25 / 1,000 jobs
Rating
0.0
(0)
Developer
deriverge s.r.o.
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
Job Bank Canada Scraper returns jobs from Job Bank (jobbank.gc.ca), the Government of Canada's job board, one row per job: title, employer, city and province, the wage as numbers with its period, and from the job page the workplace address, hours per week, vacancies, employment terms, education, experience, language of work and whether international candidates may apply. Type a keyword such as cook, pick provinces and click Start. Job Bank asks automated visitors to wait 5 seconds between pages, so with full details a job takes about 5 seconds. It costs $0.50 per 1,000 jobs on the Free plan ($0.25 on Business), and the $5 of monthly credit in Apify's Free plan covers about 10,000 jobs.
What data does it return?
| Field | Description |
|---|---|
jobId, jobNumber, url | Job Bank's posting ID, the job number shown on the posting after #, and the job page. |
title, employer | Job title and hiring employer as posted, such as cook at MR MIKES Steakhouse Casual. |
location, city, province, provinceName | Place as Job Bank shows it (Olds (AB)), the city, the two-letter code and the full name of the province or territory. |
street, postalCode | Workplace address, when the employer gives one. |
workLocation | On site, Hybrid, Remote or On the road. Partner job boards usually leave it empty. |
salaryText | Wage exactly as posted, such as $18.50 hourly. |
salaryMin, salaryMax, salaryPeriod, salaryCurrency | The wage as numbers in CAD and its period: hour, week, month, year or day. A single figure fills both. |
hoursPerWeek | Weekly hours as text, such as 35 or 30 to 40. |
employmentTerms, schedule | Terms such as Permanent employment and Full time, and shifts such as Day, Night or Weekend. |
vacancies | Number of positions the employer wants to fill. |
languages, education, experience | Language of work, required education and required experience, such as 1 year to less than 2 years. |
openToInternationalCandidates | true when the employer also accepts candidates from outside Canada. |
studentJob, apprenticeship, internship, greenJob | Job Bank's flags for these kinds of jobs. |
directApply, postedOnJobBank, source | true when Job Bank offers direct application, true when the employer posted the job on Job Bank itself, and the source, Job Bank or a partner board such as indeed.com. |
postedAt, expiresAt, updatedAt | Date posted, date the ad runs until and date of the last change, as YYYY-MM-DD. |
description | The posting's text: education, work setting, tasks, conditions and support programs. |
isNew, detailsIncluded, searchQuery | Job Bank's "new" mark, true when the job page was read, and the search that found the job. |
key, scrapedAt | The key jobbank:<jobId> used by new-only mode, and when the job was read in UTC. |
Fields that come from the job page (address, hours, vacancies, terms, schedule, languages, education, experience, description and the flags) are null or empty with Include full details off.
How to scrape Job Bank Canada
- Enter Keywords as you would in Job Bank's search box: a job title, occupation or skill such as
truck driverorregistered nurse. Each keyword is a separate search; leave the field empty for every job. - Pick Provinces and territories and, if you need them, Cities such as
Calgary. A city is matched against the job's location, so combine it with its province to keep runs short. - Narrow with Posted (last 2 or 30 days), Employment terms, Language of work, Source and Open to international candidates. Exclude keywords drops jobs whose title or employer contains a word.
- Keep Include full details on for the fields from the job page, or turn it off for a fast list. Set Maximum jobs (100 by default) and click Start.
- The jobs appear in the Output tab, ready for CSV, Excel or JSON export. The
SUMMARYrecord in the key-value store gives the number of matching jobs per search and how many were returned.
From the API:
{"keywords": ["truck driver", "registered nurse"],"provinces": ["ON", "BC"],"postedWithin": "30","source": "jobBank","includeDetails": true,"maxItems": 200}
Example output
A cook job in Alberta from a run on 11 October 2026, with the description shortened after three sentences (marked ...).
{"key": "jobbank:50469130","jobId": "50469130","jobNumber": "3693832","title": "cook","url": "https://www.jobbank.gc.ca/jobsearch/jobposting/50469130","employer": "MR MIKES Steakhouse Casual","location": "Olds (AB)","city": "Olds","province": "AB","provinceName": "Alberta","street": "5509 46 St","postalCode": "T4H 1H5","workLocation": "On site","salaryText": "$18.50 hourly","salaryMin": 18.5,"salaryMax": 18.5,"salaryPeriod": "hour","salaryCurrency": "CAD","hoursPerWeek": "35","employmentTerms": ["Permanent employment","Full time"],"schedule": ["Morning","Day","Evening","Night","Weekend"],"vacancies": 2,"languages": "English","education": "Secondary (high) school graduation certificate","experience": "1 year to less than 2 years","openToInternationalCandidates": false,"studentJob": false,"apprenticeship": false,"internship": false,"greenJob": false,"directApply": true,"postedOnJobBank": true,"source": "Job Bank","isNew": true,"postedAt": "2026-10-10","expiresAt": "2026-10-24","updatedAt": "2026-08-04","description": "Education: Secondary (high) school graduation certificate. Work setting: Restaurant. Tasks: Determine the size of food portions and costs. Prepare and cook complete meals or individual dishes and foods. Prepare dishes for customers with food allergies or intolerances. ...","detailsIncluded": true,"searchQuery": "\"cook\" in AB","scrapedAt": "2026-10-11T15:51:20.741Z"}
How much does it cost to scrape Job Bank?
| Free plan | Starter | Scale | Business | |
|---|---|---|---|---|
| 1,000 jobs | $0.50 | $0.40 | $0.325 | $0.25 |
You pay only for the events in the table. There is no start fee, and compute time and proxies are included.
The 444 jobs posted in British Columbia in the last 2 days cost $0.222 on the Free plan and $0.111 on Business. The price per job is the same with or without full details. Jobs dropped by Cities or Exclude keywords, duplicates across keywords and jobs a watch has already returned are not charged.
Limits
- Job Bank's robots.txt sets a crawl delay of 5 seconds, and every request waits for it. On 11 October 2026, 20 cooks in Alberta with full details took 105 seconds, 40 jobs from two searches took 209 seconds, and the 444 British Columbia jobs of the last 2 days without details took 88 seconds, 25 jobs per page.
- A run stops after 1 hour by default, which with full details is enough for about 650 jobs. For more, raise the timeout in the run options or turn details off.
- Partner boards fill fewer fields. Their jobs have a description and the employment terms, but usually no address, hours, vacancies, education, experience or work location. In British Columbia, 231 of the 444 recent jobs were posted on Job Bank itself; the rest came from boards such as indeed.com and CivicJobs.ca. Pick Only jobs posted on Job Bank under Source when you need every field.
- The NOC occupation code and the LMIA status are not returned, and neither is how to apply: Job Bank shows the contact only behind a button, and the actor does not open it.
- Partner wages are taken from the partner's text and can be wrong at the source, for example
From $18.00 per weekfor a part-time cook. - If Job Bank answers with HTTP 429, the run pauses for 5 minutes, at most twice, and then ends with the jobs it already has. On HTTP 403 or a verification page it stops requesting at once, returns the jobs it has, and says so in the log, the
SUMMARYrecord and the run status.
Daily job alerts
Turn on Return only jobs new since the last run, give a Watch name or save the input as a task, and schedule it once a day with Posted set to In the last 2 days. Each run returns and charges only jobs that no earlier run of that watch returned. Jobs left out because of Maximum jobs stay new for the next run, and the watch remembers a job for 120 days.
FAQ
Is it legal to scrape Job Bank?
Job Bank is a public job board run by Employment and Social Development Canada, and the actor reads the same search and job pages any visitor sees, keeping to the crawl delay in its robots.txt. Rows describe jobs and employers; the actor does not open the application contact and collects no names, emails or phone numbers of people. You are responsible for how you use the data.
Why do some jobs have only a few fields?
They come from partner job boards. Job Bank lists them with a short page, so the address, hours and requirements are missing even with full details on. Set Source to Only jobs posted on Job Bank to leave them out.
How do I get every job in a province?
Leave Keywords empty, pick the province and turn Include full details off. Each page then brings 25 jobs every 5 seconds, so an hour of run time covers about 18,000 jobs; with Posted set to the last 2 days, British Columbia had 444.
Related scrapers
- MyCareersFuture Jobs Scraper
- Arbeitsagentur Jobs Scraper
- Career Site and ATS Jobs API
- SimplyHired Jobs Scraper
Support
This actor is built and maintained by deriverge s.r.o., a software company based in the Czech Republic. If a run fails or a field you need is missing, please open an issue in the Issues tab or write to us at info@deriverge.com. We respond in English and Czech. Runs can be scheduled in Apify Console or started from the API tab, which has examples for Python, JavaScript and cURL and works with Make, Zapier, n8n and the Apify MCP server. If the actor saves you time, a short review helps other people find it.