Dice Tech Jobs Scraper
Pricing
from $3.00 / 1,000 results
Dice Tech Jobs Scraper
Scrape technology job listings from Dice.com in bulk - job title, company, location, remote type, salary range, employment type, posted date and apply URL. Search many keywords and locations at once, paginated deep. One clean JSON/CSV/Excel row per job. No login or API key required.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Nicolas van Arkens
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Dice Tech Jobs Scraper — export Dice.com job listings to JSON, CSV & Excel
Scrape technology job listings from Dice.com in bulk — no login, no API key, no browser automation. Give it a list of keywords (job titles or skills) and, optionally, a list of locations, and it returns one clean, structured row per job: title, company, location, remote type, salary range, employment type, posted date and a direct apply link.
Dice is one of the largest U.S. tech-focused job boards. This actor turns its search results into a spreadsheet or dataset you can filter, dedupe and load anywhere.
What you can do with it
- Recruiting & sourcing — track who is hiring for a stack or role across cities, feed an ATS/CRM.
- Job-market & salary research — pull thousands of postings to analyze pay ranges, remote share, in-demand skills.
- Aggregators & job boards — syndicate fresh Dice tech listings into your own site.
- Sales & lead gen — companies actively hiring engineers are companies with budget and growth.
- Competitive intelligence — watch which competitors are staffing up and for what.
Features
- ✅ Bulk by design — every input is a list. Search many keywords × many locations in one run (a cross product).
- ✅ Deep pagination — automatically walks every result page (30 jobs/page) up to your limit; bounded by Dice's own last-page marker so it never loops.
- ✅ Structured salary — parses Dice's messy salary strings into
salaryMin/salaryMax/salaryCurrency/salaryPeriod, keeping the raw text too. - ✅ Rich fields — company, location breakdown, remote/hybrid/on-site, employment type, posted & modified dates, summary, apply URL.
- ✅ Global de-duplication — the same posting seen under multiple searches is returned (and billed) only once.
- ✅ Filters — remote-only, employment type (Full-time / Contract / Part-time / Third Party), posted-within-days, search radius.
- ✅ Power-user URLs — paste any
dice.com/jobssearch URL (with filters already applied) and it scrapes it deep.
Input
| Field | Type | Description |
|---|---|---|
searchTerms | array of strings | Keywords / job titles / skills, e.g. ["python", "data engineer"]. Each is searched in each location. Leave empty to scrape the whole feed. |
locations | array of strings | Dice-format locations, e.g. ["New York, NY, USA", "Austin, TX, USA"]. Empty = nationwide. |
remoteOnly | boolean | Only remote-eligible jobs. |
employmentTypes | array | Any of Full-time, Contract, Part-time, Third Party. Empty = all. |
postedWithinDays | integer | 1 = Today, 2-3 = Last 3 days, 4-7 = Last 7 days (Dice's only windows). |
radiusMiles | integer | Radius around each location, in miles. |
searchUrls | array of strings | Full dice.com/jobs?... URLs to scrape deep (power users). |
maxResultsPerSearch | integer | Max jobs per keyword+location pair. Default 300. |
proxyConfiguration | object | Apify Residential/US recommended; the actor auto-rotates on a block. |
Example input
{"searchTerms": ["python", "data engineer"],"locations": ["New York, NY, USA"],"remoteOnly": false,"employmentTypes": ["Full-time", "Contract"],"maxResultsPerSearch": 300,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "US" }}
Output
Each job is one dataset item. Real sample (a live Dice listing):
{"jobId": "43d7cbc4c085fc2da43f6fffa5a6c4a1","guid": "c5c1cbfa-6056-495e-be9b-9dcec380d537","title": "Lead Software Engineer (Java, Python, AWS)","company": "Capital One","companyLogo": "https://d3qscgr6xsioh.cloudfront.net/...muselogo.webp?format=webp","companyProfileId": "3a49da6b-f646-4a86-a7fb-6800d711de1c","clientBrandId": "10225989","employmentType": "Full-time","employerType": "Direct Hire","city": "New York","state": "New York","region": "NY","country": "USA","location": "New York, New York, USA","isRemote": false,"workplaceTypes": ["On-Site"],"postedDate": "2026-07-17T20:51:58Z","modifiedDate": "2026-07-18T20:55:40Z","salaryRaw": "USD 215,200.00 - 245,600.00 per year","salaryMin": 215200.0,"salaryMax": 245600.0,"salaryCurrency": "USD","salaryPeriod": "year","easyApply": false,"score": 11361.719,"summary": "Lead Software Engineer (Java, Python, AWS) Do you love building and pioneering...","jobUrl": "https://www.dice.com/job-detail/c5c1cbfa-6056-495e-be9b-9dcec380d537","searchTerm": "python","searchLocation": "New York, NY, USA","scrapedAt": "2026-07-19T12:00:00Z"}
Field notes
salaryMin/salaryMax/salaryPeriod— Dice salary text is free-form and inconsistent ("USD 215,200 - 245,600 per year","60 - 65","Depends on Experience"). The actor extracts the numbers and reads/infers the period (hourly vs annual) best-effort;salaryRawalways keeps the original. Not every job posts a salary.workplaceTypes— a list, e.g.["Remote"],["On-Site", "Hybrid"].jobUrl—dice.com/job-detail/...for most jobs,dice.com/direct-apply/...for Easy Apply.
How many results can I get?
As many as Dice lists. A single keyword+location commonly has thousands of postings
across ~170 pages; the actor paginates to maxResultsPerSearch. For very large pulls, add
several locations — each is searched independently and results are de-duplicated globally.
FAQ
Do I need a Dice account or API key? No. The data is read from Dice's public, server-rendered search pages.
Is this allowed? The actor collects only publicly available job-posting data. Respect Dice's Terms of Service and applicable law; you are responsible for how you use the output.
Why Apify Residential proxy? Dice can throttle high-volume datacenter traffic. Residential US is the safe default; the actor rotates to a fresh session automatically if a page is blocked.
Some rows have no salary / location. Those fields are simply not present on every Dice posting — that is a gap in the source, not the scraper.
Can I filter by experience level or salary? Apply that filter on dice.com in your browser,
copy the URL, and paste it into searchUrls.
Pricing
This actor is pay-per-result: you are charged once per job row returned. Blocked or empty pages are never charged, and duplicate postings are billed only once.