StepStone Scraper — Jobs, Salaries & Hiring Companies avatar

StepStone Scraper — Jobs, Salaries & Hiring Companies

Pricing

from $1.00 / 1,000 results

Go to Apify Store
StepStone Scraper — Jobs, Salaries & Hiring Companies

StepStone Scraper — Jobs, Salaries & Hiring Companies

StepStone jobs scraper for stepstone.de, .at, .be: export job ads with salary estimates, full descriptions, contract type, home office, benefits, address and company size, industry and rating. Search by keyword, location and filters or export whole regions. No login. Not affiliated with StepStone.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Logiover

Logiover

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

StepStone Scraper

Export StepStone jobs from stepstone.de, stepstone.at and stepstone.be — with salary estimates, full descriptions, contract type, home office, address and hiring-company data — as clean JSON, CSV or Excel, without a login.

Independent tool. Not affiliated with, endorsed by, or sponsored by StepStone or The Stepstone Group. "StepStone" is a trademark of its owner and is used here only to describe the website this Actor reads.

StepStone Scraper is a StepStone jobs scraper for Germany's largest job board and its Austrian and Belgian sites. It turns any StepStone search — a job title or keyword, a city, a federal state or the whole country, plus StepStone's own filters — into structured StepStone jobs data: title, employer, location, postal code and coordinates, posting and expiry date, StepStone's salary estimate (min / max / period / currency), home-office flag, contract and work type, Easy Apply flag, benefits and the full job description split into introduction, responsibilities, requirements and benefits. Use it to scrape stepstone.de by keyword and location, as a StepStone API alternative (StepStone offers no public jobs API), or to export StepStone jobs to CSV, Excel or JSON for your ATS, CRM, BI tool or data warehouse. No StepStone account, no login, no cookies, no browser.

Recruiters, staffing agencies, HR analysts and job-market researchers use it for salary data in Germany (Gehaltsdaten), lead lists of companies that are hiring, competitor monitoring and labour-market statistics. In German: mit diesem Tool können Sie StepStone Stellenanzeigen exportieren, Jobs scrapen nach Stichwort, Ort, Bundesland, Vertragsart, Homeoffice oder Gehalt, und Stellenmarkt-Daten für ganz Deutschland, Österreich oder Belgien als Excel- oder CSV-Datei herunterladen — inklusive vollständiger Stellenbeschreibung, Gehaltsschätzung, Postleitzahl und Unternehmensdaten (Größe, Branche, Bewertung). Every number on this page was measured on the Apify platform on 2026-10-18.


Table of contents


At a glance

Sitesstepstone.de (Germany), stepstone.at (Austria), stepstone.be (Belgium)
Jobs availablestepstone.de ~205,000 · stepstone.at ~9,600 · stepstone.be ~10,100 (counted 2026-10-18)
Search bykeywords / job titles × cities, regions or the whole country, plus pasted StepStone URLs (search pages, company pages, job pages)
Filtersposting date (24 h / 7 days), full-time / part-time, 14 contract types, experience level, home office (partial / full), minimum salary (stepstone.de), Easy Apply, language of the ad, radius, sort order
Per job48 columns: listing, StepStone salary estimate, home office, contract and work type, employment type, discipline, address with postal code and coordinates, full description and its sections, benefits, company size / industries / rating
DepthEvery page of a search to its end — StepStone has no page cap (page 8,000 of a Germany-wide search returns real, distinct jobs)
Speed50 jobs with full details in 6.6 s · 1,000 jobs with full details in 90 s · search data alone ~130 jobs per second
OutputJSON, CSV, Excel, XML, RSS, HTML table; API, webhooks, Make, Zapier, n8n, Google Sheets, MCP
Login / cookies / proxyNone needed — direct connection at a pace StepStone accepts
Price$1.50 → $1.00 per 1,000 jobs depending on your Apify plan; everything included

What you get

Every row is one job ad. Values StepStone does not publish are null — never an empty string or an invented 0. Example values below are real values from a run on 2026-10-18.

The job

FieldExample
id14571015 — StepStone's listing id (unique per row)
harmonisedIdcc6c37ad-7802-4598-97f2-afc5b81262dd — StepStone's global job id
urlhttps://www.stepstone.de/jobs--Team-Member-Marketing-…--14571015-inline.html
titleTeam Member Marketing and Business Development – Automotive & Mobility / Aerospace & Defense (m/f/d)
datePosted, validThrough2026-10-17T16:03:07.790Z, 2026-11-01T16:40:33.263Z
textSnippetStepStone's short summary of the ad
labelsEasy Apply | No cover letter required | Be an early applicant
easyApply, noCoverLettertrue / false
resultTypematch (or similar / nearby when you include those)

Pay

FieldExample
salaryMin, salaryMax58000, 65000
salaryCurrencyEUR
salaryPeriodYEAR (also MONTH, HOUR)
salaryTypeStepStone estimate — StepStone's own salary prediction for the ad; Employer when the employer states the pay

Work arrangement

