Job Bank Canada Scraper (jobbank.gc.ca)
Pricing
from $3.00 / 1,000 serp results
Job Bank Canada Scraper (jobbank.gc.ca)
Extract Canadian job postings from jobbank.gc.ca, the Government of Canada's official job board. Returns title, employer, city and province, salary in CAD, NOC 2021 classification, job language (English / French / Bilingual), education, experience, vacancy count and hours. Pay-per-result.
Pricing
from $3.00 / 1,000 serp results
Rating
0.0
(0)
Developer
NanoScrape
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Extract Canadian job postings from Job Bank, the Government of Canada's official job board. Every posting is verified by Employment and Social Development Canada. No login. No captcha. Pay-per-result.
What it does
Scrapes live vacancies from jobbank.gc.ca and returns clean, structured JSON. Coverage includes every province and territory, every NOC 2021 occupation, and all employment types (permanent, temporary, casual, seasonal, apprenticeship). Trades, healthcare, tech, finance, education, hospitality, agriculture, transport, government roles.
Works with:
- Search keywords, e.g.
"nurse","welder","developer","accountant". - Any search URL copy-pasted from the site (all filters preserved).
- Location or city + province filter.
- Province and employment-type filters.
Sample output
{"_type": "job","id": "50121324","job_bank_id": "50121324","title": "Health Care Aide","employer_name": "Surf Lodge Nursing Home","location": "Souris, PE, C0A 2B0","city": "Souris","province": "PE","postal_code": "C0A 2B0","country": "CA","salary_min": 20.50,"salary_max": 23.00,"salary_currency": "CAD","salary_period": "hourly","salary_text": "$20.50 to $23.00 hourly","wage_rate_type": "hourly","hours_per_week": 37.5,"employment_type": "Permanent employment, Full time","workplace_type": null,"employment_conditions": ["Day", "Evening", "Night", "Weekend"],"vacancy_count": 3,"noc_code": "33102","noc_title": "Nurse aides, orderlies and patient service associates","education_required": "No degree, certificate or diploma","experience_required_text": "Will train","experience_required_years": null,"job_language": "English","work_permits_accepted": null,"description": "Education: No degree, certificate or diploma. Work setting: Nursing home/home for the aged. Tasks: Assist in daily living activities...","description_full": "Education\nNo degree, certificate or diploma\n\nWork setting\nNursing home/home for the aged\n\nTasks\n- Assist in daily living activities\n- Take patients' blood pressure, temperature and pulse\n- Make beds and maintain patient rooms","description_html": "<ul><li>Assist in daily living activities</li><li>Take patients' blood pressure, temperature and pulse</li><li>Make beds and maintain patient rooms</li></ul>","description_md": "- Assist in daily living activities\n- Take patients' blood pressure, temperature and pulse\n- Make beds and maintain patient rooms","responsibilities": null,"job_benefits": "Health care plan","skills": null,"posted_at_text": "August 20, 2026","posted_at_datetime": "2026-08-20T00:00:00Z","closing_at": "2026-09-19","job_url": "https://www.jobbank.gc.ca/jobsearch/jobposting/50121324","application_url": "https://www.jobbank.gc.ca/jobsearch/jobposting/50121324","apply_url": "https://macleodcares.com/careers/","company_profile_url": "https://www.jobbank.gc.ca/jobsearch/empprofile/50121324","source_platform": "jobbank.gc.ca","search_query": "health care aide in Prince Edward Island","scraped_at": "2026-08-22T10:14:33Z","company_about": null,"company_phone": null,"company_email": null,"company_website": "http://macleodcares.com","company_address_street": null,"company_address_city": "Souris","company_address_province": "PE","company_address_postcode": "C0A 2B0","company_address_country": "Canada","company_business_type": null,"company_business_size": "Small-sized business","company_size_range": "Small-sized business (between 1 and 4 employees)","company_industry_naics": null,"company_industry": "Health care and social assistance","company_profile_modified_at": "2026-07-09","company_locations_count": 1,"company_logo_url": null,"company_active_jobs_count": 2,"company_active_jobs": [{"title": "Health Care Aide","job_url": "https://www.jobbank.gc.ca/jobsearch/jobposting/50121324","location": "Souris, PE","salary_text": "$20.50 to $23.00 hourly"}],"company_workplace_amenities": ["Accessible parking", "Variable work hours available"],"company_support_groups": ["Supports newcomers and/or refugees with foreign credential recognition"],"company_learning_opportunities": ["On-the-job training"],"company_green_initiatives": ["Training for employees on environmental sustainability"]}
Pricing
$0.001 per actor start + $0.005 per full-detail row (or $0.003 per SERP-only row) + optional $0.005 per unique employer profile enriched. About $5 per 1,000 jobs in full mode.
You only pay for rows that successfully return data. Failed fetches are not charged.
New to Apify? Every account gets a $5 free monthly platform credit, enough for around 1,000 full-mode results on this actor before you commit to paying anything. Test extensively first.
Input
| Field | Type | Description |
|---|---|---|
searchQueries | array | Keywords like "nurse", "welder", "developer". Each runs as a separate search. |
startUrls | array | Paste search URLs from the site directly. All filters preserved. |
location | string | City or region, e.g. "Toronto", "Vancouver, BC". Applied to keyword searches. |
province | select | Two-letter province code, applied when the location does not already include one. |
employmentType | select | Permanent, Temporary, Casual or Seasonal. |
includeJobDetails | boolean | Fetch each posting for full description, NOC code, salary, hours, education, language, and detail-only fields. |
includeCompanyDetails | boolean | Fetch each unique employer profile for business size, other open roles, and any contact fields. Implies includeJobDetails=true. |
maxResults | integer | Total row cap across all queries. |
maxResultsPerQuery | integer | Row cap per query. |
maxConcurrency | integer | Concurrent detail-page requests. Default 6. |
Output fields
Identity: id, job_bank_id, title, job_url, source_platform, _type.
Employer + location: employer_name, location, city, province, postal_code, country.
Salary in CAD: salary_min, salary_max, salary_currency, salary_period, salary_text, wage_rate_type, hours_per_week.
Employment: employment_type (compound string, e.g. "Permanent employment, Full time"), workplace_type, employment_conditions, vacancy_count.
Canadian taxonomy: noc_code (NOC 2021), noc_title.
Requirements: education_required, experience_required_text, experience_required_years, job_language (English / French / Bilingual), work_permits_accepted.
Content (full mode): description (single-line normalised), description_full (paragraph-and-bullet plain text), description_html (raw HTML), description_md (Markdown with headings, bullets, bold, links), responsibilities, job_benefits, skills.
Dates + apply: posted_at_text, posted_at_datetime (ISO 8601), closing_at, application_url, apply_url, company_profile_url.
Employer profile (includeCompanyDetails=true): company_business_type, company_business_size, company_size_range (size label + employee count range), company_industry_naics, company_industry (sector label), company_profile_modified_at (ISO date), company_locations_count, company_logo_url, company_about, company_phone, company_email, company_website, company_address_*, company_active_jobs_count, company_active_jobs[], company_workplace_amenities[], company_support_groups[], company_learning_opportunities[], company_green_initiatives[].
Use with AI Agents (MCP)
Connect this actor to any MCP-compatible AI client: Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or custom agents.
Apify MCP server URL:
https://mcp.apify.com?tools=nanoscrape/jobbank-ca-scraper
Example prompt once connected:
"Use
jobbank-ca-scraperto find all bilingual French / English nursing vacancies in Quebec paying more than $40 per hour. Return as a table with employer, city, wage, closing date."
Clients that support dynamic tool discovery (Claude.ai, VS Code) receive the full input schema automatically.
Why this scraper
- Official Government of Canada source. Every posting is verified by ESDC; no scraped-off-Craigslist noise.
- NOC 2021 codes surfaced. The unique Canadian occupation taxonomy is exposed as a native field, so filtering, joining, and analytics against StatsCan wage data works out of the box.
- Bilingual metadata.
job_languagedistinguishes English, French, and true bilingual roles, which is critical for the Canadian labour market. - CA-specific fields.
vacancy_count,hours_per_week,education_required,experience_required_years,wage_rate_typeand Canadian postal codes come as structured fields, not free text. - No login. No captcha. Job Bank is a public government service.
Common use cases
- Immigration consultants surfacing LMIA-eligible postings by NOC code.
- Recruitment agencies aggregating Canadian jobs into their candidate CRM.
- Provincial labour-market analysts tracking demand by NOC and region.
- Bilingual staffing firms filtering the French-language postings in Quebec, Ontario and New Brunswick.
- Compensation-benchmark teams building CAD wage ranges by occupation and city.
Notes and limits
- Salary is emitted with
salary_periodset to one ofhourly,weekly,monthly,annualorpiece-work; do not comparesalary_minvalues across periods without normalising. application_urlis Job Bank's own posting URL when the employer only accepts applications through the government-hosted apply flow. When the listing includes an external career-portal link ("Learn more about this job" button), that URL is in the separateapply_urlfield.apply_urlisnullfor listings without an external link.company_profile_urlis the employer's Job Bank profile page. Some listings do not have a linked employer profile — when absent,company_profile_urlisnulland all empprofile-derived fields (company_about,company_size_range,company_industry,company_profile_modified_at,company_industry_naics,company_logo_url,company_workplace_amenities,company_support_groups,company_learning_opportunities,company_green_initiatives) are alsonullor empty arrays. These fields only populate whenincludeCompanyDetails=trueAND the job listing has a linked/jobsearch/empprofile/{id}page.company_websiteis extracted from the employer anchor on the job detail page (when the employer name links out to an external site). It may also be populated from the employer profile page. Both sources are checked; the detail-page anchor takes priority. When neither source provides a URL,company_websiteisnull.company_*fields are only populated whenincludeCompanyDetailsis enabled. Job Bank employer profiles vary widely in completeness.company_business_size,company_locations_count, andcompany_active_jobs_countpopulate on most profiles;company_website,company_email, andcompany_phoneare less common.description_mdis real Markdown: headings become#/##, bullet lists become-items, bold/italic tags are preserved as**/*, and hyperlinks become[text](url).job_languageis inferred from the posting's Languages field. Postings that say only "English" or only "French" are labelled as such; postings that mention both are labelledBilingual (English + French).- The site currently lists 100,000+ live postings. Practical per-query maximum is a few thousand rows due to the site's own pagination cap.
Related Actors
- LinkedIn Jobs Scraper: private-sector job board covering Canada plus every other country.
- Indeed Scraper: global aggregator including Canadian postings.
- Website Email Scraper: follow-up enrichment to extract employer emails from the company website field.
Support
For issues, feature requests, or field gaps, please open an issue on the Issues tab. We typically respond within 24 hours.
Contact: contact@nanoscrape.com