StepStone Scraper
Pricing
from $2.10 / 1,000 job postings
StepStone Scraper
Scrape StepStone.de job listings with full descriptions, employer benefits and geo coordinates. Export to CSV, Excel, JSON or XML.
Pricing
from $2.10 / 1,000 job postings
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share

๐ผ StepStone Scraper
๐ Export Germany's largest job board in seconds. 34 fields per posting, the employer benefits list StepStone shows on the ad, and exact ISO posting timestamps instead of "vor 12 Stunden".
StepStone.de is the biggest job board in the German-speaking market, and it sits behind an Akamai edge that answers a plain HTTP request with Access Denied. This Actor gets past that with German residential routing and reads the same server-rendered result list the site builds for a real browser, so the data you get is the data StepStone actually published. Paste a search URL such as https://www.stepstone.de/jobs/software-engineer, paste a single job ad, or just type a keyword and a city and let the Actor build the search for you.
Measured on live runs while building this Actor: software-engineer returns 4,650 postings across 186 pages, manager returns 25,665 across 1,027 pages, and page 1,027 hands back the exact 15-item remainder rather than looping. A 5-job run with full detail pages finished in 14 seconds. Every one of the 34 fields was populated on the verification run, benefits ran 8 to 20 entries per ad, and descriptions ran 2,900 to 7,600 characters.
| ๐ฏ Target Audience | ๐ก Primary Use Cases |
|---|---|
| Recruiters and talent intelligence teams in DACH | Track which competitors are hiring, where, and on what contract terms |
| HR and compensation teams | Benchmark the benefits packages employers actually advertise, by sector and region |
| Job board and aggregator operators | Feed a niche German board with fresh postings, deduplicated and geo-coded |
| Market researchers and investors | Read hiring velocity by sector as an expansion signal |
| Job seekers and career coaches | Export every matching role into a spreadsheet and filter it your own way |
๐ What the StepStone Scraper does
- ๐ Gets through the Akamai edge. StepStone answers a normal HTTP client with a 403 and occasionally serves an interstitial challenge instead of the page. The Actor routes through German residential IPs and retries on a rotated session, so a challenge costs a second, not a run.
- ๐ Employer benefits, as a list. Every ad carries the benefit chips the employer paid to display, from
Betriebliche AltersvorsorgetoDienstrad. The Actor returns them as a clean array of 8 to 20 entries. Nothing else in this niche extracts them. - ๐ฐ Exact posting timestamps. StepStone shows visitors
Erschienen: vor 12 Stunden. The Actor returnsdatePostedas a real timestamp with timezone offset, plus a plainpostedDatefor grouping. - ๐งญ Geo coordinates and postal codes. Latitude, longitude and the German postal code come straight off the ad, so postings map without a geocoding step.
- ๐ No depth cap. A query is exhaustible to its last result.
managerpaginates cleanly through all 1,027 pages and stops, with no wrap-around and no duplicate rows. - ๐๏ธ Every StepStone filter. Posting age, home office, full or part time, 13 contract types, 3 experience levels, 28 disciplines, 31 sectors, ad language and application method, each one taken from StepStone's own live facet list rather than invented.
- ๐ Description twice.
descriptionTextis clean plain text with German entities decoded, ready for an LLM or a spreadsheet.descriptionHtmlkeeps the original markup for rendering. - โก Two speeds. Full detail mode opens every ad for benefits, coordinates and the description. Listing-only mode collects 25 jobs per request when you just need titles, companies and links.
๐ก Why it matters: the benefits package and the exact posting date are the two things a DACH hiring analyst reads a job ad for, and they are the two StepStone does not hand you in a usable form. This Actor returns both on every row.
๐ฌ Full Demo (๐ง Coming soon)
๐ Output
Every run writes one flat row per job posting. 34 fields, always the same keys, so the dataset is safe to load straight into a pipeline. Fields the source withholds on a given ad carry Not Disclosed rather than an empty cell.
| Field | Type | Description |
|---|---|---|
๐ผ imageUrl | string | Employer logo hosted by StepStone |
๐ title | string | Job title as published |
๐ url | string | Public job ad URL |
๐ jobId | number | StepStone posting ID |
๐ข companyName | string | Hiring company |
๐ท companyId | number | StepStone company ID, stable across postings |
๐ companyUrl | string | Company profile page on StepStone |
๐ต isAnonymousEmployer | string | Yes when the employer hides its identity |
๐ location | string | Work location as StepStone displays it |
๐ฎ postalCode | string | German postal code |
๐ country | string | ISO country code |
๐งญ latitude | number | Latitude of the work location |
๐งญ longitude | number | Longitude of the work location |
๐ฐ datePosted | string | Exact publication timestamp with timezone offset |
๐
postedDate | string | Publication date, YYYY-MM-DD |
โณ validThrough | string | When the posting expires |
๐ผ employmentType | string | FULL_TIME, PART_TIME, INTERN and so on |
๐ contractType | string | StepStone's German contract label, e.g. Feste Anstellung |
๐ workType | string | e.g. Vollzeit, Teilzeit, Homeoffice mรถglich |
๐ homeOffice | string | No, Partial or Full |
๐ญ industry | string | StepStone's discipline and sub-discipline |
โก directApply | string | Yes when the application completes on StepStone |
๐ quickApply | string | Yes when the ad carries the quick-apply badge |
โ๏ธ coverLetterRequired | string | No when the ad says a cover letter is not needed |
๐ฃ isSponsored | string | Yes for promoted, top-job or highlighted placements |
๐ resultSection | string | Whether StepStone ranked the hit as a main or semantic match |
โ๏ธ textSnippet | string | The teaser StepStone shows on the result card |
๐ descriptionText | string | Full ad text, HTML stripped, entities decoded |
๐งพ descriptionHtml | string | Full ad, original HTML |
๐ benefits | array | Employer benefit chips shown on the ad |
๐
labels | array | Badges such as "Anschreiben nicht erforderlich" |
๐ searchUrl | string | The page this row was collected from |
๐ scrapedAt | string | ISO timestamp of collection |
โ error | string | Populated only on a row that reports a failure |
Three real records from a verification run on https://www.stepstone.de/jobs/software-engineer:
{"imageUrl": "https://www.stepstone.de/upload_DE/logo/E/logoAtotech-Deutschland-GmbH-Co-KG-8107DE-2208291700.gif","title": "Software Engineer, Commissioner (w/m/d)","url": "https://www.stepstone.de/stellenangebote--Software-Engineer-Commissioner-w-m-d-Feucht-bei-Nuernberg-Atotech-Deutschland-GmbH-Co-KG--14445878-inline.html","jobId": 14445878,"companyName": "Atotech Deutschland GmbH & Co. KG","companyId": 8107,"location": "Feucht (bei Nรผrnberg)","postalCode": "90537","country": "DE","latitude": 49.35676,"longitude": 11.204779,"datePosted": "2026-09-01T08:54:46+02:00","postedDate": "2026-09-01","validThrough": "2026-10-01T07:15:11.65Z","employmentType": "FULL_TIME","contractType": "Feste Anstellung","workType": "Vollzeit","homeOffice": "No","industry": "IT, IT-Softwareentwicklung","directApply": "Yes","benefits": ["Betriebskantine", "Coaching-Angebote", "Betriebsarzt im Unternehmen", "Betriebliche Altersvorsorge", "Flexible Arbeitszeiten", "Gute Verkehrsanbindung", "Homeoffice", "Parkplatz"],"scrapedAt": "2026-09-01T18:26:40.978Z","error": null}
{"title": "Software Engineer (w/m/d) AWION","url": "https://www.stepstone.de/stellenangebote--Software-Engineer-w-m-d-AWION-Holzwickede-Rhenus-Group--14438282-inline.html","jobId": 14438282,"companyName": "Rhenus Group","companyId": 55272,"location": "Holzwickede","postalCode": "59549","country": "DE","datePosted": "2026-08-31T04:10:06+02:00","validThrough": "2026-09-30T07:28:49.157Z","employmentType": "FULL_TIME","contractType": "Feste Anstellung","workType": "Vollzeit","industry": "IT, IT-Softwareentwicklung","coverLetterRequired": "No","benefits": ["Bonus", "Betriebskantine", "Karrierechancen", "Dienstrad", "Mitarbeiter-Laptop", "Kostenfreie Getrรคnke", "Umfangreiche Einarbeitung", "Mitarbeiterrabatte", "Ergonomischer Arbeitsplatz", "Flache Hierarchien", "Flexible Arbeitszeiten", "Homeoffice", "Firmenevents- und Veranstaltungen", "Ein modernes Arbeitsumfeld", "Bรผrokรผche", "Eigene Ideen", "Parkplatz", "Unbefristeter Arbeitsvertrag", "Tรคtigkeit in Festanstellung", "Weiterbildungsmรถglichkeiten"],"labels": ["Anschreiben nicht erforderlich"],"error": null}
{"title": "Software Engineer (m/w/d) fรผr hardwarenahe Algorithmik (Informatik, Elektrotechnik oder Physik)","jobId": 14342448,"companyName": "Diehl Defence GmbH & Co. KG","companyId": 98925,"location": "รberlingen am Bodensee","postalCode": "88662","latitude": 47.75776,"longitude": 9.187225,"datePosted": "2026-08-29T04:54:53+02:00","employmentType": "FULL_TIME","contractType": "Feste Anstellung","workType": "Vollzeit","industry": "Ingenieurwesen, Ingenieurwesen-Elektrotechnik","benefits": ["Betriebskantine", "Coaching-Angebote", "Firmenwagen", "Betriebsarzt im Unternehmen", "Firmenhandy", "Betriebliche Altersvorsorge", "Mitarbeiterrabatte", "Fitnessangebote", "Flexible Arbeitszeiten", "Homeoffice", "Firmenevents- und Veranstaltungen", "Essenszulage", "Vorsorgeuntersuchung", "Parkplatz", "Sportaktivitรคten"],"error": null}
โจ Why choose this Actor
- ๐ The benefits array. Employers pay StepStone to display a benefits package. Those chips are structured data on the page and this Actor returns them as an array. It is the single field a compensation or employer-branding analyst opens a German job ad for.
- ๐งญ Geo-ready out of the box. Coordinates and postal codes mean postings plot on a map with no geocoding bill attached.
- ๐ Exhaustible queries. Deep pagination was tested to the last page of a 25,665-result query. You can take a whole segment, not the first few hundred rows.
- ๐ก๏ธ Honest about the wall. StepStone hides salary from logged-out visitors. This Actor does not ship a salary column that would be empty on every row, and says so up front rather than after purchase.
- ๐งฑ Stable field contract. The same 34 keys on every row, sentinels instead of nulls, so a CSV import or a database load never breaks on a missing column.
- โ๏ธ Filters taken from the source. Every dropdown value was read off StepStone's live facet tree and verified against a result count, so no filter silently returns the unfiltered set.
๐ How it compares to alternatives
| This Actor | Typical StepStone scrapers | |
|---|---|---|
| Employer benefits list | โ 8 to 20 chips per ad, as an array | โ Not extracted |
| Geo coordinates | โ Latitude, longitude, postal code | โ ๏ธ Usually city name only |
| Posting date | โ Exact timestamp with offset | โ ๏ธ Often the relative "vor 12 Stunden" string |
| Pagination depth | โ Tested to page 1,027 of 1,027 | โ ๏ธ Commonly capped in the low hundreds |
| Salary | โ Login-walled by StepStone, so not shipped | โ ๏ธ Advertised by several, though the logged-out page does not carry it |
| Filters | โ 10 facets, values read from the live source | โ ๏ธ Keyword and location only |
| Description | โ Plain text and HTML | โ ๏ธ Often the short teaser snippet |
| Null handling | โ
Not Disclosed sentinels, fixed 34-key schema | โ ๏ธ Missing keys and empty cells |
On salary, plainly: StepStone renders a "Gehalt anzeigen" button to logged-out visitors instead of a figure, and its own front-end config carries salaryInfo: "disabled". There is no salary on the public page to extract. Rather than ship a column that is empty on every row, this Actor omits it. If salary is the field you need, the honest answer is that no logged-out StepStone scraper can give it to you.
๐ How to use
- Create a free Apify account. New accounts get $5 in free credit, no card required: sign up here.
- Open the Actor and go to the Input tab.
- Choose how to search. Either paste StepStone URLs into the URL field, or leave it empty and type a keyword and a location instead. A single job ad URL works as well as a search page.
- Set Max Items. Start with 10 to see the shape of the data, then raise it once you are happy.
- Pick your filters. Posting age, home office, contract type, sector and the rest are optional; StepStone applies them itself, so the reported result total already reflects your choices.
- Decide on detail depth. Leave "Scrape Full Job Details" on for benefits, coordinates and full descriptions. Turn it off for a fast titles-and-links run.
- Click Start, then download the results as CSV, Excel, JSON or XML, or pull them from the dataset API.
{"searchKeyword": "software engineer","location": "Berlin","postedWithin": "age_7","jobLanguage": "en","maxItems": 200}
๐ผ Business use cases
Competitive hiring intelligence
Run the same keyword and sector filter weekly and diff the results. A competitor opening 12 Vertrieb und Verkauf roles in Nordrhein-Westfalen inside a fortnight is a go-to-market expansion you can see before the press release. companyId is stable across postings, so the diff is reliable even when a company renames a role.
Benefits and employer-branding benchmarking
The benefits array turns an unstructured perk list into countable data. Pull 5,000 ads in a sector and you can say what share of employers advertise Betriebliche Altersvorsorge, Homeoffice or Dienstrad, and how a client's package ranks against its actual competitors for the same candidates.
Job board and aggregator supply
Filter by discipline or sector, run on a schedule, and feed the rows straight into your own board. validThrough tells you when to expire a listing, directApply tells you whether the application completes on StepStone, and the deduplicated job URL is a natural primary key.
Recruitment market research
postedDate, industry, contractType and homeOffice across tens of thousands of ads give you hiring velocity by sector, the real share of remote-friendly roles in the German market, and the drift from permanent contracts toward Befristeter Vertrag over time.
๐ Automating StepStone Scraper
- Make and Zapier: trigger on every new dataset item and route new postings into a CRM, an ATS or a Google Sheet.
- Slack: post a daily digest of new roles matching a saved search into a recruiting channel.
- Airbyte: sync the dataset into Snowflake, BigQuery or Postgres for joins against your own company list.
- GitHub Actions: call the Actor on a cron and commit the JSON to a repo for a versioned, diffable hiring history.
- Google Drive: drop a fresh CSV into a shared folder every morning for the team to work from.
- Apify Schedules: run the same search nightly with
postedWithinset to the last 24 hours for a pure new-postings feed.
๐ Beyond business use cases
- Research. Labour economists can study regional wage-adjacent signals, remote-work adoption and sector demand across the largest German-speaking job market, with real timestamps rather than scraped relative strings.
- Personal. A job seeker can export every matching role in their state into a spreadsheet, sort by benefits that actually matter to them, and stop re-reading the same site every evening.
- Non-profit. Career-guidance and refugee-integration organisations can build local, filtered job lists for the people they support, including English-language roles via the ad-language filter.
- Experimentation. The plain-text descriptions are clean enough to feed straight into an LLM for skill extraction, seniority classification or automated matching without a cleanup pass.
๐ค Ask an AI assistant about this scraper
Paste this into ChatGPT, Claude or your assistant of choice:
I am using the ParseForge StepStone Scraper on Apify (
parseforge/stepstone-scraper). It returns one row per StepStone.de job posting with 34 fields, includingbenefits(an array of employer benefit chips),latitude,longitude,postalCode,datePostedas an exact ISO timestamp,contractType,workType,homeOffice,industryand the full ad as bothdescriptionTextanddescriptionHtml. Salary is not included because StepStone hides it from logged-out visitors. Help me design a weekly hiring-intelligence report from this dataset.
โ Frequently Asked Questions
๐ Does this need a StepStone login?
No. It reads only what StepStone serves to the public, and no account or cookie is involved.
๐ฐ Why is there no salary field?
StepStone shows logged-out visitors a "Gehalt anzeigen" button instead of a number, and its own page config disables salary display. There is no salary on the public page to read, so shipping a salary column would mean shipping an always-empty one.
๐ Does it work outside Germany?
This Actor targets stepstone.de, the German site. StepStone's other national sites use different domains and are not covered here.
๐ก๏ธ Why does it need a proxy?
StepStone sits behind Akamai and answers non-German IPs with Access Denied on every path. German residential routing is on by default and is the only configuration verified to reach the site. Turning it off will almost certainly return nothing.
๐ How many results can I get from one search?
As many as the search has. Pagination was verified to the last page of a 25,665-result query, page 1,027 of 1,027, with no wrap-around and no repeated rows.
๐ How many jobs come back per request?
25, which is StepStone's fixed page size. Requests for a larger page are ignored by the site, so the Actor does not pretend to offer that knob.
โก How do I make a run faster?
Turn off "Scrape Full Job Details". Listing-only mode collects 25 jobs per request and skips the per-ad page, at the cost of benefits, coordinates and the full description.
๐ฏ Can I scrape one specific job ad?
Yes. Paste the job URL into the URL field. Search pages and single ads can be mixed freely in the same run.
๐ Are duplicates removed?
Yes. Rows are deduplicated on the canonical job URL across every search page and direct URL in the run, so a posting that appears in two searches is billed and delivered once.
๐ฉ๐ช Why are some values in German?
Because StepStone publishes them in German. contractType, workType, industry and benefits keep the source's exact wording so they match the site and stay joinable; the schema's dropdown labels carry English glosses alongside them.
๐ What does validThrough mean?
The date StepStone expects the posting to expire. It is useful for ageing out listings in a downstream board.
โฐ Can I get only today's jobs?
Yes. Set "Posted Within" to the last 24 hours, or sort by date and cap Max Items.
๐ Integrate with any app
Results are available through the Apify API and the dataset endpoint in JSON, CSV, Excel and XML, so anything that speaks HTTP can consume them. Schedules, webhooks and the Apify integrations catalogue cover the rest.
๐ Recommended Actors
- Workday Jobs Scraper for employers hosting careers on Workday.
- Greenhouse Jobs Scraper for employers on Greenhouse.
- Lever Jobs Scraper for employers on Lever.
- LinkedIn Jobs Scraper for cross-checking the same roles on LinkedIn.
- EU EURES Jobs Scraper for the European public employment network.
๐ก Pro Tip: browse the complete ParseForge collection.
๐ Need Help? Open our contact form
โ ๏ธ Disclaimer: this is an independent tool and is not affiliated with, endorsed by, or connected to StepStone GmbH, The Stepstone Group, or any employer whose posting it collects. It gathers only publicly available data.