Dice Jobs Scraper - Tech Roles, Companies, Dates
Pricing
Pay per event
Dice Jobs Scraper - Tech Roles, Companies, Dates
Scrape tech job listings from Dice by keyword and location. Returns job title, company, location, posting date as both the original text and a day count, a remote flag and a direct link, deduplicated across search terms and pages.
Pricing
Pay per event
Rating
0.0
(0)
Developer
SR
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Dice Jobs Scraper
Tech job listings from Dice, by keyword and location. Give it a list of search terms and you get back one row per job: title, company, location, how long ago it was posted, and a direct link.
Dice is a specialist board rather than a general one, so the results skew heavily toward software, data, infrastructure and security roles, including a large volume of contract and staffing-agency work that does not appear on consumer job sites.
What each job gives you
titleandurl, a direct link to the listingcompany, which on Dice is often the staffing agency rather than the end client. That is how Dice publishes it, and inventing an end client we cannot see would be worse than reporting what is there.location, andis_remotederived from itposted, exactly as Dice wrote it (Today,2d ago,21d ago)posted_days_ago, that same age converted to a number so you can filter and sort on itqueryandpage, so every row traces back to the search that found it
Both forms of the date are kept on purpose. The number is what you filter on; the original text is what lets you check the number.
Two details that decide whether the output is right
Location and posted date share one element. A Dice card renders
McLean, Virginia • Today as a single line, separated by a bullet. Split it
wrong and your location column reads Virginia • Today, which sorts, groups
and filters badly while looking almost correct. The two halves are separated
properly, and a card that carries only a date is not mistaken for a card that
carries only a location.
Dice abbreviates its dates. The page says 21d ago, not 21 days ago. A
date parser written for the long form matches nothing and quietly returns a
null day count for every job older than today, which makes a run look far
fresher than it is. Both the abbreviated and long forms are handled, and a date
that cannot be read is reported as unknown rather than as zero days, because
zero would mean "posted today".
How the fields are found
Every field is read through Dice's own data-testid attributes rather than
through styling classes. Those attributes exist for Dice's internal test suite
and change far less often than the utility classes wrapped around them, so this
survives a visual redesign that would break a class-based parser.
Input
- Search terms — job titles, skills or technologies.
python developer,kubernetes,security engineer. A full Dice search URL is also accepted and used exactly as pasted, which is the escape hatch for filters this input form does not expose. - Location —
Remote,Austin, TX,New York, or empty for everywhere - Result pages per search — each page is roughly 30 cards and one fetch
- Maximum jobs per search, maximum search terms, pages in parallel, retries, and an optional country to request from
Run summary
Jobs returned, how many carried a company, how many carried a location, how many are remote, the number of unique companies, and counts of listings posted today and within the last week.
Those last two are the useful ones for a recurring run: a search that returns the same 60 jobs every day with none posted this week is telling you the market is quiet, not that the actor is broken.
Scale and deduplication
Each result page costs exactly one fetch. Two search terms at one page each returned 69 jobs in under three seconds in testing, covering 54 distinct companies.
Rows are deduplicated on Dice's job identifier across every term and page in
one run, so searching python developer and python engineer together gives
you the union rather than a pile of duplicates. The identifier is stable, so
deduplicating across separate runs works the same way.
What people use this for
Hiring-market tracking. Run a fixed set of search terms weekly and keep the
rows. Because job ids are stable and posted_days_ago is a number, you can
measure how many genuinely new listings appear per week per skill, which is a
far better demand signal than a total result count that includes months-old
postings.
Skill demand comparison. Search several technologies in one run and compare unique company counts rather than raw job counts. One agency posting the same role forty times inflates the second number and not the first.
Agency versus direct hiring. Dice carries a lot of staffing-agency listings
alongside direct employers. Grouping by company shows the split immediately,
which matters if you are a candidate deciding where to spend effort or a
recruiter sizing the competition.
Location analysis. Pairing the same search term across several locations,
including Remote, shows where a skill is actually being hired for rather than
where people assume it is.
Notes
Dice publishes relative dates only, so posted_days_ago is accurate to the day
rather than the hour. A job showing 5h ago is reported as 0 days.
Listings that are filled or expire stop appearing in results. Running the same searches on a schedule and keeping the rows gives you both a hiring-volume trend and a read on how long postings stay open.
No login, no cookies and no API key are needed.