Dice Jobs Scraper - Tech Roles, Companies, Dates avatar

Dice Jobs Scraper - Tech Roles, Companies, Dates

Pricing

Pay per event

Go to Apify Store
Dice Jobs Scraper - Tech Roles, Companies, Dates

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

SR

Maintained by Community

Actor 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

  • title and url, a direct link to the listing
  • company, 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, and is_remote derived from it
  • posted, 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 it
  • query and page, 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.
  • LocationRemote, 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.