FieldExample
workFromHomePartially remote / Fully remote / null (not stated)
contractTypePermanent contract, Temporary contract, Internship, Student job, Industrial placement student …
workTypeFull Time, Home office possible
employmentTypeFULL_TIME, PART_TIME (schema.org values)
discipline, subDisciplineIT, Softwareentwicklung (StepStone's own job taxonomy)

Where

FieldExample
locationMünchen — as shown on StepStone
city, postalCode, streetAddressMünchen, 80539, Karl-Scharnagl-Ring 5
countryDE, AT or BE
latitude, longitude48.13985, 11.583821

The ad text

FieldWhat it holds
descriptionThe complete job ad as plain text with paragraphs and bullet points
introductionThe employer's introduction ("About us")
responsibilitiesTasks — "Ihre Aufgaben", "Your tasks"
requirementsProfile — "Ihr Profil", "Qualifications"
benefitsWhat the employer offers — "Wir bieten", "Benefits"
additionalInformationContact, application notes, start date
descriptionHtmlOptional: the description with its original HTML (switch on includeDescriptionHtml)

The hiring company

FieldExample
companyName, companyIdHogan Lovells Cadwalader International LLP, 83998
companyUrlThe company's job list on StepStone
companyLogoUrlLogo image URL
companySize10000+, 1000+, 251-1000, 51-250, 11-50, 1-10
companyIndustriesMedizintechnik | IT & Tech
companyRating, companyReviewCount3.87, 81 — StepStone's employer rating and the number of reviews behind it
companyOpenJobs40 — open jobs of the company on StepStone

Bookkeeping

searchTerm, searchLocation (which search found the job), site (stepstone.de / .at / .be), scrapedAt.


Who uses it — 14 workflows

1. Recruiters sourcing for open roles

Search the job titles you recruit for in the cities you cover, keep postedWithin: "7", and read requirements and benefits side by side to see what competing employers ask for and offer. The salaryMin / salaryMax range tells you whether your client's offer is competitive before you call candidates.

2. Staffing and recruitment agencies — business development

Every job ad is a buying signal: the company has an open position today. Export all jobs of a region or discipline, group by companyName, and sort by companyOpenJobs and companySize — the companies with many open roles and 251–10,000 employees are your best prospects. companyIndustries lets you target the industries you place in.

3. Temporary-work agencies (Arbeitnehmerüberlassung)

Filter contractTypes: ["temp_agency"] to see which competitors post where, or exclude agency ads from your lead list by filtering them out of a full export. The labels field also shows which ads accept applications without a cover letter.

4. HR analytics and compensation teams

Pull every ad for a job family across Germany and compute salary bands from salaryMin / salaryMax by city, companySize and discipline. StepStone publishes an estimate for 68–76 % of jobs (68 % in a 1,000-job München run, 76 % of 25,094 Berlin and München jobs) — enough for solid medians per role and city.

5. Salary benchmarking for candidates and employers

Answer "what does a software engineer earn in Munich?" from live ads instead of surveys: search the title, set the city, export, and take the median of the estimated range. Repeat monthly to track movement.

6. Job aggregators and niche job boards

Feed your board with fresh StepStone jobs in your niche (e.g. nursing, engineering, English-speaking jobs via jobLanguages: ["en"]). Schedule a daily run with postedWithin: "1" and push the new rows to your database through a webhook. url always points to the original ad.

7. Labour-market researchers and economists

Count vacancies by region, discipline, contract type and home-office share. A whole federal state ("Bayern", ~38,000 jobs) or the whole country can be exported in one run, and datePosted gives the time dimension for weekly snapshots.

8. Employer branding and talent-acquisition teams

Benchmark your ads against competitors: what do they promise in benefits, how often do they offer home office (workFromHome), do they drop the cover letter (noCoverLetter), how are they rated (companyRating, companyReviewCount)?

9. Competitor and market intelligence

Paste a competitor's StepStone company page into startUrls and run it weekly: new ads reveal expansion (new cities), new teams (new disciplines) and seniority mix long before a press release.

10. Sales teams selling to HR (HR tech, job-ad services, relocation, benefits providers)

Companies with many open ads are buying HR products. Export a region, keep companies with companyOpenJobs ≥ 10, and hand the list with company size and industry to your SDRs.

11. Career coaches and outplacement providers

Give clients a curated, filtered list — e.g. experienceLevels: ["management"] in their city with salary estimates — instead of pointing them to a website.

12. Universities, career services and student job portals

Collect internship, student_job, thesis and entry_level jobs for your region every week and publish them to students.

13. Relocation, immigration and international-hiring services

jobLanguages: ["en"] returns the English-language ads in Germany, Austria or Belgium — the jobs open to people who do not speak German, Dutch or French.

14. AI, RAG and LLM pipelines

Feed structured, sectioned job ads (responsibilities, requirements, benefits as separate fields) to a vector index, a matching model or an agent through the API or the Apify MCP server, and let an LLM answer questions about the German job market from fresh data.


Cookbook — 16 ready-to-run inputs

Paste any of these into the Input tab (JSON view) or send it as the body of an API call.

1. Keyword + city

{
"searchTerms": ["software engineer"],
"locations": ["Berlin"],
"maxItems": 500
}

Measured: 489 matching jobs for this search on 2026-10-18 (StepStone also lists 138 "similar" and 59 "nearby" jobs, which are skipped unless you switch on includeSimilarJobs).

2. Several job titles × several cities

{
"searchTerms": ["Pflegefachkraft", "Gesundheits- und Krankenpfleger"],
"locations": ["Hamburg", "Bremen", "Hannover"],
"maxItems": 3000
}

Every term is combined with every location (6 searches). Each search first gets a fair share of maxItems; unused shares are redistributed.

3. Every job in a whole region

{
"locations": ["Bayern"],
"maxItems": 0,
"includeDetails": false
}

A federal state, a city or a country works as a location. Bavaria had 38,035 matching jobs on 2026-10-18. maxItems: 0 = no limit. With includeDetails: false the run uses search pages only (25 jobs per request) and is very fast; switch details on for descriptions and addresses.

4. Every job on stepstone.de

{
"maxItems": 0,
"includeDetails": false
}

Leave terms and locations empty: the Actor searches "Deutschland" (about 205,000 jobs). Make sure your Maximum cost per run covers the number of results (see What you pay).

5. Remote-only jobs

{
"searchTerms": ["data analyst"],
"workFromHome": ["full"],
"maxItems": 1000
}

["partial"] = hybrid, ["partial", "full"] = any home office.

6. Only well-paid jobs (stepstone.de)

{
"searchTerms": ["project manager"],
"locations": ["Frankfurt am Main"],
"minSalary": 70000,
"maxItems": 1000
}

StepStone filters by its salary information (the estimate where the employer gives none) in steps of 10,000 EUR per year.

7. Jobs posted in the last 24 hours (daily monitoring)

{
"searchTerms": ["SAP"],
"locations": ["Deutschland"],
"postedWithin": "1",
"sortBy": "date",
"maxItems": 0
}

Schedule this every morning (Schedules → Create new) and connect a webhook or Google Sheets — see Integrations.

8. One company's jobs

{
"startUrls": [
{ "url": "https://www.stepstone.de/cmp/de/goldbeck-technologies-gmbh-180101/jobs" }
]
}

Open the company on StepStone, click its jobs list and paste that URL. Several company pages can go in one run.

9. A StepStone search URL with any filter combination

{
"startUrls": [
{ "url": "https://www.stepstone.de/jobs/software-engineer/in-berlin?radius=30&ct=222&wfh=2" }
]
}

Set up the search on stepstone.de with every filter you like (categories, sectors, cities, skills …), copy the address bar, paste it. The Actor reads all pages of that exact search.

10. Specific job ads by URL

{
"startUrls": [
{ "url": "https://www.stepstone.de/stellenangebote--AI-native-Software-Engineer-m-w-d-Bielefeld-GOLDBECK-Technologies-GmbH--14603736-inline.html" }
]
}

Each job page becomes one full row (description, address, company card).

11. Austria (stepstone.at)

{
"country": "at",
"searchTerms": ["Projektmanager"],
"locations": ["Wien"],
"maxItems": 500
}

stepstone.at had 9,606 jobs on 2026-10-18 (Vienna: 2,911 matching).

12. Belgium (stepstone.be), French labels

{
"country": "be",
"language": "fr",
"locations": ["Brussel"],
"maxItems": 1000
}

stepstone.be had 10,145 jobs on 2026-10-18. Labels can be English, Dutch (nl) or French (fr); the job ads stay in their own language.

13. Internships and working-student jobs

{
"locations": ["München", "Stuttgart"],
"contractTypes": ["internship", "student_job", "thesis"],
"maxItems": 2000
}

14. Entry-level jobs in English

{
"experienceLevels": ["none"],
"jobLanguages": ["en"],
"locations": ["Deutschland"],
"maxItems": 2000
}

15. Part-time jobs with Easy Apply

{
"locations": ["Köln"],
"workType": "part",
"easyApplyOnly": true,
"maxItems": 1000
}

16. Fastest bulk export of a city (search data only)

{
"locations": ["Berlin", "München"],
"includeDetails": false,
"maxItems": 0
}

Search pages carry title, company, location, dates, salary estimate, home office, labels, snippet and benefits; switch details on for everything else.


Tutorial: your first run in the Apify Console

  1. Open the Actor and click Try for free (or Start if you already use it).
  2. In Search terms, type one or more job titles or keywords — e.g. software engineer. Press Enter after each.
  3. In Locations, add a city, a region or Deutschland — e.g. Berlin. Leave empty for the whole country.
  4. Pick the StepStone site (Germany, Austria or Belgium).
  5. Optional: open Filters and choose posting date, full-time / part-time, contract type, experience, home office, minimum salary, Easy Apply or ad language.
  6. Set Max results (start with 100 to see the data; 0 means no limit).
  7. Keep Include full job details on for descriptions, contract type, address and company data.
  8. Click Start. Rows appear in the Output tab within seconds; the status line shows progress.
  9. When the run finishes, click Export and choose CSV, Excel or JSON. The Output tab has three views: Overview, Pay & contract and Company & location.
  10. To repeat the search automatically, click Schedule and pick a time (e.g. every morning at 7:00).

Tutorial: run it from the API

1. Get your token

Apify Console → Settings → API & Integrations → copy your personal API token.

2. Run and get the data in one call (small runs)

curl -X POST "https://api.apify.com/v2/acts/logiover~stepstone-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN&format=json" \
-H "Content-Type: application/json" \
-d '{"searchTerms":["data engineer"],"locations":["Hamburg"],"maxItems":200}'

run-sync-… waits up to 5 minutes; use it for runs up to a few thousand jobs.

3. Start a run and fetch the data later (big runs)

# start
curl -X POST "https://api.apify.com/v2/acts/logiover~stepstone-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"locations":["Bayern"],"maxItems":0,"includeDetails":false}'
# poll: GET https://api.apify.com/v2/actor-runs/RUN_ID?token=YOUR_TOKEN (status SUCCEEDED)
# data: GET https://api.apify.com/v2/datasets/DATASET_ID/items?format=csv&token=YOUR_TOKEN

4. Node.js (apify-client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('logiover/stepstone-scraper').call({
searchTerms: ['Vertrieb', 'Account Manager'],
locations: ['München'],
postedWithin: '7',
maxItems: 1000,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const job of items) console.log(job.title, job.companyName, job.salaryMin, job.salaryMax, job.workFromHome);

5. Python (apify-client)

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("logiover/stepstone-scraper").call(run_input={
"searchTerms": ["Elektroniker"],
"locations": ["Nordrhein-Westfalen"],
"contractTypes": ["permanent"],
"maxItems": 2000,
})
for job in client.dataset(run["defaultDatasetId"]).iterate_items():
print(job["title"], job["companyName"], job["postalCode"], job["salaryMin"], job["companySize"])

6. Read the run summary

Every run writes a SUMMARY record to its key-value store: outcome, jobs per search, how many StepStone listed, pages read, job pages read, skipped similar/nearby jobs, and why the run stopped. Fetch it with GET https://api.apify.com/v2/key-value-stores/STORE_ID/records/SUMMARY?token=YOUR_TOKEN.


Input reference

FieldTypeDefaultWhat it does
searchTermsarray of strings[]Job titles, keywords or skills. Each term is one StepStone search. Empty = all jobs in the locations.
locationsarray of strings[]Cities, regions (federal states such as Bayern, Nordrhein-Westfalen), or the country (Deutschland, Österreich, Belgie). Every term × every location. Empty = whole country.
countryde / at / bedeWhich StepStone site to search. Pasted URLs always use their own site.
radiusKminteger 0–200StepStone's 30Search radius around a city.
postedWithinany / 1 / 7anyLast 24 hours or last 7 days (StepStone's filter).
workTypeany / full / partanyFull-time or part-time only.
contractTypesarray[]permanent, temporary, temp_agency, temp_to_perm (BE), freelance, franchise, entry_level, apprenticeship, internship, student_job, thesis, doctorate, traineeship, trade_representative. Types a site does not have are reported and ignored.
experienceLevelsarray[]none (first job), experienced, management.
workFromHomearray[]partial (hybrid), full (remote).
minSalaryinteger0Minimum yearly salary in EUR, stepstone.de only, steps of 10,000 (rounded down).
easyApplyOnlybooleanfalseOnly ads with StepStone's quick application.
jobLanguagesarray[]Language of the ad: de, en, nl, fr.
startUrlsarray of URLs[]StepStone search pages (any filters), company job lists (/cmp/…) and job pages (…-inline.html) from .de, .at or .be. Only URLs → only the URLs are read.
maxItemsinteger1000Maximum unique jobs per run. 0 = no limit.
includeDetailsbooleantrueRead every job page: full description and its sections, contract / work / employment type, discipline, postal code, street, coordinates, company size, industries, rating, open jobs. Off = search data only, much faster.
includeSimilarJobsbooleanfalseAlso keep StepStone's "similar jobs" (shown after keyword matches) and "nearby jobs" (shown after a city's jobs).
sortBydate / relevancedateNewest first, or StepStone's relevance ranking.
languageen / de / nl / frenLanguage of StepStone's labels (contract type, work type, badges). German for .de/.at, Dutch and French for .be.
includeDescriptionHtmlbooleanfalseAdd descriptionHtml with the original formatting.
maxRequestsPerSecondinteger 1–1612Upper limit for the request pace. The Actor slows down by itself when StepStone refuses requests.
proxyConfigurationobjectno proxyOptional. Direct connection by default; during a StepStone hold up to 80 requests go through residential IPs automatically. Set Apify RESIDENTIAL here for long runs through a hold.

Filters are validated: values a site does not offer are named in the log instead of silently returning nothing. StepStone ignores its own region filter inside URLs (fre=), so regions are searched as locations — the Actor tells you if a pasted URL contains one.


Output data dictionary

Fill rates were measured on a 1,000-job run (all jobs in München, job details on, 2026-10-18). "100 %" fields are always present; lower rates mean StepStone does not publish the value for every ad.

FieldTypeFillMeaningExample
idnumber100 %StepStone listing id, unique per row14571015
harmonisedIdstring100 %StepStone's global job idcc6c37ad-…
urlstring100 %Job ad on StepStone (tracking parameters removed)https://www.stepstone.de/jobs--…-inline.html
titlestring100 %Job titleSoftware Engineer – R&D Orthopedic Surgery
companyNamestring100 %Employer as shownBrainlab
companyIdnumber100 %StepStone company id58265
companyUrlstring100 %Company's job list on StepStonehttps://www.stepstone.de/cmp/en/brainlab-58265/work
companyLogoUrlstring99.8 %Logohttps://www.stepstone.de/upload_DE/logo/…gif
locationstring99.9 %Location as listedMünchen
postalCodestring50.6 %Validated postal code (5 digits DE, 4 digits AT/BE)80539
citystring98.5 %City of the jobMünchen
streetAddressstring28.9 %Street and number when the employer gives oneKarl-Scharnagl-Ring 5
countrystring100 %ISO country codeDE
latitude, longitudenumber64.2 %Coordinates of the workplace48.13985, 11.583821
datePostedstring (ISO 8601)100 %Publication time2026-10-17T16:03:07.790Z
validThroughstring (ISO 8601)100 %Planned end of the ad2026-11-01T16:40:33.263Z
salaryMin, salaryMaxnumber68.3 %Salary range58000, 65000
salaryCurrencystring68.3 %CurrencyEUR
salaryPeriodstring68.3 %YEAR, MONTH or HOURYEAR
salaryTypestring68.3 %StepStone estimate or EmployerStepStone estimate
workFromHomestring48.1 %Partially remote / Fully remote; null = not offered or not statedPartially remote
contractTypestring94.1 %Contract type labelPermanent contract
workTypestring91.6 %Work type labelFull Time, Home office possible
employmentTypestring100 %schema.org employment typeFULL_TIME
easyApplyboolean100 %StepStone quick applicationtrue
noCoverLetterboolean100 %"No cover letter required"false
labelsstring64.2 %All labels and badges, pipe-separatedEasy Apply | Be an early applicant
disciplinestring95.0 %StepStone job disciplineIT
subDisciplinestring75.7 %Sub-disciplineSoftwareentwicklung
textSnippetstring100 %StepStone's short summaryBrainlab ist ein Münchner Medizintechnik-Unternehmen …
benefitsstring96.4 %What the employer offers• 30 vacation days …
descriptionstring100 %Full ad textAbout Hogan Lovells …
introductionstring95.7 %Employer introductionAt the forefront of health technology …
responsibilitiesstring98.4 %TasksAs a highly motivated Software Engineer …
requirementsstring98.4 %Candidate profile• A degree in Computer Science …
additionalInformationstring75.8 %Contact / application notesWe look forward to receiving your application …
companySizestring81.3 %Employee band1000+
companyIndustriesstring81.7 %Company industries, pipe-separatedMedizintechnik | IT & Tech
companyRatingnumber39.8 %StepStone employer rating (1–5)3.87
companyReviewCountnumber39.8 %Reviews behind the rating81
companyOpenJobsnumber85.9 %Company's open jobs on StepStone40
resultTypestring100 %match, similar or nearbymatch
searchTermstringwhen a term was searchedThe search term that found the jobsoftware engineer
searchLocationstringwhen a location was searchedThe location that found the jobMünchen
sitestring100 %stepstone.de, stepstone.at or stepstone.bestepstone.de
scrapedAtstring (ISO 8601)100 %Collection time2026-10-18T21:14:38.000Z
descriptionHtmlstringoptionalOriginal HTML of the ad (includeDescriptionHtml: true)<h4>Über GOLDBECK</h4>…

With includeDetails: false the job-page fields (postalCode, city, streetAddress, coordinates, contractType, workType, employmentType, discipline, description and its sections, company size / industries / rating / open jobs) stay null; everything else is filled exactly as above.

CSV / Excel columns (in this order): id, harmonisedId, url, title, companyName, companyId, companyUrl, companyLogoUrl, location, postalCode, city, streetAddress, country, latitude, longitude, datePosted, validThrough, salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryType, workFromHome, contractType, workType, employmentType, easyApply, noCoverLetter, labels, discipline, subDiscipline, textSnippet, benefits, description, introduction, responsibilities, requirements, additionalInformation, companySize, companyIndustries, companyRating, companyReviewCount, companyOpenJobs, resultType, searchTerm, searchLocation, site, scrapedAt.


Real output sample

A real row from the 1,000-job run on 2026-10-18 (all jobs in München, default settings; the long texts are shortened here):

{
"id": 14571015,
"harmonisedId": "cc6c37ad-7802-4598-97f2-afc5b81262dd",
"url": "https://www.stepstone.de/jobs--Team-Member-Marketing-and-Business-Development-Automotive-Mobility-Aerospace-Defense-m-f-d-Muenchen-Hogan-Lovells-Cadwalader-International-LLP--14571015-inline.html",
"title": "Team Member Marketing and Business Development – Automotive & Mobility / Aerospace & Defense (m/f/d)",
"companyName": "Hogan Lovells Cadwalader International LLP",
"companyId": 83998,
"companyUrl": "https://www.stepstone.de/cmp/en/hogan-lovells-cadwalader-international-llp-83998/work",
"companyLogoUrl": "https://www.stepstone.de/upload_DE/logo/0/logoHogan-Lovells-International-LLP-83998DE-2607011601.gif",
"location": "München",
"postalCode": "80539",
"city": "München",
"streetAddress": "Karl-Scharnagl-Ring 5",
"country": "DE",
"latitude": 48.13985,
"longitude": 11.583821,
"datePosted": "2026-10-17T16:03:07.790Z",
"validThrough": "2026-11-01T16:40:33.263Z",
"salaryMin": 58000,
"salaryMax": 65000,
"salaryCurrency": "EUR",
"salaryPeriod": "YEAR",
"salaryType": "StepStone estimate",
"workFromHome": null,
"contractType": "Permanent contract",
"workType": "Full Time",
"employmentType": "FULL_TIME",
"easyApply": false,
"noCoverLetter": false,
"labels": null,
"textSnippet": "Hogan Lovells Cadwalader is a global law firm with 3,100+ lawyers across 36 offices. They're looking for a team member to join Marketing and Business Development …",
"benefits": "• Varied and challenging work in a collegial, highly motivated team\n• A modern, attractive, and future-proof workplace with excellent public transport connections\n• Comprehensive onboarding …",
"description": "About Hogan Lovells Cadwalader\n\nHogan Lovells Cadwalader brings together more than 3,100 lawyers across 36 worldwide offices …",
"resultType": "match",
"searchLocation": "München",
"site": "stepstone.de"
}

A second real row (same run) with company data, a sub-discipline and home office:

{
"id": 14624658,
"title": "Software Engineer – R&D Orthopedic Surgery",
"companyName": "Brainlab",
"location": "München",
"latitude": 48.143295,
"longitude": 11.564068,
"salaryMin": 54000,
"salaryMax": 76000,
"salaryCurrency": "EUR",
"salaryPeriod": "YEAR",
"salaryType": "StepStone estimate",
"workFromHome": "Partially remote",
"contractType": "Permanent contract",
"workType": "Full Time, Home office possible",
"employmentType": "FULL_TIME",
"easyApply": true,
"discipline": "IT",
"subDiscipline": "Softwareentwicklung",
"requirements": "• A degree in Computer Science, Mathematics, Physics, Engineering, or a related field …",
"companySize": "1000+",
"companyIndustries": "Medizintechnik | IT & Tech",
"companyRating": 3.87,
"companyReviewCount": 81,
"companyOpenJobs": 40
}

Scale and speed (measured)

All runs on the Apify platform, default memory (2 GB), 2026-10-18.

RunResultTime
Prefill / first run (50 jobs, "software engineer" in Berlin, full job details)50 jobs, first row after 1.7 s6.6 s
1,000 jobs, default settings (all jobs in München, full job details)1,000 jobs, 1,000 job pages read, 0 duplicates, 0 refused requests90 s
Every job in Berlin + München, search data only (includeDetails: false, maxItems: 0)25,081 unique jobs, 0 duplicates — 99.7 % (Berlin) and 99.8 % (München) of the jobs StepStone counted197 s
Every job in Berlin, search data only, with completion pass15,129 of 15,151 listed jobs (99.9 %): first pass 15,002, completion pass +127243 s

How big searches are read completely

  • No page cap. StepStone paginates every search to its end. We checked the deepest pages of a Germany-wide search: page 2,000, 5,000 and 8,000 (offset 199,975) all returned 25 real, distinct jobs, and none of them repeated page 1. So a region or the whole country is read page by page — no splitting tricks are needed, and nothing is silently left out.
  • No fake pagination — but a moving order. Pages 1, 2 and 3 of the same search are disjoint and identical on repeat. Over a long search, however, StepStone's order shifts slightly while you read it: one date-ordered pass over all Berlin jobs saw 15,002 of the 15,151 listed (99.0 %), because a few jobs slipped between pages while they were read. The Actor measures this per search (jobsSeen and coveragePercent in the SUMMARY) and, when a search ends below 99.5 % of StepStone's count, reads it once more in the other order (completion pass). Jobs already saved are skipped for free. Berlin then reached 15,129 of 15,151 listed jobs (99.9 %).
  • Multi-location ads are saved once. An ad that lists several cities appears in each of those city searches — Berlin and München shared 1,078 such ads in one run. Every job is de-duplicated by its StepStone id, so you pay for it once.
  • Matches first, extras last. StepStone lists the real matches first and then appends "similar jobs" (for keywords) and "nearby jobs" (for cities). By default the Actor reads exactly the pages holding the matches and stops — e.g. "SAP ABAP" has 128 matches but 7,627 similar jobs, which you only get with includeSimilarJobs.
  • Pace StepStone accepts. StepStone limits how fast one address may send requests. Measured: 3, 6, 10 and 16 requests per second stayed clean for 300–600 requests each; 30 per second got the connection blocked after about 180 requests. The Actor therefore paces itself (default 12 per second, search pages and job pages together), halves the pace as soon as StepStone refuses something and speeds up again after 20 quiet seconds.
  • Search data vs. job pages. One search page carries 25 jobs; each job page is one more request. Search data alone (~130 jobs per second) is therefore more than ten times faster than full details (~11 jobs per second).

What you pay

A fixed price per job in the dataset — compute, connection and job-page requests are included. No monthly rental, no charge for duplicates, similar/nearby jobs you did not ask for, or jobs that were filtered out.

Apify planPrice per 1,000 jobs1,000 jobs10,000 jobs100,000 jobs
Free$1.50$1.50$15.00$150.00
Bronze$1.33$1.33$13.33$133.33
Silver$1.17$1.17$11.67$116.67
Gold, Platinum, Diamond$1.00$1.00$10.00$100.00

The price is the same with or without job details.

Maximum cost per run

Apify stops every pay-per-result run at its Maximum cost per run (you set it in the run options; the platform also applies a default). The Actor reads that limit when it starts, collects only what it covers, stops cleanly and says so in the status: "Saved 37 jobs — this run's maximum cost ($0.05) covers 37 results at the current price. Raise "Maximum cost per run" to get more." (real message of a test run on 2026-10-18; the number depends on your plan's price) The run still ends as Succeeded, and you pay only for the jobs in the dataset. For a full-country export (200,000+ jobs) raise the limit accordingly.


Integrations

API, apify-client and webhooks

See Tutorial: run it from the API. Add a webhook (Actor → Integrations → Webhooks) on Run succeeded to POST the dataset id to your own endpoint, a CRM middleware or a queue — the cleanest way to load new jobs into HubSpot, Salesforce, Pipedrive or an ATS.

Make (Integromat)

Use the Apify app: module "Run an Actor" with logiover/stepstone-scraper and your JSON input, then "Get Dataset Items" and map fields into Google Sheets, Airtable, Slack, email or your CRM.

Zapier

Trigger "Finished Actor Run" (or action "Run Actor") in the Apify Zapier app, then "Find Dataset Items" to send every new job to a sheet, a channel or a CRM record.

n8n

The Apify node runs the Actor and returns the items; continue with any n8n node — Postgres, Google Sheets, HTTP Request, OpenAI.

Google Sheets

Export the dataset as CSV/Excel, or use the Apify Google Sheets integration to append the rows of every scheduled run to a sheet.

Airtable

Use Make, Zapier or n8n with the Airtable module, or import the CSV export; id makes a good primary field for de-duplication.

Scheduling

Actor → Schedules: run daily with postedWithin: "1" (or weekly with "7") to collect only new jobs. Keep the dataset per run or merge into one sheet.

Data warehouses (BigQuery, Snowflake, Postgres, S3)

Fetch GET /v2/datasets/{id}/items?format=json (or csv, xlsx, xml) from your ETL tool, or use a webhook to trigger the load. All dates are ISO 8601, all numbers are numbers.

MCP and AI agents

The Actor works with the Apify MCP server, so Claude, ChatGPT or your own agent can call it as a tool — "find remote data-engineering jobs in Germany posted this week with a salary above 70k" — and receive structured rows.


Performance tips

  • Search data first, details for a shortlist. For tens of thousands of jobs, run with includeDetails: false (25 jobs per request), filter in your spreadsheet, then paste the interesting job URLs into startUrls for full details.
  • Use StepStone's filters instead of post-filtering — postedWithin, contractTypes, workFromHome, minSalary and easyApplyOnly shrink the search before anything is downloaded.
  • Keep maxRequestsPerSecond at the default. Higher values do not help: StepStone refuses bursts, and the Actor would only spend time backing off.
  • Daily monitoring: postedWithin: "1" with sortBy: "date" reads only the newest jobs.
  • Many cities: list them in locations in one run — each gets a fair share of maxItems, and duplicates across overlapping cities are removed automatically.
  • Leave includeSimilarJobs off unless you really want StepStone's loosely related suggestions.

Troubleshooting: every status message explained

Status / outcomeWhat it meansWhat to do
Saved N jobs (max results reached) in X s.You got what you asked for.Raise maxItems for more.
Saved N of M listed jobs (every matching job read) in X s.Every page of every search was read. N can be a little below M: jobs that appear twice across searches are kept once, and StepStone's counts change while you read. coveragePercent per search is in the SUMMARY.—
Log: Completion pass for N search(es) that ended below 99.5 % of StepStone's count …StepStone's order shifted during a long search; the search is read once more in the other order to pick up the jobs that slipped between pages.Nothing — it is automatic and only adds new jobs.
Saved N jobs — this run's maximum cost ($X) covers N results …The run reached your Maximum cost per run (outcome COMPLETED, stoppedBy: MAX_COST).Raise the limit in the run options.
Saved 0 jobs — this run's maximum cost … does not cover a single result.The limit is below the price of one job.Raise the limit.
StepStone has no jobs for "…" in X. If the place is spelled differently … (EMPTY_RESULT)StepStone answered, but the location is unknown to it or has no jobs.Try the local spelling ("München", "Wien", "Brussel") or a bigger area.
No jobs matched on StepStone — the search ran fine but returned 0 results. (EMPTY_RESULT)The search and filters exclude everything.Use broader terms or fewer filters.
PARTIAL: … in the log, outcome: "PARTIAL" in SUMMARYRows were saved, but some pages could not be read after all retries.Re-run later; the SUMMARY lists which search was affected.
Run failed: No jobs collected: no page could be fetched (…) (BLOCKED / FETCH_FAILED)StepStone refused every request — no empty "success" is reported in this case.Re-run later, or set proxyConfiguration to Apify RESIDENTIAL as a fallback.
Run failed: None of the start URLs is a StepStone search page … (BAD_INPUT)The pasted URLs are not StepStone search, company or job pages.Paste URLs from stepstone.de/.at/.be.
Log: StepStone is refusing this connection (HTTP 403 Access Denied) — pausing 30 s …StepStone has put the connection on hold (measured: about 10 minutes after heavy traffic). The Actor pauses and resumes by itself; pausesForRefusals in the SUMMARY counts the pauses.Wait, re-run later, or add Apify RESIDENTIAL as fallback proxy.
Log: StepStone ignores the region filter in URLs (fre=…)Your pasted URL contains StepStone's region facet, which StepStone itself ignores.Use the region as a location ("locations": ["Bayern"]).
Log: Contract type "…" does not exist on stepstone.be — ignored.That filter value does not exist on the chosen site.Pick a type the site offers.
Job-page fields empty for a few rowsThe ad was taken offline between the search and the job page (counted as jobPagesOffline in SUMMARY).—

Honest limits

  • Salary is StepStone's estimate. In all 25,094 Berlin and München jobs we checked on 2026-10-18, every salary range was StepStone's own prediction (salaryType: "StepStone estimate"); 76 % of those jobs carried one (68 % in the 1,000-job München run with details). stepstone.at and stepstone.be publish no salary ranges. Pay written only inside the ad text stays in description.
  • No skills list per job. StepStone shows skill filters on search pages but publishes no skill list per ad, so there is no skills column — read requirements instead.
  • Addresses are as complete as the employer made them. Postal code ~51 %, coordinates ~64 %, street ~29 % (1,000-job sample); remote and multi-location ads often have none.
  • Company rating exists for about 40 % of jobs (employers with reviews on StepStone).
  • Discipline names are StepStone's German taxonomy (e.g. Softwareentwicklung) even when labels are English.
  • Pace. StepStone limits requests per address; the Actor keeps to ~12 per second. Search data alone is fast (25 jobs per request); with job pages expect roughly 11 jobs per second.
  • Temporary holds. If one network address sends StepStone a lot of traffic, StepStone may refuse it for a while. In our testing on 2026-10-18 this happened once, right after several thousand requests of back-to-back test runs: StepStone answered "Access Denied" for about 10 minutes and then served normally again. The Actor pauses (30 s, 60 s, 120 s) instead of hammering, keeps the rows it has, and reports the run as PARTIAL if pages stayed unreadable. Rows whose job page could not be read keep their search data (job-page fields null). For guaranteed continuity, set proxyConfiguration to Apify RESIDENTIAL: the Actor then switches to it only while the direct connection is refused. Since build 1.0.13 a run that starts inside such a hold automatically sends up to 80 requests through residential IPs, so small runs (like the 50-job example) still finish; longer runs pause until the hold ends, or keep going through your own RESIDENTIAL proxy setting.
  • Counts move. StepStone adds and removes ads all the time, so totals differ slightly between runs and between StepStone's headline number and the rows you receive.
  • stepstone.nl does not exist; totaljobs.com (StepStone UK) is not covered.

How it compares

This ActorCopying from stepstone.de by handStepStone's own job alerts
Jobs per runUp to the whole country (~205,000)A few dozen per hourNotification emails
Structured fields48 columns, typedManualNo export
Salary range as numbersYesManualNo
Full description split into sectionsYesManualNo
Company size, industries, ratingYesManualNo
Export CSV / Excel / JSON / APIYesNoNo
Automation (schedule, webhooks, Make, Zapier, n8n)YesNoEmail only
Login neededNoNoYes
Honest failure when StepStone is unreachableYes (run fails with the reason)——

FAQ

What is StepStone Scraper?

An Apify Actor that exports job ads from stepstone.de, stepstone.at and stepstone.be — title, company, location, salary estimate, home office, contract type, full description, address and company data — as JSON, CSV or Excel, for any search, region or the whole country.

Is there an official StepStone API for job data?

StepStone offers APIs to employers for posting ads, not a public API to read job listings. This Actor reads the public job pages any visitor sees and returns them as structured data, so it works as a StepStone API alternative for job data.

How do I scrape StepStone jobs to Excel or CSV?

Run the Actor with your search, open the Output tab and click Export → Excel (or CSV). Through the API add format=xlsx or format=csv to the dataset-items URL.

Do I need a StepStone account, login or cookies?

No. Everything is public; no account, cookies or API key of yours are needed.

Do I need proxies?

No. The Actor uses a direct connection at a pace StepStone accepts. Only while StepStone holds that connection does it send a limited number of requests (at most 80 per run) through residential IPs — included in the price.

How many jobs can I scrape from StepStone?

As many as StepStone lists: about 205,000 on stepstone.de, 9,600 on stepstone.at and 10,100 on stepstone.be (2026-10-18). StepStone has no page limit, so whole regions and the whole country can be exported.

How fast is it?

50 jobs with full details in 6.6 s, 1,000 jobs with full details in 90 seconds; search data alone runs more than ten times faster (see Scale and speed).

How much does it cost to scrape StepStone?

$1.00–$1.50 per 1,000 jobs depending on your Apify plan, everything included — e.g. 10,000 jobs cost $10–$15.

Does it get salaries from StepStone?

Yes — salaryMin, salaryMax, salaryCurrency, salaryPeriod and salaryType. On stepstone.de 68–76 % of ads carry StepStone's salary estimate (measured 2026-10-18); salaryType says whether a range is StepStone's estimate or stated by the employer.

What does "StepStone estimate" mean in salaryType?

StepStone calculates an expected salary range for ads without a published salary ("Gehaltsschätzung"). It is StepStone's prediction, not the employer's offer — use it for benchmarks, not as a promise.

Can I scrape only remote or home-office jobs?

Yes: "workFromHome": ["full"] for fully remote, ["partial"] for hybrid, or both.

Can I filter by salary?

On stepstone.de: "minSalary": 60000 keeps jobs with at least 60,000 EUR per year (StepStone's filter works in 10,000 steps). Every row also has the numbers, so you can filter further in your spreadsheet.

Can I get all jobs in one city or one federal state?

Yes — put the city or state into locations and set maxItems to 0. Berlin had 15,022 matching jobs, München 11,037 and Bayern 38,035 on 2026-10-18.

Can I export every job on stepstone.de?

Yes: leave search terms and locations empty and set maxItems: 0. Raise your Maximum cost per run to cover ~205,000 results.

How do I get the jobs of one company?

Paste the company's StepStone job list (https://www.stepstone.de/cmp/de/<company>-<id>/jobs) into startUrls.

Can I paste a StepStone search URL with my filters?

Yes. Any search page from stepstone.de, .at or .be works, including categories, sectors, cities and skills you selected on the site.

Does it work for StepStone Austria and Belgium?

Yes — set country to at or be, or paste URLs from those sites. Belgian labels can be English, Dutch or French.

What are "similar jobs" and "nearby jobs"?

After the real matches StepStone appends loosely related jobs ("similar") for keyword searches and jobs from the wider region ("nearby") for city searches. They are skipped by default and included with includeSimilarJobs: true; resultType says which kind each row is.

Why did I get fewer jobs than StepStone's headline number?

StepStone's headline often includes the similar jobs, which are skipped by default. Also, jobs found by two of your searches are saved once, and StepStone's numbers change while the run reads.

How do I monitor new StepStone jobs every day?

Schedule a run with "postedWithin": "1" and "sortBy": "date" and connect a webhook, Google Sheets or Slack.

Are duplicates removed?

Yes. Every job is de-duplicated by its StepStone id within a run, also across several searches and pages.

What is in the description fields?

description is the complete ad text; introduction, responsibilities, requirements, benefits and additionalInformation are the same ad split into StepStone's sections, so you can analyse requirements or benefits on their own.

Are the job ads in English?

Ads stay in the language the employer wrote them in (mostly German on stepstone.de). StepStone's labels (contract type, work type, badges) are English by default and can be German, Dutch or French. Use jobLanguages: ["en"] to get only English-language ads.

Does it include the employer's contact person or email?

Only when the employer wrote it into the ad text (additionalInformation / description). The Actor does not collect data about candidates.

Why is the postal code empty for some jobs?

Some ads give only a region ("deutschlandweit") or several locations; StepStone then publishes no postal code. Invalid placeholders such as 00000 are removed rather than passed on.

What happens if StepStone blocks or changes something?

The Actor slows down when StepStone refuses requests, retries, and — if nothing works — fails with the reason in the log and in the SUMMARY record. It never reports an empty dataset as a successful search.

Can I use the data with AI or an LLM?

Yes — through the API, webhooks or the Apify MCP server. The sectioned description fields are well suited for embeddings, matching and summarisation.

Can I get the original HTML of the job ad?

Yes: "includeDescriptionHtml": true adds descriptionHtml.

Wie kann ich StepStone Stellenanzeigen exportieren?

Suchbegriffe und Orte eintragen (z. B. "Vertrieb" und "Hamburg"), starten und das Ergebnis im Output-Tab als Excel, CSV oder JSON exportieren — ohne Login.

Kann ich alle Jobs in einem Bundesland herunterladen?

Ja: das Bundesland als Ort eintragen (z. B. "Bayern", "Nordrhein-Westfalen") und maxItems auf 0 setzen.

Gibt es Gehaltsdaten?

Ja — die Gehaltsschätzung von StepStone als Min-/Max-Betrag mit Zeitraum (Jahr/Monat/Stunde) für 68–76 % der Anzeigen auf stepstone.de (gemessen am 2026-10-18).

Kann ich nur Homeoffice- oder Remote-Jobs scrapen?

Ja: workFromHome auf ["full"] (nur Homeoffice) oder ["partial"] (teilweise Homeoffice) setzen.

I need a field or filter that is missing. Can you add it?

Yes — open an issue on the Actor's Issues tab and describe what you need.


Glossary

TermMeaning
Predicted salary / GehaltsschätzungStepStone's own estimate of the salary range for an ad without a published salary (salaryType: "StepStone estimate").
Homeoffice / Teilweise Home-Office / Nur Home-OfficeHome office possible / partially remote (hybrid) / fully remote (workFromHome).
Vollzeit / TeilzeitFull-time / part-time (workType, filter workType).
Feste AnstellungPermanent contract (contractTypes: ["permanent"]).
Befristeter VertragFixed-term contract (temporary).
ArbeitnehmerüberlassungTemporary agency work / staffing (temp_agency).
Werkstudent / StudentenjobWorking student / student job (student_job).
PraktikumInternship (internship).
Ausbildung / duales StudiumApprenticeship / dual study (apprenticeship).
Berufseinstieg / TraineeEntry level / graduate programme (entry_level).
ReferendariatLegal / teaching traineeship (traineeship).
Schnelle Bewerbung / Easy ApplyQuick application through StepStone (easyApply).
Anschreiben nicht erforderlichNo cover letter required (noCoverLetter).
DisziplinStepStone's job category (discipline, subDiscipline).
Similar / nearby jobsSuggestions StepStone appends after the real matches (resultType).
Maximum cost per runThe spending limit Apify applies to a pay-per-result run.

This Actor reads only publicly available job ads — the same pages any visitor sees on StepStone without logging in — and collects business information that employers publish to be seen. It does not log in, does not bypass access controls, and does not collect data about job seekers. Some ads contain the name of a contact person or an application email written by the employer; if you store or process such personal data, the GDPR (DSGVO) applies to you: have a legitimate purpose, keep only what you need, and delete it when it is no longer needed. You are responsible for using the data in line with StepStone's terms, applicable law and your own policies; if in doubt, ask a lawyer.

Legal and trademark disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by StepStone, The Stepstone Group or any of their subsidiaries. All trademarks are the property of their respective owners.


Changelog

  • 1.0 (2026-10-18) — First release: stepstone.de, stepstone.at and stepstone.be; keyword × location searches with StepStone's filters (posting date, full-/part-time, 14 contract types, experience, home office, minimum salary, Easy Apply, ad language, radius, sort); pasted search, company and job URLs; every page of a search to its end (no page cap on StepStone); matches only by default, similar/nearby jobs optional; job pages with full description split into sections, contract / work / employment type, discipline, postal code, street, coordinates and company size / industries / rating / open jobs; StepStone salary estimate as numbers; English / German / Dutch / French labels; self-pacing connection; pay-per-result budget handled cleanly.

Support

Questions, a bug, or a field you need? Open an issue on the Issues tab — we reply within 24 hours. If a run did something unexpected, include the run link so we can look at its log and SUMMARY.