StepStone Scraper avatar

StepStone Scraper

Pricing

from $2.10 / 1,000 job postings

Go to Apify Store
StepStone Scraper

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

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

ParseForge Banner

๐Ÿ’ผ 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 DACHTrack which competitors are hiring, where, and on what contract terms
HR and compensation teamsBenchmark the benefits packages employers actually advertise, by sector and region
Job board and aggregator operatorsFeed a niche German board with fresh postings, deduplicated and geo-coded
Market researchers and investorsRead hiring velocity by sector as an expansion signal
Job seekers and career coachesExport 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 Altersvorsorge to Dienstrad. 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 returns datePosted as a real timestamp with timezone offset, plus a plain postedDate for 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. manager paginates 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. descriptionText is clean plain text with German entities decoded, ready for an LLM or a spreadsheet. descriptionHtml keeps 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.

FieldTypeDescription
๐Ÿ–ผ imageUrlstringEmployer logo hosted by StepStone
๐Ÿ“Œ titlestringJob title as published
๐Ÿ”— urlstringPublic job ad URL
๐Ÿ†” jobIdnumberStepStone posting ID
๐Ÿข companyNamestringHiring company
๐Ÿท companyIdnumberStepStone company ID, stable across postings
๐ŸŒ companyUrlstringCompany profile page on StepStone
๐Ÿ•ต isAnonymousEmployerstringYes when the employer hides its identity
๐Ÿ“ locationstringWork location as StepStone displays it
๐Ÿ“ฎ postalCodestringGerman postal code
๐ŸŒ countrystringISO country code
๐Ÿงญ latitudenumberLatitude of the work location
๐Ÿงญ longitudenumberLongitude of the work location
๐Ÿ•ฐ datePostedstringExact publication timestamp with timezone offset
๐Ÿ“… postedDatestringPublication date, YYYY-MM-DD
โณ validThroughstringWhen the posting expires
๐Ÿ’ผ employmentTypestringFULL_TIME, PART_TIME, INTERN and so on
๐Ÿ“ contractTypestringStepStone's German contract label, e.g. Feste Anstellung
๐Ÿ•“ workTypestringe.g. Vollzeit, Teilzeit, Homeoffice mรถglich
๐Ÿ  homeOfficestringNo, Partial or Full
๐Ÿญ industrystringStepStone's discipline and sub-discipline
โšก directApplystringYes when the application completes on StepStone
๐Ÿš€ quickApplystringYes when the ad carries the quick-apply badge
โœ‰๏ธ coverLetterRequiredstringNo when the ad says a cover letter is not needed
๐Ÿ“ฃ isSponsoredstringYes for promoted, top-job or highlighted placements
๐Ÿ—‚ resultSectionstringWhether StepStone ranked the hit as a main or semantic match
โœ‚๏ธ textSnippetstringThe teaser StepStone shows on the result card
๐Ÿ“„ descriptionTextstringFull ad text, HTML stripped, entities decoded
๐Ÿงพ descriptionHtmlstringFull ad, original HTML
๐ŸŽ benefitsarrayEmployer benefit chips shown on the ad
๐Ÿ… labelsarrayBadges such as "Anschreiben nicht erforderlich"
๐Ÿ”Ž searchUrlstringThe page this row was collected from
๐Ÿ•’ scrapedAtstringISO timestamp of collection
โŒ errorstringPopulated 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 ActorTypical 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

  1. Create a free Apify account. New accounts get $5 in free credit, no card required: sign up here.
  2. Open the Actor and go to the Input tab.
  3. 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.
  4. Set Max Items. Start with 10 to see the shape of the data, then raise it once you are happy.
  5. 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.
  6. 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.
  7. 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 postedWithin set 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, including benefits (an array of employer benefit chips), latitude, longitude, postalCode, datePosted as an exact ISO timestamp, contractType, workType, homeOffice, industry and the full ad as both descriptionText and descriptionHtml. 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.

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.

๐Ÿ’ก 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.