Dice.com Job Scraper 💰 $0.99/1K Structured Salary & Monitoring avatar

Dice.com Job Scraper 💰 $0.99/1K Structured Salary & Monitoring

Pricing

from $0.99 / 1,000 results

Go to Apify Store
Dice.com Job Scraper 💰 $0.99/1K Structured Salary & Monitoring

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

Corvuslab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

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:

GroupWhat you get
Core listingjobId, title, postalCode, employmentType, workplaceTypes, isSponsored, easyApply, willingToSponsor, validThrough, skills, diceJobId, positionId …and 7 more
Contacts & demand signalsapplicantLocationRequirements, extractedEmails, extractedPhones, socialProfiles, phoneNumber, applyEmail, contactName
Companycompany, companyUrl, companyLogo, companyProfileUrl, employerType
Pay & budgetsalaryText, salaryMin, salaryMax, salaryCurrency, salaryType
Locationlocation, city, state, country, region
Descriptionsummary, description, descriptionHtml, descriptionMarkdown, descriptionLength
Dates & change trackingpostedDate, 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 requireContact for 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

  1. 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.
  2. Set Max results and choose whether to Fetch full details (on by default).
  3. (Optional) Turn on incremental mode and a notification channel, then Schedule it for ongoing monitoring.
  4. Click Start.
  5. 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.

FieldWhat it does
queryKeyword search (comma-separate for multiple searches).
startUrlsScrape specific Dice.com search or job-detail URLs.
locationCity, state, or zip code (e.g. New York, NY, 94105).
employmentTypeFull-time, Contract, Part-time, Third Party (multi-select).
workplaceTypeRemote, On-Site, Hybrid (multi-select).
postedDateLast 24 hours, 3 days, or 7 days.
easyApplyOnly jobs with Dice Easy Apply.
willingToSponsorOnly employers willing to sponsor a visa.
includeDetailsFetch each job's detail page for richer fields (salary, skills, description).
requireContactKeep only listings with an email, phone, or both — built-in lead-gen filter.
compactReturn only core fields — ideal for AI agents and MCP clients.
incrementalModeEmit only what changed since the last run.
skipRepostsExclude jobs detected as reposts (same content, new listing ID).
notifyOnlyChangesOnly notify on NEW / UPDATED / REAPPEARED records.
maxResultsCap 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 churnof 1,000 trackedbillable recordsyou save
5 %1,0005095 %
15 %1,00015085 %
30 %1,00030070 %

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:

ChannelWhat to configure
✈️ TelegramtelegramToken (from @BotFather) + telegramChatId
💬 SlackslackWebhookUrl (Incoming Webhook URL)
🎮 DiscorddiscordWebhookUrl (channel webhook URL)
🪝 WebhookwebhookUrl 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 churnof 1,000 trackedbillable recordsyou save
5 %1,0005095 %
15 %1,00015085 %
30 %1,00030070 %

🔌 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 ApifyClient
client = 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