Eluta.ca Job Scraper — Canadian Jobs, Salaries & Apply URLs avatar

Eluta.ca Job Scraper — Canadian Jobs, Salaries & Apply URLs

Pricing

from $1.30 / 1,000 results

Go to Apify Store
Eluta.ca Job Scraper — Canadian Jobs, Salaries & Apply URLs

Eluta.ca Job Scraper — Canadian Jobs, Salaries & Apply URLs

Scrape Canadian job listings from Eluta.ca by keyword, city and province. Get title, company, structured location, remote flag, parsed CAD salary (min/max/period), the direct employer apply URL and the full job description — with cheap incremental monitoring for scheduled daily feeds.

Pricing

from $1.30 / 1,000 results

Rating

5.0

(1)

Developer

Corvuslab

Corvuslab

Maintained by Community

Actor stats

1

Bookmarked

1

Total users

0

Monthly active users

9 days ago

Last modified

Share

🍁 What does the Eluta.ca Job Scraper do?

Turn any Eluta.ca search into clean, structured Canadian job data — title, company, location, salary and the direct employer apply link — in one run.

Scrape job listings from Eluta.ca, the search engine behind Canada's Top 100 Employers, by keyword, city and province. Every job comes back as a structured record: title, company, structured location (city / province), a first-class remote flag, parsed salary (min / max / currency / period), the direct employer apply URL and the full job description — plus dozens more fields. Run it no-code in the visual editor or via the API, export to JSON, CSV, Excel or feed it straight to an AI agent, and schedule it with incremental monitoring so a daily feed only ever costs you the jobs that actually changed.

Why this scraper

  • Fast & low-cost — pulls about 10 jobs per page request, so large runs stay cheap.
  • 🧾 Rich, typed records — 35+ structured fields per job, not raw HTML.
  • ♻️ Cheap to monitor — incremental mode re-scrapes only what changed (see below).
  • 🔔 Notifications built in — Telegram, Slack, Discord or any webhook.
  • 🤖 AI- & API-ready — compact output, MCP-friendly, one-click integrations.

✨ Key features

  • 🔎 Search or URL scraping — run a keyword search with optional city/province, or paste Eluta.ca search and job-page URLs.
  • 🍁 Built for Canada — structured city, province and countryCode, plus a first-class isRemote boolean parsed straight from the listing.
  • 💰 Parsed salary — the raw salary text and structured salaryMin, salaryMax, salaryCurrency (CAD) and salaryPeriod (year / hour), so you can sort and filter on pay.
  • 🔗 Direct employer apply URL — resolves the real destination on the employer's own careers site, not just the Eluta redirect, so leads and applications land where they should.
  • 🧠 Full job descriptions — the complete posting as plain text, HTML and Markdown, with an always-on short snippet for previews.
  • 🎚️ Powerful filters — city, province/territory, include/exclude keyword filters, a posted date range (fromDate / toDate), max age in days or minutes, and a result cap — keyword filtering runs before any detail fetch, so it stays cheap.
  • 📇 Contact extraction — optionally pull emails, phone numbers and social-profile links out of each job description.
  • ♻️ Incremental monitoring — schedule it and get only what changed (NEW / UPDATED / EXPIRED); unchanged jobs are skipped before their detail page is ever fetched.
  • 🔁 Repost detection — the same job re-posted under a new ID is flagged (isRepost), and can be dropped entirely with Skip reposts.
  • 🔔 Notifications — Telegram, Slack, Discord or any webhook (n8n / Make / Zapier), with an optional changes-only filter.
  • 🤖 AI-ready — compact and drop-empty output modes keep payloads small for LLMs and MCP.

📤 Example output

