Dice Tech Jobs Scraper avatar

Dice Tech Jobs Scraper

Pricing

from $0.80 / 1,000 results

Go to Apify Store
Dice Tech Jobs Scraper

Dice Tech Jobs Scraper

Scrape tech job postings from Dice.com — filter by keyword, location and radius, skill, or employment type. Get one normalized row per job with title, company, location, employment type, and optional skill tags, ready for CSV, JSON, or API export.

Pricing

from $0.80 / 1,000 results

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share


🎯 What this scrapes

Dice is a dedicated tech-job board listing developer, DevOps, data, and IT-contract roles that general job boards often miss. This Actor searches Dice's own listings and writes one structured row per posting: title, company, location, employment type, a remote flag, and (optionally) the skill tags Dice attaches to each role. Filter by keyword, location + radius, skill, or employment type — or leave everything blank to pull the newest postings site-wide.

🔥 What we handle for you

  • 🛡️ We rotate browser fingerprintscurl-cffi impersonation (Chrome / Firefox / Safari) so the target sees real-browser TLS, not Python.
  • 🌐 We rotate residential proxies through Apify Proxy on every block — fresh session ID, fresh exit IP.
  • 🔁 We retry with exponential backoff on 408 / 429 / 5xx and honour Retry-After — up to 5 attempts per page.
  • 🧱 Rate-limit-aware pacing — when the target pushes back, we slow down instead of getting banned.
  • 🧊 We keep the dataset clean — Pydantic-validated rows, ISO-8601 timestamps, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
  • 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge.

💡 Use cases

  • Tech recruiting pipelines — pull fresh Dice postings that match a role profile into your ATS or sourcing sheet.
  • Market-rate research — aggregate published salary/rate text by skill and location to benchmark comp bands.
  • Contract/DevOps sourcing — filter by Employment type to isolate Contract and Third Party roles Dice specializes in.
  • Remote-role monitoring — track newly posted remote tech jobs across a keyword or skill on a schedule.

⚙️ How to use it

  1. Click Try for free at the top of the page.
  2. Fill in the input form — most fields have sensible defaults.
  3. Click Start. Output streams into the run's dataset.
  4. Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.

🔌 Integrate it

Pull results straight into a script with the Apify Python client:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("DevilScrapes/dice-tech-jobs-scraper").call(
run_input={"keyword": "python developer", "location": "Austin, TX"}
)
for job in client.dataset(run["defaultDatasetId"]).iterate_items():
print(job["title"], job["company"], job["apply_url"])

📥 Input

FieldTypeRequiredDefaultNotes
keywordstringno'Python Developer'Free-text search term matched against job titles and descriptions. Leave empty to browse all postings.
locationstringno'Austin, TX'City, state, or ZIP to center the search on, e.g. 'Austin, TX'. Leave empty to search nationwide.
skillstringno'—'Single skill or technology to filter by, e.g. 'Kubernetes'. Leave empty to skip skill filtering.
radiusintegerno30Search radius in miles around Location. Ignored when Location is empty.
includeRemotebooleannoTrueInclude postings Dice tags as remote-eligible in addition to the Location + Radius match.
employmentTypestringno'—'Filter by employment type. Leave empty to include all types.
fetchSkillsbooleannoFalseWhen enabled, fetch each job's full skill-tag list from its detail page. Adds one extra request per job.
maxResultsintegerno100Hard cap on dataset rows for this run.
proxyConfigurationobjectno{'useApifyProxy': True}Apify Proxy configuration. Standard (non-residential) group by default — override here if you need a different group.

Example input

{
"keyword": "python developer",
"location": "Austin, TX",
"radius": 30,
"includeRemote": true,
"maxResults": 3,
"proxyConfiguration": {
"useApifyProxy": true
}
}

📤 Output

Every row is one dataset item.

FieldTypeNotes
job_idstringDice internal job ID — stable across runs.
titlestringJob title.
companystringHiring company name.
location_displaystringRaw location string as shown on the listing.
is_remotebooleanTrue when Dice tags the posting as remote-eligible.
workplace_typesarraye.g. ["On-Site"], ["Remote"], ["Hybrid"].
employment_type['string', 'null']'Full-time' / 'Contract' / 'Third Party' as tagged by Dice; null if not shown.
employer_type['string', 'null']e.g. 'Direct Hire' / 'Recruiter'; null if not shown.
easy_applybooleanTrue when Dice's one-click Easy Apply is available.
skillsarraySkill tags; populated only when Fetch skill tags is enabled, else [].
posted_datestringISO-8601 posting timestamp as tagged by Dice.
modified_date['string', 'null']ISO-8601 last-modified timestamp; null if not shown.
summary['string', 'null']Truncated job summary snippet.
description_full['string', 'null']Full description; populated only when Fetch skill tags is enabled.
apply_type['string', 'null']e.g. 'External'; populated only when Fetch skill tags is enabled.
salary_text['string', 'null']Raw salary/rate string as published; null when Dice doesn't show one.
apply_urlstringCanonical Dice job-detail URL.
scraped_atstringISO-8601 UTC row-construction timestamp.

Example output

{
"job_id": "b4b1e2f7c9",
"title": "Senior Python Developer",
"company": "Example Tech Inc.",
"location_display": "Austin, TX",
"is_remote": true,
"workplace_types": ["On-Site"],
"employment_type": "Full-time",
"employer_type": "Direct Hire",
"easy_apply": true,
"skills": [
"Python",
"Django",
"AWS"
],
"posted_date": "2026-07-30T00:00:00+00:00",
"salary_text": "$120,000 - $150,000",
"apply_url": "https://www.dice.com/job-detail/b4b1e2f7c9",
"scraped_at": "2026-08-01T14:00:00+00:00"
}

💰 Pricing

Pay-Per-Event — you pay only when these events fire:

EventUSDWhat it is
actor-start$0.01One-off warm-up charge per run
result$0.002Per dataset item

Example: 1 000 results at the rates above ≈ $2.01. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.

🚧 Limitations

v1 covers Dice.com's US tech-job listings surface only — the DHI-owned ClearanceJobs/eFinancialCareers properties are separate sites and out of scope. Skill tags, full descriptions, and apply_type require Fetch skill tags (one extra request per job). posted_date and modified_date are the raw ISO-8601 values Dice itself publishes at list level — we don't infer or estimate a date when Dice doesn't supply one.

❓ FAQ

Do I need a Dice account or API key?

No. This Actor scrapes Dice's own publicly listed job postings — no login, no API key.

What happens if I leave every filter blank?

The Actor pulls the newest postings site-wide, up to Max results.

Does skills always populate?

Only when Fetch skill tags is enabled; each job then costs one extra detail-page request. Otherwise skills is an empty list.

Why is salary_text sometimes null?

Dice doesn't require employers to publish a salary or rate — we surface the raw text only when the listing shows one, never an estimate.

💬 Your feedback

Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.