Canada Job Bank Scraper: Jobs, LMIA, NOC Codes & Salary Monitor avatar

Canada Job Bank Scraper: Jobs, LMIA, NOC Codes & Salary Monitor

Pricing

from $0.67 / 1,000 job leads

Go to Apify Store
Canada Job Bank Scraper: Jobs, LMIA, NOC Codes & Salary Monitor

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

GetAScraper

Maintained by Community

Actor stats

0

Bookmarked

182

Total users

44

Monthly active users

12 days ago

Last modified

Security

Limited permissions

Share

πŸ‡¨πŸ‡¦ 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.
  1. Choose a keyword and optional Canadian location, or paste public Job Bank search and posting links.
  2. Add the filters that matter to your audience, then set the maximum number of unique jobs to collect.
  3. Run once for a current export, or schedule the same search with change-only monitoring for a focused update feed.

βš™οΈ Input

FieldTypeRequiredDescription
searchKeyword, keywords, locationText and listNoCreate keyword searches with an optional Canadian city or town. Add several keywords to run each as its own search.
searchesList of search objectsNoRun several keyword and city searches together.
startUrlsList of URLsNoUse public Job Bank search pages or individual posting pages you already know.
provinces, nocCodes, datePostedLists and selectionNoNarrow the source search by territory, five-digit NOC 2021 code, and posting age.
annualSalaryRanges, hourlySalaryRangesListsNoKeep postings in Job Bank's yearly salary bands or hourly wage bands.
employmentTerms, employmentSchedulesListsNoKeep permanent, contract, seasonal, or casual roles, and full-time or part-time work.
lmiaStatus, onlyLmiaRequestedSelection and toggleNoReturn any job, LMIA requested jobs, approved jobs, or both LMIA categories.
excludeStudent, excludeApprentice, excludePlacementAgenciesTogglesNoLeave out student jobs, apprentice jobs, or postings from placement agencies.
internationalCandidatesOnly, directApplyOnlyTogglesNoKeep employers open to international candidates, or postings that accept Job Bank Direct Apply.
sourceType, workplaceTypes, languagesSelections and listsNoChoose Job Bank or external-board postings, workplace arrangement, and source-published language requirements.
enrichEmailsToggleNoOptional. Finds a contact email on each employer's own public website and adds it to the job row. Off by default.
sortBy, maxItemsSelection and numberNoChoose best match or newest first, then cap the total number of unique jobs.
monitoringMode, stateName, resetStateSelection, text, and toggleNoCreate an independent saved watchlist and decide whether to return only changes or all current jobs.
proxyConfigurationConnection settingNoUses 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.

FieldTypeDescription
stable_id, job_id, source_job_idTextStable identifiers for deduplication and monitoring.
source, source_name, urlText and linkWhether the role is on Job Bank or an external board, plus its original posting link.
title, original_title, employerTextThe published role and employer details.
location, city, province, postal_codeTextPublished Canadian location information.
description, description_htmlTextJob description in readable and source-markup forms when available.
noc_code, noc_title, lmia_statusTextNOC classification and published LMIA status.
date_posted, expiry_date, valid_throughDateJob posting and validity dates when the source provides them.
salary, salary_min, salary_max, salary_currency, salary_unitText and numberPublished compensation details.
employment_type, hours, hours_per_week, vacanciesText and numberPublished work arrangement, hours, and vacancy count.
workplace_type, languages, education, experienceText and listWorkplace, language, education, and experience requirements.
tasks, skills, benefits, credentialsListsResponsibilities, skills, benefits, and credentials from the listing.
application_url, application_method, application_email, apply_instructionsLink and textThe 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_statusTextOnly 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_atText and dateChange-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.

πŸ”— Other actors