Dice Tech Jobs, Salary & Skills Scraper avatar

Dice Tech Jobs, Salary & Skills Scraper

Pricing

from $6.15 / 1,000 results

Go to Apify Store
Dice Tech Jobs, Salary & Skills Scraper

Dice Tech Jobs, Salary & Skills Scraper

Scrape Dice.com tech job postings in the United States by keyword and location. Extract job title, company, salary, skills, employment type, remote flag and full description. Export to JSON, CSV or Excel.

Pricing

from $6.15 / 1,000 results

Rating

5.0

(1)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

0

Monthly active users

18 days ago

Last modified

Share

Dice Tech Jobs, Salary & Skills Scraper

Dice Tech Jobs, Salary & Skills Scraper

Here is one real result, with every field the actor returns (the long description and descriptionHtml are trimmed here for readability; the actor returns the full text):

{
"companyLogoUrl": "https://d3qscgr6xsioh.cloudfront.net/jLZGbw1aTAehDYuxFRDm_transformed.png?format=webp",
"title": "Python Developer - Remote",
"company": "Robert Half",
"location": "Brandon, Florida, USA",
"city": "Brandon",
"state": "Florida",
"country": "USA",
"remote": false,
"workplaceType": null,
"employmentType": "Full-time",
"employerType": "Recruiter",
"salary": "USD 80,000.00 - 120,000.00 per year",
"salaryMin": 80000,
"salaryMax": 120000,
"salaryCurrency": "USD",
"salaryPeriod": "YEAR",
"easyApply": true,
"willingToSponsor": false,
"postedAt": "2026-07-22T00:02:43Z",
"firstActiveAt": "2026-07-22T00:02:43Z",
"modifiedAt": "2026-08-10T12:05:59Z",
"summary": "Description Full Time Remote Python Developer opening now available. We are looking for an experienced Sr. Python/Flask Full Stack Software Engineer to create and enhance business-critical applications that support day-to-day operations in Brandon, Florida...",
"jobId": "cac8b0d5610486594bd531f55d96663f",
"guid": "de79a865-b4a3-4a9e-b550-74ee0db2e391",
"url": "https://www.dice.com/job-detail/de79a865-b4a3-4a9e-b550-74ee0db2e391",
"companyUrl": "https://www.dice.com/company/rhalfint",
"companyProfileUrl": "https://www.dice.com/company-profile/8c2cf2a7-dcd7-42dc-b8d4-2b90acef1688",
"description": "Description\n\n Full Time Remote Python Developer opening now available. \n\nWe are looking for an experienced Sr. Python/Flask Full Stack Software Engineer... [full text truncated for this README]",
"descriptionHtml": "<b>Description</b><br /><br /> Full Time Remote Python Developer opening now available... [full HTML truncated for this README]",
"skills": null,
"validThrough": "2026-09-10T12:05:59.000Z",
"applicantLocation": "USA",
"observedAt": "2026-08-10T14:39:36.927Z",
"error": null
}

The most complete Dice jobs scraper available. It returns every field the Dice job search exposes for a posting (title, company, location, workplace and employment type, salary min/max with period, posted and expiry dates, sponsor and easy-apply flags), adds the full description and required skills, and offers opt-in AI job summaries, AI skills/seniority extraction, AI salary estimates and contact enrichment so you can target exactly the tech roles you need.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor searches Dice for tech job postings by keyword and location, applies your filters (remote, posted date, employment type, radius, easy apply, willing to sponsor), and writes one normalized record per job to the run's dataset. Each record carries the title, company, location broken into city/state/country, workplace and employment type, salary text with parsed min/max/currency/period, posted, first-active, modified and expiry dates, employer type, and direct links to the job and company.

With withDetails on (the default), each posting is opened to add the full description (plain text and HTML), required skills, and the posting expiry date. Missing source values are returned as null, never invented. Optional paid AI add-ons attach a job summary, structured skills/technologies/seniority, and a salary estimate for jobs without a published salary; a contact-enrichment add-on can attempt a public employer email.

