Dice Jobs Scraper
Pricing
$0.90 / 1,000 dice jobs
Dice Jobs Scraper
Scrape public Dice jobs without login or cookies. Search keywords and locations, fetch direct job details, filter, paginate, deduplicate, and use residential fallback only after blocking.
Pricing
$0.90 / 1,000 dice jobs
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Keyless Apify actor for collecting public Dice job listings and full job details. It supports keyword and location searches, direct Dice job URLs or IDs, filters, pagination, deduplication, and optional detail enrichment.
Features
- No Dice account, cookies, or API key required.
- Direct public HTML requests first.
- Residential Apify proxy fallback only after a direct
403, CAPTCHA/access-denied signal, or rate limit. - Search multiple keywords and locations with bounded pagination.
- Fetch direct job details by
/job-detail/{id}URL or UUID. - Filter by posted date, workplace type, employment type, and Easy Apply.
- Deduplicate by Dice job ID across queries, locations, and pages.
- Empty input returns one labeled sample row and does not charge.
- Invalid input, no results, blocks, parse failures, and network errors are explicit uncharged diagnostics.
Input examples
Search:
{"searchQueries": ["software engineer", "data scientist"],"locations": ["Remote", "Toronto, ON"],"postedDate": "7d","maxItems": 100,"maxPagesPerSearch": 3,"includeDetails": true}
Direct details:
{"jobUrls": ["https://www.dice.com/job-detail/22d98626-8e02-4bf5-9a7e-5aa9729489cb"],"includeDetails": true}
Output
Real rows include jobId, title, company, location, workplaceType, employmentType, postedAt, description, url, and search context. Detail fields are populated when includeDetails is enabled.
Sample rows have _sample: true, charged: false. Diagnostics have _diagnostic: true, ok: false, and charged: false.
Billing and cost controls
The actor calls the job event only after a valid, real job row is written. Samples, diagnostics, duplicate listings, and no-result searches are not charged. The planned event price is $0.0008/job, below the observed $0.001/job benchmark for comparable job data.
Residential fallback is intentionally opt-in by runtime condition, not used on normal direct traffic. Residential traffic can cost several dollars per GB and a blocked run may make multiple requests, so users should keep maxProxyRetries, maxPagesPerSearch, and maxItems bounded. At the planned price, proxy-heavy runs can become unprofitable when only a small number of jobs are returned; the actor exposes diagnostics rather than silently charging failed rows.
Endpoint and maintenance risks
Dice does not expose a documented public search API for this workflow. The actor parses server-rendered Dice HTML and uses the public /jobs/q-{query}-jobs and /job-detail/{id} routes. Dice may change selectors, route parameters, anti-bot controls, or response rendering. A selector change produces PARSE_ERROR diagnostics and should be caught by automated sample and live smoke tests before publication. CAPTCHA or access changes may require residential proxy traffic and can materially change margins.
Diagnostic codes
BAD_INPUT, NO_RESULTS, BLOCKED, RATE_LIMITED, SERVER_ERROR, TIMEOUT, NETWORK, and PARSE_ERROR are uncharged. Each diagnostic includes the stage and a short reason where available.
Local development
npm installnpm testnpm start
The test suite uses deterministic HTML fixtures. The release smoke should also run a real Dice search with a small maxItems value and no proxy first.