Dice Tech Jobs Scraper — IT Jobs, Salary & Remote API avatar

Dice Tech Jobs Scraper — IT Jobs, Salary & Remote API

Pricing

from $0.87 / 1,000 job results

Go to Apify Store
Dice Tech Jobs Scraper — IT Jobs, Salary & Remote API

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

Vitalii Bondarev

Maintained by Community

Actor stats

0

Bookmarked

11

Total users

3

Monthly active users

16 days ago

Last modified

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:

FieldDescription
job_idDice internal job hash
titleJob title
companyCompany name
locationFull location display name
city / state / countryLocation components
remote_typeremote / hybrid / onsite (inferred from authoritative workFromHomeAvailability flag)
senioritysenior / mid / lead / manager / etc. (inferred from title)
salarySalary string (e.g. USD 120,000 - 150,000 per year)
employment_typeFull-time, Part-time, Contract, etc.
employer_typeDirect Hire or Recruiter
easy_applyOne-click Dice Easy Apply available
willing_to_sponsorEmployer willing to sponsor a work visa
posted_atISO 8601 posting date
urlDirect link to the Dice job detail page
summary~500-char job description teaser
global_idStable dice:<job_id> identifier for deduplication
parse_confidenceQuality score 0.0–1.0 (our differentiator — no competitor has this)
warningsList 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 workFromHomeAvailability as a boolean — no guessing from location text.
  • Salary data: Dice consistently populates structured salary ranges (USD min–max format).
  • Recruiter vs. Direct Hire: employer_type tells 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"
}
ParameterDefaultDescription
searchQueriesrequiredOne or more keyword queries
locationblank (US-wide)Location filter string
countryCodeUS2-letter ISO country code
maxItems100Total jobs cap (0 = unlimited)
sortrelevancerelevance or date
workFromHomefalseAPI-level remote filter
employmentTypeblankFULLTIME / PARTTIME / CONTRACTS / THIRD_PARTY
postedDateblankONE_DAY / THREE_DAYS / ONE_WEEK / TWO_WEEKS / ONE_MONTH
titleKeywordblankPost-fetch title substring filter
locationKeywordblankPost-fetch location substring filter
remoteOnlyfalsePost-fetch: keep only remote_type=remote
easyApplyOnlyfalsePost-fetch: keep only Easy Apply jobs
willingToSponsorOnlyfalsePost-fetch: keep only sponsor-willing jobs

Pricing example

RunJobs returnedCost
Trial (1 query, 100-cap default)100$0.09
1,000 jobs (2 queries)1,000$0.90
10,000 jobs10,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 summary field 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.0 means 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

FeatureThis actorIndeed scraperLinkedIn scraper
Salary (structured range)YesPartialRarely
Visa sponsor flagYes (unique to Dice)NoNo
Recruiter vs Direct HireYesNoNo
Easy Apply flagYesNoNo
parse_confidenceYesNoNo
Zero authYesYesNo (needs cookie)
US tech focusYes (90K+ jobs)GenericGeneric
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:

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.