StepStone Jobs Scraper - DE, AT, UK, NL & BE
Pricing
$3.00 / 1,000 job returneds
StepStone Jobs Scraper - DE, AT, UK, NL & BE
Scrape StepStone jobs in Germany, Austria, the UK, the Netherlands and Belgium. StepStone runs a separate site per country, so pick one first. Then give a keyword and a location. Each job has the title, company, salary when shown, posted date, remote flag and link. $3.00 per 1,000 jobs.
Pricing
$3.00 / 1,000 job returneds
Rating
5.0
(1)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
2
Monthly active users
10 hours ago
Last modified
Categories
Share
StepStone Jobs Scraper: job listings from Germany, Austria, the Netherlands and Belgium
Pick the country site, type a keyword and a city, and the job cards come back as rows: the title, the company, the location, the remote flag, how long ago it was posted, a short excerpt and the link. StepStone runs a separate site per country and they do not even agree on the word for a job, so the country is a choice you make first rather than something guessed from your location.
Two things to set expectations. You get what is on the results card, not the full advert, and
salary is null on most rows because most StepStone listings never publish one.
| Input | A keyword, optionally a city, and which country site |
| Output | One row per job card |
| Ceiling | 2,000 jobs per run |
| Account needed | None, no login |
| Price | $3.00 per 1,000 jobs, flat on every plan |
💼 What StepStone Jobs Scraper does
It searches one of four StepStone sites, Germany, Austria, the Netherlands or Belgium, and pages through the results until it has as many jobs as you asked for. About 25 jobs per page.
The country comes from the site you pick, not from where the run happens, so the Austrian site gives
you Austrian jobs wherever you are, and the Dutch site is read under its own vacatures path without
you having to know that.
Your keyword and city are turned into the search path StepStone expects. German umlauts are
converted the way StepStone converts them, so München searches muenchen. Other accents and
symbols are not: Liège becomes li-ge and C++ becomes c. Spell the term plainly and you will
get what you meant.
When StepStone runs out of matches it fills the page with other jobs: ones nearby whose titles do not
match, ones further away, and recommendations. Those are left out on every search, so you get and pay
for StepStone's own matches only. A niche title in a small town can come back with fewer jobs than you
asked for, and a search with no matches at all ends as NO_RESULTS.
Paging stops when it has your number, after 50 pages, or when two pages in a row bring nothing new. A run also has a four-minute budget, so it ends rather than grinding at a search it is not going to win.
📥 What you give it
{"keywords": "software engineer","location": "Berlin","site": "de","maxItems": 100}
| Field | Default | What it is |
|---|---|---|
keywords | none, and required | The job title or search terms. The local language works: krankenpflege, vertrieb. The form starts with software engineer. |
location | none | A city or region such as Berlin, München, Wien. Leave it empty for a nationwide search. |
site | de | de, at, nl or be. The UK site no longer lists jobs, so uk stops the run before it searches. |
sortBy | relevance | relevance is StepStone's usual order. date gets the newest jobs first, on the German site only. |
experienceLevel | none | none (no experience needed), experienced or manager (managing people). One job can carry more than one level. |
radius | none | 5, 10, 20, 30, 40, 50, 75 or 100 km around location. Needs a location. Empty means StepStone's own 30 km. |
maxItems | 25 | How many jobs to collect, 1 to 2,000. This is your spending cap. |
notionConnector | none | Optional. Write each job into Notion as a page when the run finishes. Authorize the connector once under Settings, API and Integrations, MCP connectors, then pick it here. |
notionParentId | none | Optional. The Notion data source to write into. Empty creates the pages privately in your workspace. |
proxyConfiguration | on | Optional. Leave it as it is unless you need the run to go out through your own servers. |
📤 What you get back
A real row from a recent run on the German site:
{"ok": true,"site": "de","jobId": "14516532","title": "Software Engineer System Metrology (m/f/x)","company": "ZEISS","location": "Oberkochen bei Ulm","salary": null,"postedText": "vor 2 Tagen","workFromHome": false,"snippet": "Step out of your comfort zone, excel and redefine the limits of what is possible. That’s just what our employees are doing every single day – in order to set the pace through our innovations and enable outstanding achievements. ...","url": "https://www.stepstone.de/stellenangebote--Software-Engineer-System-Metrology-m-f-x-Oberkochen-bei-Ulm-ZEISS--14516532-inline.html"}
The excerpt is cut short above. The real one ends where StepStone cuts its own card off.
| Field | What it is |
|---|---|
jobId | StepStone's listing id, taken from the URL. null when the link carries none. Use it as your dedupe key. |
company | The hiring company, or null when the card does not name one. |
salary | Only when the listing publishes one, which most German listings do not. |
postedText | Exactly as the card shows it, in the site's own language, for example vor 2 Tagen. It is text, not a date, so parse it yourself if you need one. |
workFromHome | The card's remote badge as true or false. |
snippet | The excerpt from the card, a couple of sentences. |
site | Which country site the row came from, useful when you run several. |
🧾 Reading the output
| Row | How to spot it | Charged |
|---|---|---|
| A job | ok: true | yes |
| A partial row | ok: false and partial: true | no |
| A diagnostic | ok: false with an errorCode | no |
Partial rows are worth understanding. If a search stops part-way, the jobs already collected are
still written to your dataset, marked ok: false, partial: true, and none of them are charged. You
keep the data and pay nothing for it. Run the search again for the rest.
The Console's overview table hides ok and partial, so those free rows look exactly like paid
ones there. Filter on ok in the JSON if the difference matters to you.
| Code | What it means |
|---|---|
BAD_INPUT | No keyword was given, or a setting that cannot work, such as the uk site, date order outside the German site or a radius with no location. Nothing was searched. |
PARSE_ERROR | The page did not say which jobs were StepStone's own matches, so none were delivered. Run it again. |
SORT_IGNORED | You asked for date order and StepStone sent the page in another order, so none of it was delivered. |
NO_RESULTS | The search ran and StepStone had no matches for it. If it showed other jobs instead, the row says how many were left out. Try a broader keyword or drop the city. |
BLOCKED | StepStone answered with a verification page instead of results. Run it again. |
DEADLINE | The run reached its four-minute budget. Everything already delivered is complete. |
▶️ How to run it
- Open StepStone Jobs Scraper and click Try for free.
- Pick the StepStone site for the country you want.
- Type your Keywords, and a Location if you want one city.
- Set Max jobs, then click Start.
- Download the dataset as JSON, CSV or Excel, or read it from the Apify API.
💰 How much does it cost?
$3.00 per 1,000 jobs. Flat on every Apify plan, no volume tiers.
You pay per job row that arrives complete. Diagnostic rows, partial rows from a search that stopped early, and a search that matches nothing are all free, so a run that brings back no jobs costs you nothing. The other jobs StepStone shows once its matches run out are never delivered, so never charged.
💡 What people use it for
- Tracking who is hiring for a role in one German city, weekly, and diffing on
jobId. - Comparing the same role across the four country sites in four runs.
- Pulling the companies hiring in a sector as a prospect list, from the
companycolumn. - Watching how long postings stay up, by scheduling and reading
postedTextover time. - Feeding titles and excerpts into a model to sort listings into the ones worth reading.
🚧 What it does not do
- Card data only. The full advert lives on the listing's own page and is not fetched.
- No salary on most rows. StepStone shows one when the employer published one, and usually the employer did not.
postedTextis not a date. It is the site's own wording, in the site's language.- Four countries. Germany, Austria, the Netherlands and Belgium. The UK site stopped listing jobs,
so
ukis refused before anything is searched. - No contract type or salary range filter. Keyword, city, radius, experience and order are what it takes.
- Newest first on the German site only. Asking for it on another site stops the run before it searches.
- No company profiles, no recruiter contacts, and it does not apply to anything.
- Special characters in the search term are flattened. Plain spelling works best.
- Rows are a snapshot. A listing can be filled or pulled after it was read.
🧭 Which job scraper do you need?
| If you want | Use |
|---|---|
| StepStone jobs in DE, AT, NL or BE | This one |
| Jobs in Germany, Austria and Switzerland from XING | XING Jobs Scraper |
| Jobs in France | HelloWork Jobs Scraper |
| Startup jobs with the full description | Wellfound Jobs Scraper |
| Hackathons, internships and student jobs in India | Unstop Scraper |
❓ Questions people ask
Do I need a StepStone account? No. It reads what any visitor sees.
Can I search in German? Yes, and you should. krankenpflege will find more than nursing on
the German site.
Why is salary empty? Because the employer did not publish one. Nothing is estimated here, so the
field stays null rather than being filled with a guess.
Can I get the full job description? Not from this one. You get the card excerpt and the link.
Why did I get fewer jobs than I asked for? StepStone ran out of matches, and the other jobs it showed after them were left out.
What happens if the search gets stopped part-way? You keep the jobs already collected, marked
partial: true, and you are not charged for them.
Is it stable enough to schedule? Yes. jobId comes from StepStone and does not change between
runs.
Is this legal? These are public job listings naming companies rather than people. Apify's write-up on scraping and the law is a good start, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Send the keyword, the site and the run ID. A search you
know has results coming back as NO_RESULTS is worth reporting, because it usually means the page
layout moved.