Quickstart

Open the actor, paste this into the input, and press Run. It returns 10 Python developer jobs with full details.

{
"keyword": "python developer",
"location": "Remote",
"maxJobs": 10,
"withDetails": true
}

Only keyword is required. Leave location empty to search all of the United States.

Input reference

FieldTypeRequiredDefaultDescriptionExample
keywordstringyes(none)Job search keyword.devops engineer
locationstringnoRemoteCity or location to search in. Empty searches all of the US.Austin, TX
remotebooleannofalseReturn only fully remote jobs.true
postedDateenumno(any time)Recency filter: ONE (today), THREE (3 days), SEVEN (7 days), or empty.SEVEN
employmentTypeenumno(any)FULLTIME, PARTTIME, CONTRACTS, THIRD_PARTY, or empty.FULLTIME
radiusintegerno30Radius in miles around the location. Applies only when a specific city/state is set.50
easyApplybooleannofalseReturn only jobs that support Dice Easy Apply.true
willingToSponsorbooleannofalseReturn only jobs whose employer indicates visa sponsorship.true
withDetailsbooleannotrueOpen each posting to add full description, skills, and expiry.false
maxJobsintegerno10Maximum number of job postings to collect.50
withJdSummarybooleannofalseAI add-on. Add a 2-3 sentence plain-English job summary. Billed per summary produced. Paid plans only.true
withSkillsbooleannofalseAI add-on. Extract required skills, technologies and seniority as tags. Billed per job tagged. Paid plans only.true
withSalaryEstimatebooleannofalseAI add-on. Estimate a salary range for jobs without a published salary. Billed per estimate. Paid plans only.true
enrichContactsbooleannofalsePaid add-on. Attempt a public business contact email and name for results without an email.true
enrichContactsMaxintegerno50Cap how many results the add-on tries to enrich. Free accounts capped at 3.20

Output reference

One dataset item per job. Types: string, number, integer, boolean, string[], or null when the source value is absent.

FieldTypeDescription
companyLogoUrlstringCompany logo image URL, or null.
titlestringJob title.
companystringEmployer / company name.
locationstringFull location string.
citystringCity parsed from the location.
statestringState parsed from the location.
countrystringCountry parsed from the location.
remotebooleantrue when the job is fully remote.
workplaceTypestringWorkplace type when published, else null.
employmentTypestringEmployment type, for example Full-time.
employerTypestringEmployer type, for example Recruiter.
salarystringSalary text as published, or null.
salaryMinnumberParsed minimum salary, or null.
salaryMaxnumberParsed maximum salary, or null.
salaryCurrencystringSalary currency, or null.
salaryPeriodstringSalary period, for example YEAR, or null.
easyApplybooleantrue when Dice Easy Apply is supported.
willingToSponsorbooleantrue when the employer indicates visa sponsorship.
postedAtstringISO 8601 posted timestamp.
firstActiveAtstringISO 8601 first-active timestamp.
modifiedAtstringISO 8601 last-modified timestamp.
summarystringShort summary snippet of the description.
jobIdstringDice internal job ID.
guidstringDice job GUID (used in the job URL).
urlstringJob detail URL.
companyUrlstringCompany page URL.
companyProfileUrlstringCompany profile URL.
descriptionstringFull plain-text description (with details on).
descriptionHtmlstringFull HTML description (with details on).
skillsstring[]Required skills listed on the posting (with details on), else null.
validThroughstringISO 8601 posting expiry (with details on).
applicantLocationstringEligible applicant location.
aiJdSummarystringAI job summary (opt-in), else absent.
aiSkillsstring[]AI-extracted skills (opt-in), else absent.
aiTechnologiesstring[]AI-extracted technologies/tools (opt-in), else absent.
aiSenioritystringAI seniority level (opt-in), else absent.
aiSalaryEstimateMinnumberAI estimated minimum salary (opt-in), else absent.
aiSalaryEstimateMaxnumberAI estimated maximum salary (opt-in), else absent.
aiSalaryEstimateCurrencystringAI estimate currency (opt-in), else absent.
aiSalaryEstimateBasisstringAI estimate basis/period (opt-in), else absent.
aiSalaryEstimateConfidencestringAI estimate confidence (opt-in), else absent.
enrichedEmailstringContact-enrichment email when found.
enrichedContactNamestringContact-enrichment person name when found.
enrichedJobTitlestringContact-enrichment job title when found.
enrichedEmailStatusstringDeliverability status of the enriched email.
enrichedSourcestringSource URL the enriched contact was found on.
enrichedConfidencenumberConfidence score of the enriched contact.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringPresent only on a failed item; carries the failure reason.