{
"id": "68416bf7ec7a681f6c0c59587993542e",
"title": "Senior Software Developer, Backend",
"url": "https://www.eluta.ca/spl/senior-software-developer-backend-68416bf7ec7a681f6c0c59587993542e",
"company": "Autodesk Canada Co.",
"employerElutaUrl": "https://www.eluta.ca/jobs-at-autodesk-canada",
"location": "Toronto, ON",
"city": "Toronto",
"province": "ON",
"countryCode": "CA",
"isRemote": false,
"isSponsored": false,
"salaryRaw": "$107,000 - $157,300",
"salaryMin": 107000.0,
"salaryMax": 157300.0,
"salaryCurrency": "CAD",
"salaryPeriod": "year",
"postedAtRaw": "19 hours ago",
"postedAt": "2026-08-10T23:17:39.552811+00:00",
"applyUrl": "https://autodesk.wd1.myworkdayjobs.com/en-US/Ext/job/Toronto-ON-CAN/Senior-Software-Developer--Backend_26WD100353",
"sourceDomain": "autodesk.wd1.myworkdayjobs.com",
"sourceCountry": "CA",
"descriptionSnippet": "... software – from the greenest buildings and cleanest cars to the smartest factories and biggest hit movies. We help innovators turn their ideas into reality, transforming not only how things are made, but what can be made...",
"resultRank": 4,
"source": "eluta.ca",
"searchKeyword": "software developer",
"scrapedAt": "2026-08-11T18:17:39.552811+00:00",
"detailFetched": true
}

Full runs also carry the complete description as description (text), descriptionHtml and descriptionMarkdown, plus descriptionLength.

📥 Example input

A few ready-to-run configurations — set these in the visual editor or pass them as JSON via the API:

{ "query": "software developer", "location": "Toronto", "maxResults": 100 }
{ "query": "registered nurse", "province": "BC", "maxAgeDays": 7, "includeDetails": true }
{ "query": "data analyst", "location": "Ottawa", "incrementalMode": true, "telegramToken": "…", "telegramChatId": "@yourchannel" }
{ "query": "developer", "location": "Toronto", "includeKeywords": "python, backend", "excludeKeywords": "senior, manager", "includeDetails": true, "includeContacts": true }

📚 What data can you extract?

  • Job & employertitle, company, employerElutaUrl, url, id, source.
  • Locationlocation, city, province, countryCode, isRemote.
  • SalarysalaryRaw, salaryMin, salaryMax, salaryCurrency, salaryPeriod.
  • Posting detailsemploymentType, isSponsored, postedAtRaw, postedAt, resultRank, searchKeyword.
  • Apply & sourceapplyUrl (direct employer link), sourceDomain, sourceCountry.
  • Description (with Fetch full details) — descriptionSnippet, description, descriptionHtml, descriptionMarkdown, descriptionLength.
  • Contacts (with Extract contacts) — emails, phones, socialProfiles parsed from the description.
  • Change tracking (with incremental mode) — changeType, isRepost, repostOfId, repostDetectedAt, contentHash, detailFetched, scrapedAt.

Every field is present in standard mode (missing values are null); compact mode returns the core fields only (title, company, location, salary, apply URL), for lean AI/MCP payloads.


⚙️ Input

Configure it in the visual editor — no code needed — or pass JSON via the API.

FieldWhat it does
queryKeyword search, e.g. registered nurse (comma-separate for multiple searches).
locationCity or region to search within, e.g. Toronto, Vancouver, Calgary.
provinceRestrict to a Canadian province or territory (AB, BC, ON, QC …).
startUrlsScrape specific Eluta.ca search or job-page URLs directly.
maxResultsCap the number of jobs (0 = unlimited).
maxAgeDays / maxAgeMinutesKeep only jobs first seen within the last N days or minutes.
fromDate / toDateKeep only jobs posted within a date range.
includeKeywords / excludeKeywordsKeep or drop jobs by keyword (matched before any detail fetch).
includeDetailsFetch each job's full description and direct apply URL.
includeContactsExtract emails, phones and social links from the description.
incrementalModeEmit only what changed since the last run.

…and 33 inputs in total — the table shows the essentials; the rest cover description format and trimming, compact / drop-empty output modes, repost skipping, notification channels (with a changes-only option), incremental tuning and advanced options, all in the visual editor.


