StepStone Jobs Scraper avatar

StepStone Jobs Scraper

Pricing

$1.00 / 1,000 jobs

Go to Apify Store
StepStone Jobs Scraper

StepStone Jobs Scraper

Scrapes job listings from any StepStone search link (stepstone.de, .at, .be, .nl) with every filter kept: title, company, location, salary, posted date, contract and work type, home-office flag and the full description.

Pricing

$1.00 / 1,000 jobs

Rating

0.0

(0)

Developer

Mina

Mina

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 days ago

Last modified

Share

What does StepStone Jobs Scraper do?

StepStone Jobs Scraper collects job listings from StepStone, one of Europe's biggest job boards, on stepstone.de (Germany), stepstone.at (Austria), stepstone.be (Belgium, in English, French or Dutch) and stepstone.nl (Netherlands). Search on StepStone as you normally would, paste the link, and get every job as a clean row: title, company, location, home-office option, salary range, posted and expiry dates, contract and work type, benefits, workplace address and the full job description.

Every filter in your link is kept: keywords, place and radius, date posted, full or part time, contract type, home office, salary, experience, industry, sort order and anything else StepStone puts in the address. The Actor hands your link to StepStone's own result list, so you get the jobs the website shows, in the same order. By default you get only the exact matches, not the loosely related "similar" jobs StepStone pads its list with.

Try it with the prefilled search: open the Actor, click Start, and 25 data scientist jobs in Berlin, with full descriptions, are ready in under 30 seconds. Running on the Apify platform also gives you API access, scheduled runs, integrations (Google Sheets, Make, Zapier, Slack, webhooks) and run monitoring.

Why scrape StepStone?

  • Labour market research. Track demand by role, region, contract type and home-office share across Germany, Austria, Belgium and the Netherlands.
  • Salary benchmarking. StepStone shows a salary range for many German jobs; you get it as numbers you can sort, chart and average.
  • Recruitment and sales leads. See which companies are hiring, for what and where, with their StepStone company page.
  • Job aggregation. Feed a niche job board, newsletter or internal tool with fresh, structured listings and descriptions.
  • Monitoring. Schedule a daily run on a "last 24 hours" search and keep only the job IDs you have not seen.

How to scrape StepStone jobs

  1. Open stepstone.de (or the Austrian, Belgian or Dutch site) and search: type a job title and a place, then pick any filters.
  2. Copy the address from your browser's address bar, for example https://www.stepstone.de/jobs/data-scientist/in-berlin?radius=30&ag=age_7.
  3. Paste it into StepStone search links. Add as many links as you like, one per line; links from different StepStone sites can be mixed.
  4. Set Max jobs per search link and choose whether to include full descriptions.
  5. Click Start, then download the results as JSON, CSV, Excel or HTML.

Input

Everything is set on the Input tab. In JSON, the input looks like this:

{
"search_urls": [
"https://www.stepstone.de/jobs/data-scientist/in-berlin?radius=30&ag=age_7",
"stepstone.at/jobs/data-scientist/in-wien",
{ "url": "https://www.stepstone.be/emplois/data-scientist" }
],
"max_results_per_search": 100,
"include_description": true,
"exact_matches_only": true
}
FieldWhat it does
search_urlsStepStone search links, one per line, from stepstone.de, stepstone.at, stepstone.be or stepstone.nl. A company's job list on stepstone.de (stepstone.de/cmp/de/<company>/jobs) works too. https:// is optional, and API callers can send {"url": "…"} objects.
max_results_per_searchStops after this many jobs from each link. Default: 100.
include_descriptionOpens each job's own page for the full description (plain text and HTML), contract type, work type, industry and workplace address. Default: on. Turn it off for a faster run with the job cards only.
exact_matches_onlyStepStone lists the jobs that match your search first, then pads the list with similar jobs and jobs from the surrounding area, which often ignore your keywords or filters. Default: on, so you only collect (and pay for) exact matches. Turn it off to also collect the similar and nearby jobs; they are saved and billed like any other job.
proxy_configurationLeave empty. The Actor reaches StepStone directly where it can and switches to Apify's proxies on its own when StepStone turns a request away. Choose a proxy only to send every request through it.

Which filters are kept?

All of them, because the link is passed to StepStone as it is. Some examples from stepstone.de:

