Dice Job Scraper - US Tech Jobs, Salaries & Skills
Pricing
from $1.20 / 1,000 job scrapeds
Dice Job Scraper - US Tech Jobs, Salaries & Skills
Scrape US tech jobs from Dice.com with parsed salary ranges, the full job description and the skills list Dice tags each posting with. Filter by keyword, location, radius, employment type, remote, Easy Apply and visa sponsorship. No login, no API key.
Pricing
from $1.20 / 1,000 job scrapeds
Rating
0.0
(0)
Developer
WebData Labs
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Dice Job Scraper
Scrapes US tech jobs from Dice.com — the board recruiters actually use to fill engineering, data and infrastructure roles.
Most Dice scrapers hand you the search listing: a title, a company, a location and a summary cut off mid-sentence. This one also opens each job's own page, so you get the complete description, the skills Dice tagged the posting with, and a salary parsed into numbers instead of a string you have to clean up yourself.
No login, no API key, no proxy configuration to think about.
What you get per job
{"jobId": "1d79deed-7860-4d5c-8a3a-1e7db2ab62c6","legacyJobId": "3ccd3a6aa0957abf546a91b7c14e0405","title": "Machine Learning Engineer / UNICORN / Hybrid in SF","companyName": "Motion Recruitment Partners, LLC","companyId": "10105282","companyUrl": "https://www.dice.com/company/10105282","companyLogoUrl": "https://d3qscgr6xsioh.cloudfront.net/mYivInZASxip5W4N3Dhp_transformed.png?format=webp","location": "San Francisco, California, USA","city": "San Francisco","state": "California","stateCode": "CA","country": "USA","postalCode": "94120","workFromHome": false,"employmentType": "Full-time","employerType": "Recruiter","easyApply": true,"willingToSponsor": false,"salaryText": "$200000 - $300000","salaryMin": 200000.0,"salaryMax": 300000.0,"salaryCurrency": "USD","salaryPeriod": "year","postedDate": "2026-08-20T00:03:43Z","modifiedDate": "2026-09-06T00:07:40Z","expiresAt": "2026-10-07T00:07:40.000Z","skills": ["Salesforce.com", "Research and Development", "Roadmaps", "Innovation", "Python", "TensorFlow", "PyTorch", "Time Series", "..."],"summary": "A health technology company at the top of their industry is seeking a Machine Le ...","descriptionText": "A health technology company at the top of their industry is seeking a Machine Learning Engineer to join its re ...","descriptionHtml": "A health technology company at the top of their industry is ...","url": "https://www.dice.com/job-detail/1d79deed-7860-4d5c-8a3a-1e7db2ab62c6","searchTerm": "machine learning","scrapedAt": "2026-09-06T10:06:40Z"}
skills, descriptionText, descriptionHtml, expiresAt and postalCode are filled only
when Include full description and skills is on. Everything else comes back on every run.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
searchTerms | array | [] | Keywords, one search per term. Leave empty to scrape the whole board — Dice serves about 104,000 live US jobs with no keyword at all. |
location | string | — | Free text, geocoded by Dice: New York, NY, USA, Texas, USA, 94105, or Remote. Empty searches the whole United States. |
radiusMiles | integer | 30 | How far from location to search. Ignored when no location is set. |
postedWithinDays | select | any time | 1, 3 or 7. See the note below on why there is no 30-day option. |
employmentType | select | any | Full-time, Part-time, Contract, Third party. |
employerType | select | any | Direct hire (the employer posted it) or Recruiter (a staffing agency did). |
remoteOnly | boolean | false | Dice's own Remote workplace filter. |
easyApplyOnly | boolean | false | Jobs you can apply to inside Dice. |
willingToSponsorOnly | boolean | false | Employers who marked the posting as willing to sponsor a visa. |
sortBy | select | relevance | relevance or datePosted (newest first). |
includeDescription | boolean | false | Also opens each job's page for the full description and the skills list. One extra request per job. |
maxResults | integer | 200 | Stop after this many jobs. |
onlyNewJobs | boolean | false | Return only jobs no previous run has delivered. |
Watch out for these (they are Dice's limits, not ours)
One search stops at 10,000 jobs. Dice refuses to page past its 10,000th result for any
single query — and it reports that refusal as an HTTP 429 with a message about crawling,
which looks like a rate limit but is a fixed ceiling. To go deeper, split the work: several
searchTerms, or the same term across several location values. A run that hits the
ceiling says so in the run summary rather than failing.
Dice only offers 1, 3 and 7 day windows. There is no 14- or 30-day filter on Dice, and
sending one makes Dice quietly return the unfiltered board instead of erroring. That is
why postedWithinDays has three options: a fourth would be a lie. The same goes for the
other filters — anything Dice would silently swallow is rejected here with a warning in the
log, so a filtered run is really filtered.
workFromHome is not the same thing as remoteOnly. Dice keeps two separate concepts:
the Remote workplace type that remoteOnly filters on, and a per-posting
work-from-home flag. Of 200 jobs Dice returned for its own Remote filter, 195 carried the
work-from-home flag as false. We report the raw flag under its own name rather than
pretending they are one field.
Salary is not always a number. Roughly two thirds of Dice postings carry a salary, and
some of those say Depends on Experience or To define rather than a figure. Those rows
keep salaryText and leave salaryMin/salaryMax null instead of inventing a number.
Dice is a United States board. For the same query it serves about 104,000 US jobs, 95 Canadian and 1 British. There is no country input because there is nothing outside the US worth offering.
Monitoring a search
Turn on onlyNewJobs and put the Actor on a schedule. It remembers every job it has
delivered and returns only the ones it has not, then stops as soon as a page holds nothing
new — so a daily run bills you for the day's new postings and nothing else. Pair it with
sortBy: datePosted and postedWithinDays: 1 for a clean daily feed.
The memory persists across runs of the same Actor or Task. Running it as a saved Task and running it directly keep separate histories.
Ready-made searches
Each of these is a saved task you can run as-is or copy and edit:
| Task | What it returns |
|---|---|
| Python jobs in New York | Python roles within 30 miles of NYC |
| Remote software engineer jobs | Everything Dice flags as Remote |
| Data engineer jobs in San Francisco | Data engineering around the Bay |
| DevOps jobs posted today | Last 24 hours, newest first |
| Contract developer jobs in Texas | Contract roles with hourly rates |
| Visa sponsorship tech jobs | Employers offering sponsorship |
| Jobs with full descriptions and skills | The complete description plus skills |
| New jobs since the last run | Delta mode on a daily schedule |
Pricing
Pay per result: you are charged for each job returned, and nothing else. A run that Dice answers with no matches costs nothing.
🧩 Related Actors
- Company Career Page Jobs API - read jobs off a company's own careers page when it is not on any board.
- ATS Hiring Monitor API - watch a set of companies and report only what changed since the last run.
- BuiltIn Jobs Scraper - US tech-hub roles with the skills each posting asks for.
- Wellfound Jobs Scraper - startup roles with equity ranges, funding stage and the ATS each company runs.
- Website Email Scraper - turn any list of domains into emails, phone numbers and social profiles.
FAQ
Do I need a Dice account? No. Nothing here is behind a login.
Can I get the applicant's or recruiter's contact details? No. Dice does not publish them, and this Actor does not guess at them.
Why is summary shorter than descriptionText? summary is what Dice's search API
returns and it is truncated at roughly 500 characters. The full text needs
includeDescription, which opens the job's own page.
Some jobs come back with an empty skills list. Those postings genuinely have no skills
tagged on Dice — we checked the pages. How many carry them depends on the query: 37 of 40 on
a python search, 41 of 60 on machine learning.
How fresh is the data? Live. Each run queries Dice at the moment it runs; postedDate
and modifiedDate come straight from Dice.