Canada Job Bank Scraper: Jobs, LMIA, NOC Codes & Salary Monitor
Pricing
from $0.67 / 1,000 job leads
Canada Job Bank Scraper: Jobs, LMIA, NOC Codes & Salary Monitor
Canada Job Bank scraper for jobbank.gc.ca. Search by keyword, city, province, NOC code or salary band, filter LMIA, direct apply, remote and contract roles, and get clean job rows with employer, wage and apply route. Schedule it to receive only new, updated and expired postings.
Pricing
from $0.67 / 1,000 job leads
Rating
5.0
(2)
Developer
GetAScraper
Maintained by CommunityActor stats
0
Bookmarked
182
Total users
44
Monthly active users
12 days ago
Last modified
Categories
Security
Limited permissionsShare
π¨π¦ Canada Job Bank Scraper: Jobs, LMIA, NOC Codes & Salary Monitor
|
Turn public Canadian job listings into an organised hiring feed. Collect current Job Bank postings with salary, employer, NOC, LMIA, location, and genuine application details. Schedule it to receive only meaningful hiring changes. |
|
π― Find the right roles Search by keyword, city, province, NOC, salary band, date, and work arrangement. |
π Focus on LMIA Separate requested and approved LMIA postings when Job Bank publishes that status. |
π Watch for change Save new, updated, and expired postings while leaving unchanged jobs out of the feed. |
β
Keep data genuine Empty source fields stay empty. This Actor never invents employer contacts or job details. |
π What does this Actor do?
Canada Job Bank Scraper collects public Canadian jobs from jobbank.gc.ca into a structured, ready-to-use feed. It is built for job boards, recruitment operations, immigration services, and labour-market teams that need current roles without repeatedly sorting through the same listings.
Each record keeps the source's job title, employer, location, salary, NOC classification, published application route, and other details Job Bank makes available. Give it a keyword and city, provide an existing Job Bank search, or check a specific posting.
β¨ Why teams choose it
- Keep a Canadian jobs feed current with stable job IDs and clear source links.
- Filter precisely by province, NOC code, date, LMIA status, salary and wage bands, terms of employment, work schedule, workplace type, language, direct employers, international candidates, and source.
- Run several keywords in one go, and keep keyword searches strictly on topic even when sorted newest first.
- Preserve the real application route, including an email only when the posting explicitly publishes one.
- Optionally add a contact email for each employer, taken from the company's own public website, to build outreach lists next to the job data.
- Schedule a watchlist and receive only new, updated, or expired jobs in change-only mode.
- Review Job Bank and partner-board jobs separately, instead of mixing them without a source label.
π§ How it works
|
STEP 1 Pick your search Enter a keyword and Canadian location, or paste Job Bank links. |
STEP 2 Add your filters Narrow by province, NOC code, LMIA status and salary, then set a job cap. |
STEP 3 Export or monitor Run once for an export, or schedule change-only updates. |
- Choose a keyword and optional Canadian location, or paste public Job Bank search and posting links.
- Add the filters that matter to your audience, then set the maximum number of unique jobs to collect.
- Run once for a current export, or schedule the same search with change-only monitoring for a focused update feed.
βοΈ Input
| Field | Type | Required | Description |
|---|---|---|---|
searchKeyword, keywords, location | Text and list | No | Create keyword searches with an optional Canadian city or town. Add several keywords to run each as its own search. |
searches | List of search objects | No | Run several keyword and city searches together. |
startUrls | List of URLs | No | Use public Job Bank search pages or individual posting pages you already know. |
provinces, nocCodes, datePosted | Lists and selection | No | Narrow the source search by territory, five-digit NOC 2021 code, and posting age. |
annualSalaryRanges, hourlySalaryRanges | Lists | No | Keep postings in Job Bank's yearly salary bands or hourly wage bands. |
employmentTerms, employmentSchedules | Lists | No | Keep permanent, contract, seasonal, or casual roles, and full-time or part-time work. |
lmiaStatus, onlyLmiaRequested | Selection and toggle | No | Return any job, LMIA requested jobs, approved jobs, or both LMIA categories. |
excludeStudent, excludeApprentice, excludePlacementAgencies | Toggles | No | Leave out student jobs, apprentice jobs, or postings from placement agencies. |
internationalCandidatesOnly, directApplyOnly | Toggles | No | Keep employers open to international candidates, or postings that accept Job Bank Direct Apply. |
sourceType, workplaceTypes, languages | Selections and lists | No | Choose Job Bank or external-board postings, workplace arrangement, and source-published language requirements. |
enrichEmails | Toggle | No | Optional. Finds a contact email on each employer's own public website and adds it to the job row. Off by default. |
sortBy, maxItems | Selection and number | No | Choose best match or newest first, then cap the total number of unique jobs. |
monitoringMode, stateName, resetState | Selection, text, and toggle | No | Create an independent saved watchlist and decide whether to return only changes or all current jobs. |
proxyConfiguration | Connection setting | No | Uses the prefilled Apify Proxy setting unless you provide another valid configuration. |
π¦ Data you receive
Fields are created only from details that Job Bank or the linked partner posting publishes. Missing information remains empty rather than being replaced with placeholders.
| Field | Type | Description |
|---|---|---|
stable_id, job_id, source_job_id | Text | Stable identifiers for deduplication and monitoring. |
source, source_name, url | Text and link | Whether the role is on Job Bank or an external board, plus its original posting link. |
title, original_title, employer | Text | The published role and employer details. |
location, city, province, postal_code | Text | Published Canadian location information. |
description, description_html | Text | Job description in readable and source-markup forms when available. |
noc_code, noc_title, lmia_status | Text | NOC classification and published LMIA status. |
date_posted, expiry_date, valid_through | Date | Job posting and validity dates when the source provides them. |
salary, salary_min, salary_max, salary_currency, salary_unit | Text and number | Published compensation details. |
employment_type, hours, hours_per_week, vacancies | Text and number | Published work arrangement, hours, and vacancy count. |
workplace_type, languages, education, experience | Text and list | Workplace, language, education, and experience requirements. |
tasks, skills, benefits, credentials | Lists | Responsibilities, skills, benefits, and credentials from the listing. |
application_url, application_method, application_email, apply_instructions | Link and text | The published application route. Email is included only when explicitly listed. |
employer_email, employer_email_kind, employer_email_domain, employer_email_source, employer_email_source_url, email_enrichment_status | Text | Only with enrichEmails. The email, whether it is a company mailbox (generic) or looks like a person (named), where it was found, and the lookup result (found, not_found, failed, skipped). Fields are left out when no email is found. |
change_type, changed_fields, first_seen_at, last_seen_at, expired_at | Text and date | Change-only monitoring context for new, updated, and expired jobs. |
π Change-only monitoring
The first run with new_and_updated establishes a baseline and labels current records as NEW. Later runs save only NEW, UPDATED, and verified EXPIRED records. Unchanged jobs are kept in the saved watchlist state but are not written to the dataset in this mode.
Use the same stateName and the same search scope for every scheduled run. A failed or capped run does not advance expiry checks, helping prevent false expired signals.
π° Pricing
This Actor uses pay-per-result pricing. You pay for records saved to the dataset, with the current event rates shown on the Apify Store page. In change-only monitoring, unchanged jobs are not saved as results. Optional employer email discovery is a separate charge, billed only on jobs where an email is actually found; an email already listed in the posting is never billed. There is no separate subscription required to get started. Free Apify plans can collect up to 100 jobs per run and 10 runs per day; paid plans have no such limit.
β Enjoying Canada Job Bank Scraper?
|
β β β β β Source live Canadian job postings with salary, employer, and LMIA sponsorship status for immigration-ready leads. A 5-star rating takes 10 seconds and helps other immigration consultants and recruiters find it. Your feedback also tells us what to build next. |
| β Β Β Rate this Actor on Apify |
β Frequently asked questions
Can I track a single city or occupation?
Yes. Use the keyword and Canadian city fields, or create several city and keyword searches in one run. You can also target a province or NOC code.
What does the LMIA filter include?
Choose LMIA requested, LMIA approved, or both. The Actor keeps the source-published status on each result so you can keep those groups separate after collection.
How do recurring updates work?
Schedule the Actor with new_and_updated, retain the same state name and search scope, and use the resulting change feed in your workflow. A first monitoring run establishes the starting point; later successful runs save meaningful changes.
How does employer email discovery work?
Turn on enrichEmails. For each employer, the Actor uses the apply email from the posting when there is one. Otherwise it reads the employer website linked in the posting, or finds the company's own website and confirms it matches the employer, then reads its contact pages. Only addresses the company itself publishes are returned, for example info@ or careers@. A few small businesses publish a personal-looking address on their site; those are labelled named. It is best effort: in our test about 4 in 10 jobs got an email, and some employers publish none. Lookups run once per employer, so several jobs from the same company share one result.
Why is an employer contact or salary empty?
Some listings do not publish every detail. Empty fields indicate the source did not make that information available. The Actor does not create generic contacts, salaries, or job attributes.