On StepStoneIn the linkExample
Job title or keywordspath or q=/jobs/python, /jobs?q=data%20science
Place and radiuspath and radius=/jobs/python/in-hamburg?radius=30
Date postedag=ag=age_1 (last 24 hours), ag=age_7 (last 7 days)
Full or part timepath/jobs/vollzeit/data-scientist/in-berlin
Contract typect=ct=222 (permanent)
Home officewfh=wfh=1 (home office only), wfh=2 (partly)
Salaryus=us=60000
Experience, industry, field, cityex=, se=, fu=, fci=ex=90002
Sort orderorderByField=orderByField=date

The page number in a link is ignored: every search starts from its first page. Click-tracking parameters (action=, searchOrigin=, utm_…) are dropped.

Output

Each job becomes one row. Here is a real one from the prefilled search, with long texts shortened:

{
"job_id": 14519393,
"title": "Data Scientist Supply Chain Consulting (d/w/m)",
"company_name": "4flow",
"location": "Berlin",
"work_from_home": "partial",
"salary_min": 55000,
"salary_max": 79000,
"salary_currency": "EUR",
"salary_period": "year",
"salary_is_estimate": true,
"posted_at": "2026-10-03T07:03:22Z",
"expires_at": "2026-11-17T07:30:49Z",
"contract_type": "Feste Anstellung",
"work_type": "Homeoffice möglich, Vollzeit",
"employment_types": ["FULL_TIME"],
"industry": "Wissenschaften, Wissenschaften-Data Science",
"street_address": "Hallerstraße 1",
"postal_code": "10587",
"city": "Berlin",
"country": "DE",
"latitude": 52.522575,
"longitude": 13.324423,
"description": "Über uns:\n\n4flow – das sind 1500+ Teammitglieder an 20+ Standorten weltweit...",
"description_html": "<h4>Über uns:</h4>\n<p>4flow – das sind 1500+ Teammitglieder an 20+ Standorten weltweit...",
"labels": [],
"benefits": [
"Spannende internationale Projekte sowie aktive Gestaltung deines Jobprofils und -werdegangs",
"Persönliche und professionelle Entwicklungsplanung u.a. mit unserem internen Schulungs- und Buddyprogramm"
],
"snippet": "Als Data Scientist bei 4flow vereinst du deine Expertise in Data Science und Consulting mit Logistikwissen...",
"company_id": 2033,
"company_url": "https://www.stepstone.de/cmp/de/4flow-2033/jobs",
"company_logo": "https://www.stepstone.de/upload_DE/logo/7/logo4flow-2033DE-2605281000.gif",
"url": "https://www.stepstone.de/stellenangebote--Data-Scientist-Supply-Chain-Consulting-d-w-m-Berlin-4flow--14519393-inline.html",
"match_type": "exact",
"search_position": 1,
"search_url": "https://www.stepstone.de/jobs/data-scientist/in-berlin",
"scraped_at": "2026-10-10T14:28:55Z"
}

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. The Output tab has two views: Jobs (the main columns) and Full details.

Data fields

FieldDescription
job_idStepStone's job number.
titleJob title.
company_nameThe hiring company as StepStone shows it.
locationThe place or places as StepStone shows them, for example "Berlin" or "Berlin, Hamburg, München".
work_from_homefull (home office only), partial (home office possible), or empty when the listing offers none.
salary_min, salary_maxThe salary range StepStone shows on the job card. Empty when it shows none.
salary_currency, salary_periodCurrency code (EUR) and year, month or hour.
salary_is_estimatetrue when the range is StepStone's own estimate for the role and place rather than a figure from the employer. In our tests every range was an estimate, and only stepstone.de showed ranges; pay that an employer states is usually in the description text.
posted_atWhen the job was published, in UTC.
expires_atWhen the listing is due to go offline, in UTC.
contract_typeThe contract as the job page names it, in the site's language, for example "Feste Anstellung" or "Contrat fixe à durée indéterminée". Some listings leave it blank. *
work_typeFull or part time and home office as the job page names them, for example "Homeoffice möglich, Vollzeit". *
employment_typesThe schema.org employment types on the job page, such as FULL_TIME or PART_TIME. *
industryStepStone's field and sub-field for the job. *
street_address, postal_code, city, countryThe workplace address on the job page, when the employer gave one; country is a two-letter code. *
latitude, longitudeThe workplace's coordinates, when the job page has them. *
description, description_htmlThe full job description as plain text and as HTML. *
labelsStepStone's badges on the card, such as "Schnelle Bewerbung" (quick apply) or "Anschreiben nicht erforderlich" (no cover letter needed).
benefitsThe benefits listed on the job card, one per item.
snippetThe short summary StepStone shows in search results.
company_id, company_urlThe company's StepStone number and its list of jobs on StepStone.
company_logoThe company logo, when the listing has one.
urlLink to the job listing.
match_typeexact for jobs that match your search. With Exact matches only turned off, also similar for the similar jobs StepStone adds after them and nearby for jobs from the surrounding area.
search_positionThe job's position in StepStone's result list.
search_urlThe link you pasted that found this job.
scraped_atWhen the job was collected, in UTC.

