StepStone Jobs Scraper - DE, AT, UK, NL & BE
Pricing
$3.00 / 1,000 job returneds
StepStone Jobs Scraper - DE, AT, UK, NL & BE
StepStone runs a site per country and they don't agree on the word for a job: the Dutch one lists under /vacatures/, the German under /jobs/. Pick a site, keyword and location; each card carries title, company, salary when shown and link. $3.00 per 1,000 jobs, no start fee.
Pricing
$3.00 / 1,000 job returneds
Rating
5.0
(2)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
StepStone Jobs Scraper
StepStone runs a separate site per country, and they do not agree on the word for a job: the Dutch one lists under /vacatures/ where the German one uses /jobs/. Pick the country site, give it a keyword and a location, and the job cards come back as rows. Five sites are wired up: Germany, Austria, the UK, the Netherlands and Belgium.
StepStone sits behind DataDome, which is why plain HTTP clients get a challenge page instead of listings. This actor loads the pages the way a browser does and takes a fresh exit address whenever one gets blocked.
What you get per job
| Field | Notes |
|---|---|
jobId | StepStone's listing id. null when the URL carries no id. |
title | Job title. |
company | Hiring company. null when StepStone hides it on the card. |
location | City or region. |
salary | Only when the listing publishes one. Most German listings don't, so expect null more often than not. |
postedText | As shown, e.g. vor 5 Tagen. Not a parsed date. |
workFromHome | Boolean remote flag. |
snippet | The description excerpt from the card, a couple of sentences. |
url | Link to the listing. |
site | Which country site the row came from. |
Real row from a software engineer / de run:
{"ok": true,"site": "de","jobId": "14295362","title": "Software Engineer (m/w/d)","company": "Menck GmbH","location": "Kaltenkirchen","salary": null,"postedText": "vor 5 Tagen","workFromHome": false,"snippet": "Menck, als bedeutender Akteur der renommierten ACTEON-Gruppe…","url": "https://www.stepstone.de/stellenangebote--Software-Engineer-m-w-d-…-14295362-inline.html"}
Input
{"keywords": "software engineer","location": "Berlin","site": "de","maxItems": 100}
| Field | Default | Notes |
|---|---|---|
keywords | required | Job title or search terms. German works: krankenpflege, vertrieb. |
location | empty | City or region. Leave it out for a nationwide search. |
site | de | de, at, uk, nl, be. |
maxItems | 25 | 1 to 2000. Pages are about 25 jobs each. |
proxyConfiguration | Apify datacenter | Leave it alone. The actor rotates datacenter addresses itself. Fill it in only if you own proxy servers you'd rather use. |
notionConnector / notionParentId | — | Optional delivery into Notion via an Apify MCP connector. |
The country site is picked by domain, not by where the request comes from, so site: "uk" gets you UK jobs regardless of the exit address. Umlauts are transliterated the way StepStone's own search does it (München → muenchen), and stepstone.nl uses its vacatures path.
Limits worth knowing
- Card data only. You get what's on the search results page. The full job description lives on the detail page and isn't fetched.
salaryis usually null, because most StepStone listings don't publish pay.postedTextis a string in the site's language, not a timestamp. Parse it yourself if you need a date.- Pagination stops at 50 pages or when two consecutive pages bring nothing new.
- A run has a four-minute budget. If DataDome is being difficult it stops there rather than burning compute on a search it isn't going to win.
When a search gets blocked, you don't pay
- No matches → one
NO_RESULTSrow, uncharged. - Blocked on every rotation → one
BLOCKEDrow, uncharged. - Blocked part way through → the rows already gathered come back marked
ok: false, partial: truealongside aBLOCKEDrow, and none of them are charged. Run it again; a different exit address usually finishes the job.
Billing
$3.00 per 1,000 jobs ($0.003 each), with no run-start fee. Flat on every plan.
You're charged once per job row with ok: true. Everything else — diagnostics, partial blocked results, duplicates — is free.