Dice Jobs Scraper avatar

Dice Jobs Scraper

Pricing

$0.90 / 1,000 dice jobs

Go to Apify Store
Dice Jobs Scraper

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

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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 install
npm test
npm 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.