JobBank Scraper - Canada Federal Jobs Portal
Pricing
Pay per usage
JobBank Scraper - Canada Federal Jobs Portal
Turn Canada's Job Bank listings into structured, ready-to-use job data. Extract titles, salaries, employers, locations, descriptions, and URLs. Save research time and automate job tracking for recruiters, HR agencies, job boards, developers, and labor market analysts.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Shahid Irfan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
What does Job Bank Canada Scraper do?
Job Bank Canada Scraper collects current job postings from Job Bank, the Government of Canada job board. Search by keyword and location, or paste a Job Bank search results URL, and get structured data for job titles, employers, locations, salary details, posting dates and direct job links. Recruiters, job seekers, researchers and data teams use it to get Canadian job market data as a clean dataset instead of copied web pages.
Why use Job Bank Canada Scraper?
- Structured job data - Every posting is saved with a stable field name, so the dataset is ready for spreadsheets, databases or dashboards.
- Search once, collect many - The Actor reads page after page until it reaches your result limit or the end of the results.
- Salary parsing included - Salary text is kept, and numeric minimum, maximum, currency and pay period are separated when Job Bank publishes them.
- URL or keyword input - Paste a Job Bank search URL to keep all of its filters, or type a keyword and location and let the Actor build the search.
- Repeatable monitoring - Schedule daily or weekly runs to track new Canadian job postings for a role, city or province.
- Apify platform features - Use dataset exports, webhooks, schedules, the Apify API and proxy configuration without extra setup.
What data can you extract from Job Bank?
| Field | Description |
|---|---|
title | Job title as posted |
employer | Hiring employer name |
location | Job location as shown on Job Bank, for example Toronto (ON) |
city | City parsed from the location |
province | Two letter Canadian province or territory code |
additional_locations | Other cities when a posting lists more than one location |
salary | Full salary text, for example $47.50 to $57.00 hourly (to be negotiated) |
salary_min | Lowest numeric amount found in the salary text |
salary_max | Highest numeric amount found in the salary text |
salary_currency | Currency code, CAD for Canadian postings |
salary_period | Pay period: hour, day, week, bi-week, month or year |
salary_negotiable | Present as true when the posting says the salary is negotiable |
date_posted | Posting date in ISO 8601 format |
url | Direct link to the job posting on Job Bank |
job_id | Job Bank posting identifier from the job link |
job_number | Job number printed on the posting |
source | Source name, always Job Bank |
search_keyword | Keyword used for the search that produced the record |
search_location | Location used for the search that produced the record |
scraped_at | ISO timestamp for when the record was collected |
The Actor leaves empty fields out of each record instead of saving them as null. A posting without salary text, for example, has no salary or salary detail fields.
How to use Job Bank Canada Scraper
- Open the Actor on Apify Store.
- Enter a keyword and a Canadian location, or paste a Job Bank search results URL.
- Set how many jobs you want and how many result pages the Actor may read.
- Run the Actor.
- Review the dataset, then download it or connect it to your workflow.
When both a URL and a keyword are provided, the URL wins. Its search terms, filters, sort order and starting page are used as they appear in the link. Keyword and location are used only when the URL field is empty.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | - | Job Bank search results URL. Takes priority over keyword and location. |
keyword | String | No | software developer | Job title, skill or occupation, for example software developer or registered nurse. Required when no URL is given. |
location | String | No | - | Canadian city, province, territory or postal code, for example Toronto, ON, Vancouver or Ontario. Use Remote or Hybrid for workplace filters. Leave empty for all of Canada. |
results_wanted | Integer | No | 100 | Maximum number of job postings to save. |
max_pages | Integer | No | 10 | Maximum number of result pages to read. Each page holds up to 100 jobs. |
sort_by | String | No | best_match | Sort order for keyword searches: best_match or date. A URL keeps its own sort order. |
proxyConfiguration | Object | No | Apify Proxy off | Optional proxy settings. Job Bank is a public government site and normally works without a proxy. |
Usage Examples
Search by keyword and city
Collect software developer jobs in Toronto, newest first:
{"keyword": "software developer","location": "Toronto, ON","sort_by": "date","results_wanted": 100,"max_pages": 3}
Search a whole province
Collect registered nurse jobs across Ontario:
{"keyword": "registered nurse","location": "Ontario","results_wanted": 200,"max_pages": 5}
Use a Job Bank search URL
Paste a Job Bank results URL to keep its filters, such as remote and hybrid work:
{"startUrl": "https://www.jobbank.gc.ca/jobsearch/jobsearch?fskl=100000&fskl=15141&page=1&sort=M","results_wanted": 100,"max_pages": 3}
Search by postal code
Find jobs near a postal code:
{"keyword": "welder","location": "M5V 3L9","results_wanted": 50,"max_pages": 2}
Sample Output
{"job_id": "50620178","job_number": "643904316061327335","title": "software developer","employer": "Maarut","location": "Toronto (ON)","city": "Toronto","province": "ON","salary": "$101.00 daily","salary_min": 101,"salary_max": 101,"salary_currency": "CAD","salary_period": "day","date_posted": "2026-10-30T20:00:00Z","url": "https://www.jobbank.gc.ca/jobsearch/jobposting/50620178","source": "Job Bank","search_keyword": "software developer","search_location": "Toronto, ON","scraped_at": "2026-10-31T13:13:16.032Z"}
Tips for Best Results
- Start with one keyword and one city, then widen the location to a province if you need more results.
- Use the
datesort order for monitoring runs so new postings appear at the top. - Keep
max_pageslow for testing. Raise it only when you need a larger batch. - Job Bank may show related occupations and partner postings on its website beyond the live postings this Actor collects. Niche searches can therefore return fewer jobs than the headline count on Job Bank.
- For continuous coverage, schedule the Actor daily. Job Bank changes its postings throughout the day.
- If a search returns no jobs, try a broader job title or a larger location. Very specific combinations can be empty on a given day.
- Use a Job Bank URL when you need filters that are not in the input form, such as remote work, hybrid work, employment type or a specific starting page.
Integrations
- Google Sheets - Send results to a spreadsheet for review and sharing.
- Webhooks - Trigger a downstream workflow after each run.
- Make or Zapier - Connect job data to no-code automations.
- Apify API - Read datasets from your own applications and dashboards.
- CSV, Excel, JSON and XML - Download the dataset in the format your tools already use.
Frequently Asked Questions
Can I export Job Bank data to CSV or Excel?
Yes. Apify datasets can be downloaded as CSV, Excel, JSON, XML and other supported formats from the Console or through the API.
Can I run this Actor on a schedule?
Yes. Create a schedule in Apify Console and choose hourly, daily, weekly or a custom interval. Scheduled runs are a practical way to track new Canadian job postings.
Do I need a proxy?
No for most runs. Job Bank is a public government website. The proxy field is available if you want to route requests through Apify Proxy.
Why are there fewer results than the number shown on Job Bank?
Job Bank's website can show related occupations, partner job boards and older postings in its headline count. This Actor collects the live postings that Job Bank exposes for the selected search, so a niche role or a small city can have a lower total. Broaden the keyword or the location if you need more records.
Why is the salary missing for some jobs?
Some employers do not publish a salary. When salary text exists, the Actor keeps the full text and also fills salary_min, salary_max, salary_currency and salary_period. When it does not, those fields are left out of the record.
Can I search in French?
Yes. Paste a search results URL from the French Job Bank site, guichetemplois.gc.ca, in the Start URL field.
Can I collect remote jobs?
Yes. Set location to Remote for remote postings or Hybrid for hybrid postings. You can also paste a Job Bank search results URL that already has remote or hybrid filters applied.
Can I paste a single job posting link?
No. Use a Job Bank search results URL instead. A single posting link does not carry the search context the Actor needs to collect results.
Does the Actor collect full job descriptions?
No. It collects the structured summary fields listed in the output table, including the direct job link for each posting. Open the link when you need the full description or application details.
Is it legal to collect Job Bank data?
Job Bank publishes these postings for public viewing. You are responsible for using the data in line with applicable laws, Job Bank terms and privacy rules. Do not use the data for spam or unlawful screening.
Support
For issues, feature requests or custom Actor work, use the Issues tab on the Actor page or contact the developer through Apify.
Legal Notice
This Actor is designed for legitimate collection of publicly available job data. Users are responsible for how they use the data and for complying with applicable laws and website terms.