Example output record

Real record from a live run (input {"keyword": "python developer", "location": "Remote", "maxJobs": 10, "withDetails": true}), with long text fields trimmed for brevity:

{
"title": "Python Developer - Remote",
"company": "Robert Half",
"location": "Brandon, Florida, USA",
"city": "Brandon",
"state": "Florida",
"country": "USA",
"remote": false,
"employmentType": "Full-time",
"employerType": "Recruiter",
"salary": "USD 80,000.00 - 120,000.00 per year",
"salaryMin": 80000,
"salaryMax": 120000,
"salaryCurrency": "USD",
"salaryPeriod": "YEAR",
"easyApply": true,
"willingToSponsor": false,
"postedAt": "2026-07-22T00:02:43Z",
"modifiedAt": "2026-08-10T12:05:59Z",
"jobId": "cac8b0d5610486594bd531f55d96663f",
"guid": "de79a865-b4a3-4a9e-b550-74ee0db2e391",
"url": "https://www.dice.com/job-detail/de79a865-b4a3-4a9e-b550-74ee0db2e391",
"companyUrl": "https://www.dice.com/company/rhalfint",
"skills": null,
"validThrough": "2026-09-10T12:05:59.000Z",
"applicantLocation": "USA",
"observedAt": "2026-08-10T14:39:36.927Z",
"error": null
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~dice-jobs-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"keyword":"python developer","location":"Remote","maxJobs":10,"withDetails":true}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~dice-jobs-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"keyword":"data scientist","location":"Austin, TX","employmentType":"FULLTIME","maxJobs":100}'

Apify CLI:

apify call scrapers_lat/dice-jobs-scraper \
--input '{"keyword":"devops engineer","remote":true,"maxJobs":25}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per job record returned (result event). See the pricing tab for the current per-result price.
  • Details and AI add-ons are billed separately. Detail enrichment, AI summary, AI skills, AI salary estimate, and contact enrichment each charge only when they return usable output and only when enabled.
  • No charge on failure. If a run errors, the actor writes an item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 jobs per run, and contact enrichment is capped at 3 attempts. AI add-ons are paid plans only. Upgrade for higher limits.

FAQ and troubleshooting

A run returned 0 jobs. Why? The keyword plus filters matched nothing. Loosen filters (remove postedDate or employmentType, widen radius, or clear location). Zero-result runs are not charged.

Why is salary null? Many Dice postings do not publish a salary. Enable withSalaryEstimate to attach an AI market estimate from the title, location, and description.

Why is skills null? Skills come from the detail page. Turn on withDetails (the default). Some postings still do not list structured skills; enable withSkills for AI-extracted tags.

How do I find visa-sponsoring roles? Set willingToSponsor to true to return only jobs whose employer indicates sponsorship.

Is this an official Dice tool? No. This actor is independent and has no affiliation with Dice. It reads only data that is publicly available on the job board. Use it in accordance with the source's terms.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with Dice. Accesses only publicly available job board data. Use in accordance with the source's terms of service.