Dice Tech Jobs Scraper — IT Jobs, Salary & Remote API
Pricing
from $0.87 / 1,000 job results
Dice Tech Jobs Scraper — IT Jobs, Salary & Remote API
Scrape tech job postings from Dice.com via the public search API. Get title, company, location, salary, remote type, seniority, employer type, easy-apply flag and sponsor flag. Multi-query batch, keyword filters, zero auth, zero proxy.
Pricing
from $0.87 / 1,000 job results
Rating
0.0
(0)
Developer
Vitalii Bondarev
Maintained by CommunityActor stats
0
Bookmarked
11
Total users
3
Monthly active users
16 days ago
Last modified
Categories
Share
Dice Tech Jobs Scraper | $0.90/1K — Salary + Visa Sponsor Data
For tech recruiters targeting H1B/OPT candidates, data teams benchmarking US tech salaries, and job aggregators building US tech boards.
Pricing: $0.90/1,000 jobs — flat per-result; salary, remote type and the visa-sponsor flag are all included, with no add-on fees.
Dice.com is the #1 US tech job board with 90,000+ live listings. Unlike generic scrapers, you get structured salary ranges and a willing-to-sponsor visa flag — both rare in job data. No login, no proxy.
Scrape tech job postings from Dice.com using the public search API. Get structured data on 90,000+ live US tech jobs with no auth, no proxy, and no browser required.
What you get
One dataset row per job posting with 22 fields:
| Field | Description |
|---|---|
job_id | Dice internal job hash |
title | Job title |
company | Company name |
location | Full location display name |
city / state / country | Location components |
remote_type | remote / hybrid / onsite (inferred from authoritative workFromHomeAvailability flag) |
seniority | senior / mid / lead / manager / etc. (inferred from title) |
salary | Salary string (e.g. USD 120,000 - 150,000 per year) |
employment_type | Full-time, Part-time, Contract, etc. |
employer_type | Direct Hire or Recruiter |
easy_apply | One-click Dice Easy Apply available |
willing_to_sponsor | Employer willing to sponsor a work visa |
posted_at | ISO 8601 posting date |
url | Direct link to the Dice job detail page |
summary | ~500-char job description teaser |
global_id | Stable dice:<job_id> identifier for deduplication |
parse_confidence | Quality score 0.0–1.0 (our differentiator — no competitor has this) |
warnings | List of data-quality warnings |
Why this scraper
- Dice-specific: unlike generic job scrapers, targets the 90k+ Dice US tech job database directly.
- Authoritative remote flag: Dice provides
workFromHomeAvailabilityas a boolean — no guessing from location text. - Salary data: Dice consistently populates structured salary ranges (USD min–max format).
- Recruiter vs. Direct Hire:
employer_typetells you if you're talking to the hiring company or an agency. - Visa sponsor flag: unique to Dice — great for filtering H1B/OPT-eligible roles.
- Easy Apply flag: know before you scrape whether one-click apply is available.
- parse_confidence: every row includes a quality score — catch API changes before they break your pipeline.
- Zero cost infra: public API, no proxy, no auth, $0 COGS.
Input
{"searchQueries": ["python developer", "data engineer"],"location": "San Francisco, CA","maxItems": 200,"sort": "relevance","workFromHome": false,"employmentType": "FULLTIME","postedDate": "ONE_WEEK"}
| Parameter | Default | Description |
|---|---|---|
searchQueries | required | One or more keyword queries |
location | blank (US-wide) | Location filter string |
countryCode | US | 2-letter ISO country code |
maxItems | 100 | Total jobs cap (0 = unlimited) |
sort | relevance | relevance or date |
workFromHome | false | API-level remote filter |
employmentType | blank | FULLTIME / PARTTIME / CONTRACTS / THIRD_PARTY |
postedDate | blank | ONE_DAY / THREE_DAYS / ONE_WEEK / TWO_WEEKS / ONE_MONTH |
titleKeyword | blank | Post-fetch title substring filter |
locationKeyword | blank | Post-fetch location substring filter |
remoteOnly | false | Post-fetch: keep only remote_type=remote |
easyApplyOnly | false | Post-fetch: keep only Easy Apply jobs |
willingToSponsorOnly | false | Post-fetch: keep only sponsor-willing jobs |
Pricing example
| Run | Jobs returned | Cost |
|---|---|---|
| Trial (1 query, 100-cap default) | 100 | $0.09 |
| 1,000 jobs (2 queries) | 1,000 | $0.90 |
| 10,000 jobs | 10,000 | $9.00 |
Pay per result. You are charged per job pushed to the dataset.
Use cases
- Tech recruiters: source candidates from live Dice listings at scale.
- Market intelligence: salary benchmarks, demand by skill, remote vs. on-site ratios.
- Job aggregators: pull fresh US tech jobs daily with structured salary + remote data.
- Research: employer type distribution (direct hire vs recruiter), sponsor rates by company.
Output sample
{"job_id": "abc12345xyz","title": "Senior Python Developer","company": "Acme Corp","location": "San Francisco, CA","remote_type": "remote","seniority": "senior","salary": "USD 140,000 - 175,000 per year","employment_type": "Full-time","employer_type": "Direct Hire","easy_apply": true,"willing_to_sponsor": false,"posted_at": "2026-06-01T14:00:00+00:00","url": "https://www.dice.com/job-detail/abc12345xyz","parse_confidence": 1.0,"scraped_at": "2026-06-05T10:00:00+00:00"}
FAQ
Do I need an API key or proxy? No. Dice's public search API requires no login or proxy.
What formats can I export? JSON, CSV, Excel, or JSONL — from the Apify dataset UI or REST API.
Can I filter to visa-sponsor-only jobs?
Yes — set willingToSponsorOnly: true. Only rows where Dice marks the employer as willing to sponsor are returned.
What if a query returns 0 results? The actor logs the query as returning no results and continues — no crash, no charge for that query.
Notes
- Dice.com is a US-focused tech job board; most results are US-based.
- The
summaryfield is a ~500-char teaser. Full job description HTML requires a logged-in session and is not available without auth. - Skills are not returned as a structured array by the public API; they appear in the title and summary text.
parse_confidence=1.0means all mandatory fields (id, title, company, location, url, date) were present and parsed cleanly.
Use with AI agents (MCP)
This actor is available via Apify's MCP server. Connect it to any MCP-compatible agent (Claude, n8n, Make) to pull live Dice tech job data on demand — no code required.
https://mcp.apify.com/?tools=bovi/dice-jobs-scraper
Vs. competitors
| Feature | This actor | Indeed scraper | LinkedIn scraper |
|---|---|---|---|
| Salary (structured range) | Yes | Partial | Rarely |
| Visa sponsor flag | Yes (unique to Dice) | No | No |
| Recruiter vs Direct Hire | Yes | No | No |
| Easy Apply flag | Yes | No | No |
parse_confidence | Yes | No | No |
| Zero auth | Yes | Yes | No (needs cookie) |
| US tech focus | Yes (90K+ jobs) | Generic | Generic |
| Price | $0.90/1K | $3–5/1K | $5–10/1K |
This actor is not affiliated with or endorsed by Dice.com or DHI Group, Inc.
Integrations
Built for tech recruiters and salary-benchmarking teams extracting structured US tech job listings with pay and visa fields — the JSON/dataset output drops into the tools you already run, no glue code:
- n8n / Make / Zapier — trigger a run or pipe every new dataset item into 500+ apps (Google Sheets, Airtable, Slack, HubSpot, your database) with no code: n8n, Make, Zapier.
- Webhooks — fire your own endpoint the moment a run finishes, to push results straight into your pipeline (docs).
- MCP server — expose this actor as a tool to Claude, Cursor, or any MCP client so an AI agent can pull this data mid-conversation (guide).
- API & SDKs — fetch the dataset as JSON, CSV, or Excel through the Apify REST API or the Python / JS SDKs.
See all Apify integrations.
More scrapers from our toolkit
Building a data pipeline? These actors pair well with this one — each runs on your own Apify account with the same pay-per-result pricing, no subscription:
- Glassdoor Scraper
- Greenhouse Job Scraper
- Greenhouse, Lever & Ashby Job Scraper
- Jobstreet Jobs Scraper
- Lever Job Scraper
- Naukri Jobs Scraper
Chain any of them together from the Integrations tab (the Run succeeded trigger) to build a multi-step workflow — one actor's output feeds the next.
Usage statistics
This Actor creates a small, content-free summary at the end of each run. It is used only to monitor reliability and improve this Actor. A copy is saved as USAGE_STATS in your own Apify key-value store, so you can see the exact record created for your run.
Set disableUsageStats to true in the input to opt out. Nothing is sent then; your USAGE_STATS record only says that statistics were disabled.
Only these fields are recorded:
- schema version, Actor name and build number;
- UTC start and finish hour (not a precise timestamp);
- run duration, number of results and time to the first result, each as a coarse range;
- whether the result was empty, the end status, and an error type from a fixed list;
- memory setting and counts of charged events;
- names of the input fields you set, never their values;
- the selected option for input fields that offer a fixed list of choices (for example a sort order).
We do not collect input text, search terms, URLs, domains, usernames, email addresses, names, proxy credentials, tokens, scraped records, output items, raw error messages, stack traces, or hashes of any of those values. Records are kept for no longer than 13 months, used only as aggregated operational statistics, and never sold or shared.
Additional fields (Phase 2)
This Actor also records your Apify user ID, whether Apify marks the account as paying, the size range of list inputs, the selected country when the input offers a fixed list of countries, and one category from a fixed Actor taxonomy. We use these fields only for aggregate reliability, repeat-use and cross-Actor analysis; reports suppress any cell with fewer than five distinct users.
The same disableUsageStats: true input flag turns these fields off too. The user ID is removed after 13 months; we do not export, sell, share, or attempt to re-identify this data.
Run-outcome signals (v2)
To learn whether a run did what it was asked to do, the record also holds a few more coarse ranges and yes/no flags. None of them contains content:
- the result limit you asked for (a range, when the input has one) and what share of it was delivered;
- results delivered per input item you listed (a range);
- output quality as ranges: how fully the result fields were filled, the share of rows that look like errors, the share of duplicate rows, and how many different fields appeared. These are counted in memory while results are saved; no result content is kept;
- how the run was started (console, API, schedule, webhook, another Actor);
- how it ended: stopped by you, timed out, reached the requested limit, stopped by the charge limit, and how many times the platform moved the run;
- if this Actor reports it: how many items to process worked or failed (ranges) and one failure reason from a fixed list;
- a short code made from the names of the input fields you set, never their values.
Repeat-run fingerprint (v2)
When your Apify user ID is recorded (see above), the record also holds an 8-character one-way code made from your input (proxy settings left out) and this Actor's name. It only lets us see that the same account ran the same input again soon after an unsatisfying run; we never see the input itself. It is stored only in the database, never published, and reports use it in aggregate with the same five-user minimum. It is the one exception to the statement above that no hashes are collected, and disableUsageStats: true turns it off.