Eluta.ca Scraper
Pricing
from $1.49 / 1,000 results
Eluta.ca Scraper
Scrape Eluta.ca — Canada's Top 100 Employers job search engine. Keyword + location search, all 13 provinces, repost detection, daily feed support. No API key required.
Pricing
from $1.49 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Actor stats
1
Bookmarked
8
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share

Extract structured job listings from Eluta.ca — Canada's official job search engine for the Canada's Top 100 Employers project, covering 70,000+ employers across all 13 provinces and territories. Returns up to 2,100+ results per search query with company, location, description, and posting date. No API key required.
Why this scraper?
🍁 Full Canadian coverage
Search across all 13 provinces and territories — Alberta, British Columbia, Ontario, Quebec, and more. Use the province dropdown for regional targeting.
🔍 Keyword + location filtering
Combine any job keyword with a city or province. Results are geocoded by Eluta and sorted by relevance, so you get the most current local postings first.
📅 Freshness control
Filter by posting age with the Max age (days) parameter. Combine with Skip reposts to get only net-new listings since your last run — ideal for daily feed workflows.
♻️ 90-day repost detection
The scraper maintains a cross-run fingerprint store. Jobs already seen within the past 90 days are flagged with isRepost: true and can be skipped automatically.
📄 Rich description snippets
Every result includes the job description excerpt from the listing, delivered in plain text, HTML, and Markdown formats.
✅ Direct employer links
Each job URL points directly to the canonical Eluta listing page, which forwards to the employer's own career site — no job board intermediaries.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | String | "" | Keywords to search for, e.g. "software developer" or "nurse" |
location | String | "" | City or region, e.g. "Toronto" or "Vancouver" |
province | Select | "" | Province code (AB, BC, ON, QC, …). Used when Location is empty |
daysOld | Integer | — | Only return jobs posted within this many days |
maxResults | Integer | 100 | Maximum number of results to return |
skipReposts | Boolean | false | Skip jobs already seen in previous runs (90-day memory) |
startUrls | Array | [] | Optional list of specific Eluta.ca search or category URLs to scrape |
Output schema
Always present
| Field | Type | Description |
|---|---|---|
id | String | Stable 32-character hex ID derived from the job's internal Eluta hash |
title | String|null | Job title as shown on the listing |
company | String|null | Employer name |
city | String|null | City extracted from the location field |
province | String|null | Two-letter Canadian province code (e.g. ON, BC) |
location | String|null | Raw location string as shown on Eluta (e.g. "Toronto, ON") |
countryCode | String | Always "CA" |
publishDate | String|null | Posting date in YYYY-MM-DD format, computed from relative date |
publishDateISO | String|null | Same as publishDate |
postedAtRaw | String|null | Raw relative date string from Eluta (e.g. "4 days ago", "1 hour ago") |
url | String|null | Canonical Eluta listing URL (https://www.eluta.ca/spl/...) |
descriptionHtml | String|null | Description snippet as HTML |
descriptionText | String|null | Description snippet as plain text |
descriptionMarkdown | String|null | Description snippet as Markdown |
contentHash | String | 16-character hash of title + company + location for change detection |
source | String | Always "eluta.ca" |
scrapedAt | String | ISO timestamp of when this item was scraped |
isRepost | Boolean | true if this job was seen in a previous run within 90 days |
originalPublishDate | String|null | First date this job was seen (only populated if isRepost: true) |
originalUrl | String|null | URL from first sighting (only populated if isRepost: true) |
changeStatus | String | Always "NEW" on first seen; "REPOST" tracking is via isRepost |
summary | null | Reserved for future use |
Example output record
{"id": "eca1036674acc278dcff81016efd9409","title": "Senior Software Developer (UI Developer)","company": "Dawn InfoTek Inc.","city": "Toronto","province": "ON","location": "Toronto, ON","countryCode": "CA","publishDate": "2026-04-22","publishDateISO": "2026-04-22","postedAtRaw": "4 days ago","url": "https://www.eluta.ca/spl/senior-software-developer-ui-developer-eca1036674acc278dcff81016efd9409","descriptionHtml": "Developer (UI Developer) Responsibilities. Implement high quality and well-designed systems under the direction of a supervisor or project leader...","descriptionText": "Developer (UI Developer) Responsibilities. Implement high quality and well-designed systems under the direction of a supervisor or project leader...","descriptionMarkdown": "Developer (UI Developer) Responsibilities. Implement high quality and well-designed systems under the direction of a supervisor or project leader...","contentHash": "a4f2e8b7c1d39f6e","source": "eluta.ca","scrapedAt": "2026-04-26T11:45:00.000Z","isRepost": false,"originalPublishDate": null,"originalUrl": null,"changeStatus": "NEW","summary": null}
Examples
Search for developer roles in Toronto:
{"searchQuery": "software developer","location": "Toronto","maxResults": 100}
Nursing jobs in British Columbia, posted in the last week:
{"searchQuery": "nurse","province": "BC","daysOld": 7,"maxResults": 200}
Daily feed — new jobs only, skip already-seen postings:
{"searchQuery": "data analyst","location": "Ottawa","daysOld": 1,"skipReposts": true,"maxResults": 500}
Scrape a specific Eluta category or search URL directly:
{"startUrls": [{ "url": "https://www.eluta.ca/Government-jobs" },{ "url": "https://www.eluta.ca/jobs-in-Alberta" }],"maxResults": 50}
💰 Pricing
$1.49 per 1,000 results — you only pay for successfully retrieved listings. Failed retries and filtered reposts are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.15 |
| 1,000 | ~$1.49 |
| 10,000 | ~$14.90 |
| 100,000 | ~$149.00 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Use the Max results cap in the input to control your spend exactly.
Performance
| Run size | Pages | Duration | Memory |
|---|---|---|---|
| 25 results | 3 pages | ~8 sec | 512 MB |
| 100 results | 10 pages | ~30 sec | 512 MB |
| 1,000 results | 100 pages | ~5 min | 512 MB |
| 10,000 results | 211 pages (max) | ~10 min | 512 MB |
Known limitations
- Results are description snippets from the listing card, not the full job description from the employer's website. Eluta links out to employer career pages which vary in structure.
- Pagination is bound to the geocoded location resolved by Eluta on page 1. Searches for very broad terms (e.g. empty keyword) may return fewer results than the reported count.
- The
daysOldfilter relies on Eluta's internald=parameter. Eluta may interpret this as an approximate filter. - A maximum of approximately 2,110 results (211 pages × 10 per page) are accessible per search query, which is Eluta's display limit.
Technical details
- Source: eluta.ca — Canada's official job search engine, operated by Mediacorp Canada Inc.
- Memory: 512 MB
- Repost storage: KeyValueStore
eluta-ca-scraper-job-dedup, 90-day TTL - Retry: Automatic retry on network errors, exponential backoff, 3 attempts per request
Additional services
Need a custom actor, additional filters, scheduled runs, or integration support? Send an email to info@unfencedgroup.nl — we build on request.
Part of the Unfenced Group job board scraper portfolio — 60+ job markets covered. Built by unfenced-group · Issues? Open a ticket or send a message.