Dice.com Job Scraper 💰 $0.99/1K Structured Salary & Monitoring
Pricing
from $0.99 / 1,000 results
Dice.com Job Scraper 💰 $0.99/1K Structured Salary & Monitoring
Scrape tech job listings from Dice.com with structured salary data (min/max/currency), skills, contacts, and descriptions in text/HTML/Markdown. Includes incremental monitoring with repost detection and multi-channel notifications.
Pricing
from $0.99 / 1,000 results
Rating
0.0
(0)
Developer
Corvuslab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
What does Dice.com Job Scraper do?
Dice.com is the largest tech-focused job board in the United States, with thousands of IT, engineering, and developer positions posted daily. This actor extracts Dice job listings as clean, structured records with parsed salary ranges (min, max, currency, type), tagged skills, recruiter contact details, and full descriptions in text, HTML, or Markdown. It is one of the fastest and lowest-cost ways to collect Dice data at scale — no browser, no proxy, and no login required. Export to JSON, CSV, or Excel, pull results from the API, or feed them straight into an AI agent via MCP.
Give it a search keyword like python developer or data engineer and optional filters (location, employment type, workplace, posted date, visa sponsorship) and it returns every matching Dice listing as a structured record. For each job you get the title, company, location breakdown (city, state, country, postal code), parsed salary, employment type, employer type, and posting dates. Turn on Fetch full details to also pull the full job description, required skills list, and contact details extracted from the listing text. You can also paste Dice.com search or detail URLs directly instead of running a keyword search.
New to Apify? You can sign up for free and use the included monthly platform credit to try this Actor.
Why this scraper
- ⚡ Fast & low-cost — lightweight direct requests with no browser or proxy overhead, so large runs stay cheap.
- 🧾 Rich, typed records — 50+ 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, WhatsApp or any webhook.
- 🤖 AI- & API-ready — compact output, MCP-friendly, one-click integrations.
📚 What data can you extract from Dice.com?
Every record carries 53 fields, grouped like this:
| Group | What you get |
|---|---|
| Core listing | jobId, title, postalCode, employmentType, workplaceTypes, isSponsored, easyApply, willingToSponsor, validThrough, skills, diceJobId, positionId …and 7 more |
| Contacts & demand signals | applicantLocationRequirements, extractedEmails, extractedPhones, socialProfiles, phoneNumber, applyEmail, contactName |
| Company | company, companyUrl, companyLogo, companyProfileUrl, employerType |
| Pay & budget | salaryText, salaryMin, salaryMax, salaryCurrency, salaryType |
| Location | location, city, state, country, region |
| Description | summary, description, descriptionHtml, descriptionMarkdown, descriptionLength |
| Dates & change tracking | postedDate, modifiedDate, changeType |
Every field is nullable — missing values come back as null. Compact mode returns
the core fields only for lean AI/MCP payloads, and excludeEmptyFields drops empties
entirely.
✨ Key features
- 🔎 Search or URL scraping — run a keyword + filter search, or paste Dice.com search and detail URLs directly.
- 💰 Structured salary parsing — every listing gets parsed salary fields (min, max, currency, type) extracted from the page's structured data, not just the raw text string.
- 🛠️ Skills extraction — required skills are pulled as a clean array from each job's detail page.
- 🎚️ Rich filters — location, radius, employment type, workplace type (remote / on-site / hybrid), posted date, Easy Apply, visa sponsorship, employer type — all applied server-side.
- 📇 Contact extraction — emails, phone numbers, URLs, and social profiles pulled from each listing; filter with
requireContactfor instant lead-gen lists. - ♻️ Incremental monitoring with repost detection — schedule it and get only what changed (NEW / UPDATED / REAPPEARED / EXPIRED); unchanged items are skipped before their page is even fetched. Reposted jobs are flagged automatically so you never double-count them, and returning jobs are tagged REAPPEARED.
- 🔔 Multi-channel notifications — Telegram, Slack, Discord, WhatsApp, or any webhook (n8n / Make / Zapier).
- 📝 Three description formats — plain text, HTML, and Markdown, with optional truncation for leaner payloads.
- 🤖 AI-ready — compact + drop-empty output modes keep payloads small for LLMs and MCP tools.
🚀 How to scrape Dice.com
- Open the actor and enter a search keyword (e.g.
data engineer) and/or pick filters like location, employment type, or workplace — or paste a Dice.com URL. - Set Max results and choose whether to Fetch full details (on by default).
- (Optional) Turn on incremental mode and a notification channel, then Schedule it for ongoing monitoring.
- Click Start.
- 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.
⚙️ Input
Configure it in the visual editor — no code needed — or pass JSON via the API.
| Field | What it does |
|---|---|
query | Keyword search (comma-separate for multiple searches). |
startUrls | Scrape specific Dice.com search or job-detail URLs. |
location | City, state, or zip code (e.g. New York, NY, 94105). |
employmentType | Full-time, Contract, Part-time, Third Party (multi-select). |
workplaceType | Remote, On-Site, Hybrid (multi-select). |
postedDate | Last 24 hours, 3 days, or 7 days. |
easyApply | Only jobs with Dice Easy Apply. |
willingToSponsor | Only employers willing to sponsor a visa. |
includeDetails | Fetch each job's detail page for richer fields (salary, skills, description). |
requireContact | Keep only listings with an email, phone, or both — built-in lead-gen filter. |
compact | Return only core fields — ideal for AI agents and MCP clients. |
incrementalMode | Emit only what changed since the last run. |
skipReposts | Exclude jobs detected as reposts (same content, new listing ID). |
notifyOnlyChanges | Only notify on NEW / UPDATED / REAPPEARED records. |
maxResults | Cap the number of records (0 = unlimited). |
...and 40 inputs in total — the table shows the essentials; the rest cover notification channels (Telegram, Slack, Discord, WhatsApp, webhook), description formats, output/AI modes, and advanced tuning, all in the visual editor.
Example inputs
Basic search
{ "query": "python developer", "maxResults": 100 }
Filtered search — remote data engineering jobs posted this week
{"query": "data engineer","location": "Austin, TX","employmentType": ["full-time"],"workplaceType": ["remote"],"postedDate": "7","maxResults": 50}
Incremental monitoring — daily DevOps watch with Slack alerts
{"query": "devops engineer","incrementalMode": true,"slackWebhookUrl": "https://hooks.slack.com/services/T00/B00/xxx","maxResults": 200}
📤 Output
Each item in the dataset is one Dice.com job listing. Every record includes the core fields; enabling Fetch full details (on by default) adds the full description, structured salary breakdown, skills list, and contact details. Here is a real example record (descriptions truncated for readability):
{"id": "ac169ca1-1532-4084-b999-2dcd6756ab4e","title": "Python Developer","url": "https://www.dice.com/job-detail/ac169ca1-1532-4084-b999-2dcd6756ab4e","company": "Randstad Digital","companyUrl": "https://www.dice.com/company/cxsapwma1","companyProfileUrl": "https://www.dice.com/company-profile/ee3855f3-d056-5325-bc31-ad5f53052a28","location": "Jersey City, New Jersey, USA","city": "Jersey City","state": "New Jersey","country": "USA","region": "NJ","postalCode": "07310","salaryText": "USD55 - USD65","salaryMin": 55.0,"salaryMax": 55.0,"salaryCurrency": "USD","salaryType": "unknown","employmentType": "Contract","employerType": "Recruiter","easyApply": false,"willingToSponsor": false,"postedDate": "2026-08-07T15:06:22Z","modifiedDate": "2026-08-28T21:00:27Z","validThrough": "2026-09-28T21:00:27.000Z","summary": "The Cleared Derivatives Risk Technology (CDRT) team has an opportunity for a Senior Python (Quartz) Developer...","descriptionLength": 3871,"applicantLocationRequirements": "USA","source": "dice.com","searchKeyword": "python developer","scrapedAt": "2026-08-28T22:24:11.068668+00:00","detailFetched": true,"contentHash": "e7b2249a6b80e9507f1044be6713a493cf3226da"}
Each record can also include description, descriptionHtml, and descriptionMarkdown — choose the format with the Description format input. When incremental mode is on, records carry a changeType field (NEW / UPDATED / REAPPEARED / EXPIRED) and repost-detection fields (isRepost, repostOfId).
Data fields
- Core — id, title, url, company, location, salaryText, employmentType, postedDate, source, scrapedAt.
- Structured salary — salaryMin, salaryMax, salaryCurrency, salaryType (parsed from the page's structured data).
- Location breakdown — city, state, country, region, postalCode, applicantLocationRequirements.
- Job details (with
includeDetails) — summary, description (text / HTML / Markdown), descriptionLength, skills, workplaceTypes, isSponsored, easyApply, willingToSponsor, employerType, validThrough. - Company — companyUrl, companyLogo, companyProfileUrl.
- Contacts & signals — extractedEmails, extractedPhones, extractedUrls, socialProfiles, phoneNumber, applyEmail, contactName.
- Monitoring — changeType, isRepost, repostOfId, repostDetectedAt, contentHash.
Every field is present in standard mode (missing values are null); compact mode returns the core fields only, for lean AI/MCP payloads. With excludeEmptyFields enabled, null/empty fields are omitted entirely.
♻️ How to monitor Dice.com with incremental mode
Schedule the actor and turn on incremental mode: each run compares against the last and emits only NEW / UPDATED / REAPPEARED / EXPIRED records — unchanged items are skipped before their detail page is fetched, so a daily watch costs a fraction of a full re-scrape. Jobs that disappear and then come back are tagged REAPPEARED. Reposted jobs (same content under a new listing ID) are automatically flagged with isRepost and linked back to the original via repostOfId, so you never double-count them — or enable skipReposts to drop them entirely.
Example: monitoring 1,000 jobs daily for a month (30 runs)
| Daily churn | of 1,000 tracked | billable records | you save |
|---|---|---|---|
| 5 % | 1,000 | 50 | 95 % |
| 15 % | 1,000 | 150 | 85 % |
| 30 % | 1,000 | 300 | 70 % |
The first run seeds the baseline and bills in full; every run after that bills only the delta.
🔔 How to set up Dice.com alerts
Get pinged the moment a matching record appears. Fill in only the channels you want:
| Channel | What to configure |
|---|---|
| ✈️ Telegram | telegramToken (from @BotFather) + telegramChatId |
| 💬 Slack | slackWebhookUrl (Incoming Webhook URL) |
| 🎮 Discord | discordWebhookUrl (channel webhook URL) |
| 🪝 Webhook | webhookUrl receives structured JSON — ideal for n8n / Make / Zapier |
Credentials are secret inputs — encrypted at rest, masked in the UI and never written to the run log. Every channel fires independently, so a broken channel can't stop the scrape or the others. Pair incremental mode with notify only about changes to hear only about genuinely new records, with no duplicates across runs.
💡 What can you do with Dice.com data?
- Lead generation — filter for jobs with recruiter emails or phone numbers and build targeted outreach lists for staffing, tools, or services.
- Tech salary research — analyze structured salary ranges across roles, locations, and employment types to benchmark compensation.
- Job monitoring — schedule it with incremental mode + notifications for a live change feed of new, updated, and expired listings.
- Skills-gap analysis — aggregate the skills arrays across thousands of listings to map which technologies employers demand most.
- Enrichment & aggregation — feed clean job data into your own app, spreadsheet, or data warehouse.
- AI agents & pipelines — compact output plugs straight into LLM/MCP workflows for automated job matching or market analysis.
💰 How much does it cost to scrape Dice.com?
This Actor uses Apify's pay-per-event model: a small fee when a run starts, plus a per-record fee. See the Actor's Pricing tab for the current numbers — they're rendered live, so this page never goes stale.
Two things cut your bill further:
- Site-side filters — records you filtered out are never fetched and never billed.
- Incremental mode — after the baseline run you pay only for what actually changed.
| Daily churn | of 1,000 tracked | billable records | you save |
|---|---|---|---|
| 5 % | 1,000 | 50 | 95 % |
| 15 % | 1,000 | 150 | 85 % |
| 30 % | 1,000 | 300 | 70 % |
🔌 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.
🔗 Using the API
You can run this Actor from your own code. Example with the Apify Python client:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run_input = {"query": "python developer","location": "New York, NY","employmentType": ["full-time"],"maxResults": 50,}run = client.actor("corvuslab/dice-scraper").call(run_input=run_input)print("Results: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
The Actor also works with the JavaScript/TypeScript client, the Apify CLI and the REST API.
❓ FAQ
Do I need a proxy or login? No — it works out of the box with no proxy and no login. Apify Proxy is available under Advanced settings if you ever need it for high-volume runs.
Can I get only new items on a schedule? Yes — turn on incremental mode and schedule it; each run emits only what changed and can notify your Slack, Telegram, Discord, or webhook channel.
What about reposted jobs? The actor detects when a job is reposted under a new ID and flags it with isRepost and repostOfId, so you can filter out duplicates in your pipeline.
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 and keeps token usage low.
How many records can I get? As many as Dice returns for your search — set maxResults to cap the count (0 = unlimited).
Can it notify me when new jobs appear? Yes — add a Telegram, Slack, Discord, WhatsApp, or generic webhook target under Notifications, and combine with incremental mode + notifyOnlyChanges so you only get pinged about new and updated listings.
Is scraping Dice.com legal? This actor collects only publicly available data on Dice.com. 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 DHI Group, Inc. or Dice.
Keywords: dice scraper · dice.com scraper · dice api · dice job scraper · dice.com job scraper · scrape dice jobs · dice data extraction · dice salary data · tech job scraper · dice job monitoring · export dice jobs CSV · dice.com jobs JSON · job board scraper · no-code scraper · MCP tool for AI agents · tech recruiting data · dice remote jobs · dice job alerts