💡 Use cases

  • Recruiting & sourcing — build a live board of open Canadian roles with employer names and direct apply links.
  • Salary benchmarking — aggregate salaryMin/salaryMax by role, city and province to price your offers.
  • Job-market & hiring research — track which companies are hiring, where, and for what across Canada.
  • Job board & aggregator feeds — enrich your own site or app with clean, structured Canadian listings.
  • Daily vacancy monitoring — schedule with incremental mode + notifications for a live change feed.
  • AI agents & pipelines — compact output plugs straight into LLM / MCP workflows.

♻️ Incremental monitoring — pay for changes, not repeats

Schedule the actor and turn on incremental mode: each run compares against the last and emits only NEW / UPDATED / EXPIRED jobs — unchanged listings are skipped before their detail page is fetched, so a daily watch costs a fraction of a full re-scrape.

Daily churnof 1,000 trackedbillable recordsyou save
5 %1,0005095 %
15 %1,00015085 %
30 %1,00030070 %

The first run seeds the baseline and bills in full; every run after that bills only the delta.


🚀 How to run it

  1. Open the actor and enter a search keyword (e.g. software developer) and, optionally, a city or province — or paste an Eluta.ca URL.
  2. Set Max results and choose whether to fetch full details (description + direct apply URL).
  3. (Optional) Turn on incremental mode and a notification channel, then Schedule it.
  4. Click Start.
  5. Download the data as JSON, CSV or Excel, or pull it from the API.

New to Apify? Create a free account — it comes with monthly credit, no credit card required.


🔌 Integrations & export

Export to JSON, CSV, Excel or an HTML table, or pull from the REST API and the JavaScript / Python clients. Runs on a schedule, connects to Google Sheets, Slack, Make, Zapier and n8n, and works as an MCP tool for AI agents — compact mode keeps token usage small.


❓ FAQ

Do I need a proxy or login? No — it runs out of the box. Proxy rotation is on by default for reliable multi-page runs and you can adjust it under Advanced.

Which locations does it cover? All of Canada — search by city, or restrict to any province or territory. Leave both empty to search the whole country.

Do I get salaries? Yes, when the employer publishes them — as raw text and as structured salaryMin / salaryMax / salaryCurrency / salaryPeriod. Jobs without a posted salary return null.

Can I get the real employer apply link? Yes — with Fetch full details, applyUrl resolves to the employer's own careers page, not just the Eluta redirect.

Can I get only new jobs on a schedule? Yes — turn on incremental mode and schedule it; each run emits only what changed and can notify your channel. Add Notify only on changes to keep those alerts to genuinely new/updated jobs.

Can I filter the results? Yes — narrow by city/province, a posted date range (fromDate / toDate) or max age (days or minutes), and keep or drop jobs with include/exclude keyword filters. Keyword filters run on the listing before any detail fetch, so they don't cost you extra.

Can I get recruiter emails or phone numbers? Turn on Extract contacts and the actor parses emails, phones and socialProfiles out of each fetched description. Most postings link to an applicant-tracking system rather than listing a contact, so these are often empty.

What formats can I export? JSON, CSV, Excel, HTML table, or via the API.

Is it good for AI agents? Yes — enable compact mode; the output is MCP-friendly.

How many jobs can I get? As many as the search returns — set maxResults (0 = unlimited).

Is scraping this legal? The actor collects only publicly available data. You are responsible for how you use it, including any personal data and GDPR-style obligations.


⚖️ Disclaimer

This actor accesses only publicly available data on Eluta.ca. You are responsible for how you use the extracted data — in particular any personal information — and for complying with the site's terms and applicable law (including the GDPR where it applies). Not affiliated with, endorsed by, or sponsored by Eluta.ca or Mediacorp Canada Inc.


Keywords: eluta scraper · eluta.ca scraper · eluta api · eluta job scraper · canada job scraper · canadian jobs scraper · canada jobs api · job listings canada · job postings scraper · salary data scraper · remote jobs canada · job market research · recruitment data · job board scraper · Toronto jobs scraper · export jobs to CSV · no-code job scraper · MCP tool for AI agents