Dice Jobs Scraper
Dice jobs scraper at $0.90 per 1,000 jobs plus a $0.001 run start. Companies, locations, posting dates, apply URLs and full descriptions. No login needed.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
searchQueries,locations,jobUrls(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.0009 per Dice job = $0.9 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Dice job | One real, deduplicated Dice job result. | $0.0009 |
| Actor Start | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). | $0.001 |
Pay-per-event pricing: you are billed per result, not per subscription — a run that returns nothing costs nothing beyond the start fee. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-04, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
searchQueries | Dice keywords or job titles. | array |
locations | Cities, states, countries, or Remote. | array |
jobUrls | Public Dice job-detail URLs to collect directly. | array |
jobIds | Dice job identifiers to collect directly. | array |
postedDate | Limit search results by their visible posting age. | string |
workplaceType | Limit results to remote, hybrid, or on-site roles. | string |
employmentTypes | Optional employment-type labels to retain. | array |
easyApply | Keep only jobs visibly marked for easy application. | boolean |
includeDetails | Open each job page to collect its full public description. | boolean |
maxItems | Maximum number of unique jobs to return. | integer |
maxPagesPerSearch | Maximum result pages requested for each search. | integer |
maxProxyRetries | Maximum datacenter-proxy retries after a direct block. | integer |
requestTimeoutSecs | Maximum duration of each network request. | integer |
countryCode | Optional ISO country code for the datacenter proxy fallback. | string |
What you get
A structured dataset — each result includes fields like:
titlecompanylocationworkplaceTypeemploymentTypepostedAturlExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
Related tools in Job Market Scrapers
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
SEEK Jobs Scraper
SEEK jobs scraper at $0.81 per 1,000, flat at every volume. Australia and New Zealand, with salary ranges, workplace type and full descriptions. No login.
Career Site Jobs Scraper
Scrape open jobs from any company career page. Auto-detects the ATS across 10 platforms and returns title, location, department, type.
Internshala Scraper
Scrape Internshala internships and fresher jobs by keyword, city, category, stipend or work-from-home.
XING Jobs Scraper
Scrape XING jobs in Germany, Austria and Switzerland by keyword, city, remote or hybrid.
ZipRecruiter Scraper
Scrape ZipRecruiter jobs by keyword, city, remote, employment type, salary or posting age.
LinkedIn Company Employees Scraper
Scrape LinkedIn company employees without a login or cookies. Company URL or name in; employee name, headline, job title, location and profile URL out.
Where this tool sits
- Categories
- Job Market Scrapers
- Platforms
- Job Boards & ATS
Dice Jobs Scraper — US tech jobs, no login
$0.90 per 1,000 jobs ($0.0009 each), plus $0.001 each time a run starts. Flat rate — no volume tiers, no plan gates — and you are charged only for jobs actually returned. That is under the $1.00 per 1,000 charged by the most-used Dice scraper on the Store, though it is not the cheapest Dice listing there.
Pull thousands of US tech jobs in minutes — titles, companies, locations, posting dates, direct apply URLs and full descriptions. No login, no cookies, no API key, no rate-limit headaches. Point it at a keyword, hit start, get data.
Who uses this
- Recruiters building a talent pipeline overnight instead of paging through Dice by hand.
- Job boards aggregating tech roles to fill their own listings.
- Market-intelligence teams tracking who is hiring, for which roles, across the entire US
tech market.
- Founders watching which stacks and titles competitors are staffing up on.
Why this one
| This Actor | Typical alternative | |
|---|---|---|
| Price per job | $0.0009 + $0.001 run start | Ranges from $0.00007 to $0.05 |
| Login or cookies | Never | Often required |
| Company + apply URL | On every row | Frequently missing |
| Charged on failure | No | Varies |
Prices for alternatives were resolved live on 2026-08-10 across every Dice-focused Actor on the Store with at least 15 monthly users, read at each one's *lowest* volume tier.
Features
- No Dice account, cookies, or API key required.
- Company, location, posting date and direct apply URL on every row.
- 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.
Frequently asked questions
Do I need a Dice account or API key? No. Supply a keyword and nothing else.
How much does a typical run cost? 100 jobs is $0.09. 1,000 jobs is $0.90.
Am I charged for failed or empty runs? No per-result charges apply - only the $0.001 run-start fee. Blocks, parse failures and no-result runs are returned as labeled diagnostics and cost nothing.
Can I get the full job description? Yes — set includeDetails: true.
Can I filter to remote roles only? Yes, via workplaceType, plus filters for posted date and employment type.
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
Two charges apply: $0.001 each time a run starts, and $0.0009 per job ($0.90 per 1,000). The job event fires only after a valid, real job row is written — samples, diagnostics, duplicate listings and no-result searches are never charged.
Blocked requests retry on rotating datacenter addresses; this actor never uses metered (residential) proxy groups, and a RESIDENTIAL group requested in proxyConfiguration is replaced with datacenter and reported back in a diagnostic row. Your own proxyUrls are used verbatim. Keep maxProxyRetries, maxPagesPerSearch and maxItems bounded so a heavily blocked search cannot run long; the actor returns diagnostics rather than silently charging rows it did not deliver.
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 surfaces as PARSE_ERROR diagnostics, which are uncharged, so you find out from an empty billed total rather than from a bill for junk rows.
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.