* Only when Include full job descriptions is on; with it off, these fields are left out of the rows.

How much does it cost to scrape StepStone?

The Actor uses pay-per-event pricing: you pay a small fixed price for each job saved, and the exact price is on the Pricing tab. Full descriptions are included at no extra charge.

You are never charged for links that return nothing: a search with no jobs (or no exact matches, while Exact matches only is on), a job ad link or a link that is not from StepStone is listed in the run's FAILED_INPUTS record instead. If you set a maximum cost for a run, the Actor stops as soon as it is reached.

Tips for scraping StepStone

  • Let StepStone filter for you. Narrow the search on StepStone before copying the link. The filters are applied by StepStone itself, and with Exact matches only on (the default) you only collect (and pay for) jobs that match them.
  • Want more than the exact matches? StepStone pads short result lists with similar jobs and jobs from nearby places, which often ignore your keywords or filters. Turn off Exact matches only to collect them too; they are billed like any other job, and match_type tells them apart. When a search has no exact matches, its FAILED_INPUTS entry says how many similar or nearby jobs were left out.
  • Monitor new jobs. Choose "Neuer als 24h" (ag=age_1) or sort by date, schedule the Actor to run daily, and drop job IDs you already have.
  • Faster runs. With descriptions on, the Actor opens every job's own page; 300 jobs take about one to two minutes. With descriptions off, 300 jobs take about 25 seconds.
  • Each job is saved once per run, even when several of your links find it.

FAQ, disclaimers and support

Which links work? Search results pages from stepstone.de, stepstone.at, stepstone.be (English /jobs/, French /emplois/ and Dutch /vacatures/ pages) and stepstone.nl, plus company job lists on stepstone.de. The StepStone home page, single job ads and older address formats that StepStone itself no longer shows results for are listed in FAILED_INPUTS with the reason. Other StepStone-branded addresses (stepstone.fr, stepstone.pl, stepstone.dk and others) redirect elsewhere or run a different site, and are not supported.

Why do I get fewer jobs than StepStone's total? StepStone's total counts the "similar" and "nearby" jobs it shows after the exact matches. Exact matches only (on by default) leaves them out; turn it off to collect them too, billed like any other job and marked in match_type. When nothing matches a search at all, StepStone shows "recommended" jobs that ignore your filters; those are never saved.

What happens to links that return nothing? They are not saved as rows, so you are not charged for them. Each is listed with its reason in the FAILED_INPUTS record of the run's key-value store, and the run's status message gives the counts. A run fails only when StepStone could not be reached for any of your links.

A job came without a description? Very rarely a job page cannot be loaded, or the listing is taken down between the search and the visit. The job is still saved with its card fields, and the run's status message says how many jobs have no description.

Is it legal to scrape StepStone? This Actor collects job listings that employers publish publicly so that people can find and apply for them. It does not log in and does not collect candidate data. Listings can still contain a recruiter's name or contact details written by the employer, and their text belongs to the employer; StepStone's robots.txt also asks automated clients to stay away from its search API and filtered result pages. You are responsible for making sure your use complies with StepStone's terms and with the laws that apply to you, such as the GDPR and copyright rules for republishing listings. If in doubt, ask a lawyer.

Found a problem or need something custom? Open an issue on the Issues tab and we will look into it. Custom scrapers and job data feeds are available on request.