Skip to content
    ↑↓ to choose · Enter to open

    · 13 min read

    Dice.com Tech Jobs Scraper: 23 Data Fields per Record (2026)

    By CrawlerBros Engineering Team

    Each record carries 23 output fields, including stable job identifiers, parsed salary ranges, workplace flags, and full description text. Priced at $2.00 per 1,000 results on Apify's free plan, this Actor collects structured US tech listings directly from public search and detail pages. You can run it without a Dice account, login, or manual proxy setup. It is built for engineering teams, recruiters, and market analysts who need structured tech job data. It is not for teams seeking direct candidate contact details or phone numbers, as the dataset contains only job posting details.

    Try it: open Dice.com Tech Jobs Scraper on Apify, sign in on the free plan and run the prefilled example.

    Can you try Dice.com Tech Jobs Scraper before paying?

    Yes. Apify's free plan includes $5.00 of prepaid usage every month and asks for no credit card. At $0.002 per result, that covers up to 2,500 results of Dice.com Tech Jobs Scraper a month, before run-start charges and platform usage.

    The example request further down caps maxItems at 3, so a first run returns at most 3 results and costs at most $0.006 in result charges. That is enough to see the real shape of the data before deciding anything.

    Dice.com Tech Jobs Scraper was last updated on 2026-10-01. It is one of 1,724 Actors CrawlerBros publishes on Apify, which together have 716,703 lifetime public runs and an average rating of 4.63 out of 5 across 416 reviews.

    What does it cost to run Dice.com Tech Jobs Scraper?

    Each result costs $0.002 on Apify's free plan, which is $2.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.

    Apify plan Per result Per 1,000 results
    FREE $0.002 $2.00
    BRONZE $0.00167 $1.67
    SILVER $0.00133 $1.33
    GOLD $0.001 $1.00
    PLATINUM $0.001 $1.00
    DIAMOND $0.001 $1.00

    The primary cost driver is maxItems, which dictates the total number of dataset results written per run. Toggling includeJobDetails to pull full job descriptions increases the run duration, but does not increase the per-result charge. To validate your search inputs affordably, keep maxItems low on your initial run.

    How do you run Dice.com Tech Jobs Scraper from the API?

    None of its 18 controls is strictly required, so the defaults below produce a valid run on their own. Nothing in the payload below is illustrative. Those are the schema's prefilled defaults for Dice.com Tech Jobs Scraper, so the request works once your token is in place.

    Call the synchronous endpoint to start a run and receive dataset items in one request:

    curl -X POST "https://api.apify.com/v2/acts/crawlerbros~dice-jobs-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"startUrls":["https://www.dice.com/jobs?q=python"],"employmentType":"any","workType":"any","employerType":"any","radiusUnit":"mi","maxItems":3}'
    

    The same run from Python, using the official client:

    from apify_client import ApifyClient
    
    client = ApifyClient("<YOUR_APIFY_TOKEN>")
    
    run_input = {
      "startUrls": [
        "https://www.dice.com/jobs?q=python"
      ],
      "employmentType": "any",
      "workType": "any",
      "employerType": "any",
      "radiusUnit": "mi",
      "maxItems": 3
    }
    
    run = client.actor("crawlerbros~dice-jobs-scraper").call(run_input=run_input)
    
    for item in client.dataset(run["defaultDatasetId"]).iterate_items():
        print(item)
    

    And from Node.js:

    import { ApifyClient } from 'apify-client'
    
    const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
    
    const input = {
      "startUrls": [
        "https://www.dice.com/jobs?q=python"
      ],
      "employmentType": "any",
      "workType": "any",
      "employerType": "any",
      "radiusUnit": "mi",
      "maxItems": 3
    }
    
    const run = await client.actor('crawlerbros~dice-jobs-scraper').call(input)
    const { items } = await client.dataset(run.defaultDatasetId).listItems()
    console.log(items)
    

    Because the call is synchronous, your client waits for the whole run. Keep it for exploration. For scheduled work, start the run without waiting and collect the dataset afterwards, so network trouble costs you a retry rather than the results.

    Which Dice.com Tech Jobs Scraper inputs matter, and which can you skip?

    The main inputs to configure are startUrls or searchTerm, which define the search query for Dice.com listings. Filtering options like employmentType, workType, and employerType allow you to restrict results before scraping. For initial test runs, keep maxItems set to its default value of 3 to avoid unnecessary result charges.

    • startUrls (array): Dice search or job-detail URLs. Examples: https://www.dice.com/jobs?q=python, https://www.dice.com/jobs?q=react&location=New+York Default: ["https://www.dice.com/jobs?q=python"].
    • employmentType (string): Filter by employment type: full-time, part-time, contract, or third-party/staffing. Default: "any".
    • workType (string): Filter by on-site, hybrid, or remote work arrangement. Default: "any".
    • employerType (string): Filter by whether the job was posted by the direct employer, a recruiter/staffing agency, or other. Default: "any".
    • radiusUnit (string): Unit for the Search Radius field. Default: "mi".
    • maxItems (integer): Maximum jobs per run. Default: 3.
    • searchTerm (string): Keyword used when no startUrls are supplied. Builds https://www.dice.com/jobs?q=.
    • location (string): City / ZIP used as the location query param when building a URL from searchTerm.
    • easyApply (boolean): Only include jobs with Dice's one-click Easy Apply. Default: false.
    • willingToSponsor (boolean): Only include jobs where the employer is open to sponsoring a work visa. Default: false.
    • radius (integer): Distance from Location to search within. Only applied when Location is also set.
    • maxPages (integer): How many pages of search results (≈30 jobs/page) to collect per search, in addition to the Max Items cap. Default: 3.

    The other 6 controls, with their defaults, are listed in the input schema on Dice.com Tech Jobs Scraper on Apify.

    Fixed-choice controls: employmentType accepts any, FULL_TIME (Full-Time), PART_TIME (Part-Time), CONTRACTS (Contract), THIRD_PARTY (Third-Party); workType accepts any, remote, hybrid, on-site; employerType accepts any, Direct Hire, Recruiter, Other; radiusUnit accepts mi (Miles), km (Kilometers).

    What does Dice.com Tech Jobs Scraper return?

    The returned records are well-suited for recruiting pipeline analysis, salary benchmarking, and automated job alert feeds. They contain structured fields like salaryDetails, workplaceTypes, and extracted skills tags. They do not contain applicant lists, candidate profile contacts, or recruiter email addresses.

    • id, guid - Dice's own stable job identifiers (use guid for deduplication across runs)
    • url - direct link to the job posting
    • title, company, companyUrl, companyLogoUrl
    • location - city, state, postal code, country (or region/display name for remote-friendly listings)
    • salary (display string) and salaryDetails (parsed minimum/maximum, currency, unit) when the employer publishes pay
    • employmentType - Full-Time, Part-Time, Contract, Third-Party, or a combination
    • employerType - Direct Hire, Recruiter, or Other
    • workplaceTypes - Remote, Hybrid, and/or On-Site
    • easyApply, willingToSponsor, isRemote - boolean flags when confirmed on the listing
    • postedAt, modifiedDate, applyBefore - posting and application-window dates
    • descriptionHtml, descriptionText - the full job description (or a short summary in lightweight mode)
    • skills - extracted skill/technology tags
    • rank - the job's position within its search results
    • scrapedAt - when this record was collected

    These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.

    How do you build the workflow end to end?

    Open Dice.com Tech Jobs Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.

    1. Run a test pass with maxItems set to 3 and includeJobDetails toggled to true to inspect the schema.
    2. Verify that the sample dataset includes expected fields like guid, salaryDetails, and descriptionText before running larger queries.
    3. Populate startUrls with targeted search links or enter a specific query into searchTerm.
    4. Set employmentType and workType to match your targeting criteria, such as remote openings or direct-hire positions.
    5. Filter out recruiter reposts by selecting Direct Hire under employerType if you only want hiring companies.
    6. Adjust maxPages to control how deeply the runner pages through the search results before ending.
    7. Check the dataset for duplicate records using the unique guid field across multiple runs.
    8. Export the results to JSON or CSV for downstream ingestion into your database or alert workflow.

    How do you apply it? Three worked playbooks

    These are Dice.com Tech Jobs Scraper's own documented use cases, each worked through as an operating pattern rather than a description.

    Use case 1: Recruiting & talent sourcing

    Outcome: Pull fresh tech job postings to identify hiring companies, in-demand skills, and competing openings

    Configure: Set searchTerm to "python developer", employerType to "Direct Hire", datePostedDays to 7, and maxItems to 100.

    Working method: Start with a narrow search query focusing on a core skill, ensure the records contain valid company names, and then expand to adjacent titles or secondary locations.

    Deliverable: A structured JSON feed of direct-hire job postings with company names, required skills, and direct URLs.

    Stop condition: Stop if the proportion of direct-hire postings drops to zero or if duplicate guid values dominate the output.

    Use case 2: Salary & compensation benchmarking

    Outcome: Collect real posted salary ranges by role, location, and employment type

    Configure: Set searchTerm to "devops engineer", salaryMin to 80000, includeJobDetails to true, and maxPages to 5.

    Working method: Execute a broad query for a target job title, filter out records where salaryDetails is null, and aggregate the parsed minimum and maximum figures across companies.

    Deliverable: A CSV file containing role titles, locations, and extracted salary min/max fields for compensation analysis.

    Stop condition: Stop if more than 90% of returned items omit salaryDetails, indicating a low pay disclosure rate for the target search.

    Use case 3: Job board & job alert apps

    Outcome: Feed structured, deduplicated Dice.com listings into your own site, newsletter, or Slack/email alert

    Configure: Set startUrls to "https://www.dice.com/jobs?q=react&location=New+York", workType to "remote", and maxItems to 50.

    Working method: Schedule recurring runs using saved search URLs, filter out records previously seen using the guid key, and publish new items to your alert channel.

    Deliverable: A deduplicated payload of recent remote listings ready for database insertion or message queuing.

    Stop condition: Stop if the run returns an informational single-record item indicating no new matches were found.

    What breaks, and how do you design around it?

    When you hit the maximum cap of 500 items per run, split your workload across multiple search queries using different locations or keywords. If a specific filter like willingToSponsor returns fewer records than expected, treat its presence as best-effort on the returned listings. If Dice omits salary info on a listing, filter your downstream pipeline by checking if salaryDetails is populated.

    When should you not use Dice.com Tech Jobs Scraper?

    Do not use this Actor if you are searching exclusively for remote tech opportunities across non-US global markets. Sites dedicated to global remote work offer broader coverage outside the United States. For example, if you specifically need international remote listings from a dedicated platform, use the We Work Remotely Jobs Scraper instead. Similarly, if your focus is on Australian job listings rather than the US technology sector, switch to the Seek.com.au Jobs Scraper. This Actor is tailored specifically to Dice.com's US-centric technology and IT job catalog.

    What should you check before trusting the output?

    • Verify that the guid field is present on every record to prevent duplicate entries in downstream databases.
    • Check that salaryDetails contains valid parsed minimum and maximum figures when salary is present.
    • Ensure descriptionText is populated with readable prose when includeJobDetails is set to true.
    • Confirm workplaceTypes contains expected strings like Remote, Hybrid, or On-Site.
    • Halt downstream processing if an informational record is generated instead of a standard job schema.

    None of this proves a record is correct. It gives a scheduled Dice.com Tech Jobs Scraper run defined points where it should stop instead of quietly passing bad data downstream.

    Frequently asked questions

    How much does it cost to scrape 1,000 jobs?

    It costs $2.00 per 1,000 results on Apify's free plan, equivalent to $0.002 per result written to the dataset. Paid Apify tiers offer lower per-result charges. Platform compute usage is billed separately by Apify based on run memory and runtime duration.

    Do I need a Dice.com account or proxy setup?

    No account, login, or cookies are required. The scraper accesses public web pages directly. Apify's proxy is enabled automatically on every run in the proxyConfiguration control to ensure smooth site access without extra setup.

    What is the difference between lightweight and full detail mode?

    When includeJobDetails is true, the scraper fetches each job's complete page to return descriptionText and parsed salaryDetails. Turning it off extracts only search result summary fields, making runs faster without fetching full descriptions.

    How does deduplication work across multiple scraping runs?

    Every job record includes Dice's internal unique identifiers in the id and guid fields. Store the guid key in your application database to easily filter out duplicate job postings from repeated scheduled runs.

    Why are some salary details missing from the dataset?

    The Actor only extracts salary information when the employer explicitly publishes pay details on the listing. If pay is omitted by the employer on Dice.com, salary and salaryDetails fields are omitted from the record rather than filled with estimates.

    Where to go next

    When you are ready to run it, open Dice.com Tech Jobs Scraper on Apify; the free plan covers up to 2,500 results a month.

    Start with the Dice.com Tech Jobs Scraper Actor page for the current input schema, pricing tier, and run history.

    If you are comparing approaches rather than committing to one Actor, these category pages list every option we publish:

    Other Actors we maintain for related data:

    • We Work Remotely Jobs Scraper: Scrape remote job listings from WeWorkRemotely.com with titles, companies, locations, salaries, full descriptions, and company profiles.
    • NoFluffJobs Remote Tech Jobs Scraper: Scrape NoFluffJobs.com - a transparent IT job board with 3,800+ active remote tech listings.
    • Seek.com.au Jobs Scraper: Scrape Seek.com.au job listings with titles, companies, locations, salaries, work arrangements, and full descriptions.
    • Bayt.com Middle East Jobs Scraper: Scrape Middle East job listings from Bayt.com with titles, companies, locations, salaries, career level, experience, full descriptions, skills, and apply links.
    • Hacker News Jobs Scraper: Scrape the Hacker News job board - the famous 'Who is Hiring' startup job posts on news.ycombinator.com.
    • Wellfound (AngelList) Jobs Scraper: Scrape public job listings from Wellfound.com.
    • PowerToFly Jobs Scraper: Scrape diversity-focused tech job listings from PowerToFly - search by keyword, filter by employment type, remote status, and experience level.
    • InfoJobs Spain Jobs Scraper: Scrape job listings from InfoJobs.net (Spain) with titles, companies, descriptions, contract types, salaries, locations, and more.

    Related guides:

    Resources

    • Actor documentation, input schema, and pricing: verified against the published Actor on 2026-10-01.

    • Actor last updated by its maintainers on 2026-10-01.

    • Run outcome figures cover the 30 day public window ending 2026-10-01.

    • Dice.com Tech Jobs Scraper on Apify

    Featured actors

    Dice.com Tech Jobs Scraper

    Scrape US tech jobs from Dice.com with titles, companies, salaries, skills, descriptions, and remote-work flags. HTTP-only, no login required.

    Run on Apify ↗