StepStone Jobs Scraper & API — 18 Portals, Incremental
Pricing
Pay per usage
StepStone Jobs Scraper & API — 18 Portals, Incremental
StepStone scraper and jobs API covering 18 portals: stepstone.de/at/be/nl, TotalJobs, CWJobs, Caterer, PNet and more. Incremental mode, ML-predicted salary (ceSalary), full descriptions, 29 filters.
Pricing
Pay per usage
Rating
0.0
(0)
Developer

Black Falcon Data
Actor stats
0
Bookmarked
6
Total users
1
Monthly active users
5 minutes ago
Last modified
Categories
Share
StepStone Jobs Scraper & API — 18 Portals, Salary Data, Incremental Feed
Access job listings from 18 StepStone Group portals — including StepStone, TotalJobs, CWJobs, Jobsite, and Caterer — using a single API.
Extract structured job data with salary information, skills, work arrangement, and full descriptions. The only StepStone job scraper with built-in incremental mode — schedule runs hourly and receive only new job postings with zero duplicates.
Built for data pipelines, job boards, HR analytics, and recruitment intelligence.
The StepStone Group operates some of Europe's largest job platforms — including StepStone, TotalJobs, CWJobs, Jobsite, and Caterer — reaching millions of job seekers across 18 countries. This actor gives you structured API access to that entire network.
Key features
🚀 Full StepStone network coverage
- Scrape job listings across 18 StepStone Group portals with a single actor
- Covers stepstone.de, stepstone.at, stepstone.be, and stepstone.nl
- Includes TotalJobs, CWJobs, Jobsite, Caterer, PNet, and additional specialist job boards
🔄 Incremental job feed
- Built-in incremental mode returns only new job postings since the previous run
- Ideal for scheduled pipelines and near real-time job feeds
- Avoid duplicates and reduce unnecessary dataset processing
💰 Salary intelligence
- Extract published salary ranges via unifiedSalary
- Access StepStone ML-predicted salary estimates via ceSalary
- Analyse compensation trends across regions, companies, and roles
🔎 Advanced filtering
- 29 input parameters for precise job queries
- Filter by contract type, experience level, remote work, radius, posting age, and application method
📦 Flexible data output
- Return only selected fields using outputFields
- Job descriptions available as HTML, plain text, or Markdown
- Structured JSON suitable for ETL pipelines, analytics, and data warehouses
🧹 Clean job listings
- Exclude sponsored listings to return organic results only
- Sort jobs by salary_low or salary_high to analyse compensation
Use cases
Job board aggregation Pull structured job listings from across the StepStone network into your own job search engine or aggregator. One API call covers Germany, UK, Belgium, Netherlands, and more.
Recruitment analytics & market intelligence Monitor hiring volume, salary ranges, and in-demand skills across industries, geographies, and companies. Track trends over time with incremental runs.
Lead generation Collect company names, job titles, locations, and contact signals from StepStone job postings. Identify businesses that are actively hiring in your target market.
ETL pipelines & data warehouses Feed StepStone job data directly into BigQuery, Snowflake, or your data lake. Use incremental mode to get only new records since the last run — no re-processing of duplicates.
Salary benchmarking
Extract unifiedSalary and ML-predicted ceSalary fields to build salary comparison tools or benchmark compensation across roles and regions.
Academic & HR research Download historical job market datasets from StepStone for quantitative research on labour demand, skills gaps, remote work trends, and employment shifts across Europe.
Example output
{"title": "Data Engineer","company": "Zalando","location": "Berlin","datePosted": "2026-03-07T00:00:00.000Z","postedDaysAgo": 1,"workFromHomeLabel": "Hybrid","url": "https://www.stepstone.de/stellenangebote--Data-Engineer-Berlin-Zalando--12345678.html","skills": ["Python", "Spark", "AWS", "dbt"],"unifiedSalary": {"min": 60000,"max": 75000,"currency": "EUR","period": "year"},"ceSalary": {"isPredicted": true,"min": 65000,"max": 82000,"currency": "EUR","period": "year"}}
Try this example query
Paste this directly into the actor input and run:
{"query": "data engineer","location": "Berlin","geo": "DE","maxResults": 20,"includeDetails": true,"excludeSponsored": true}
Returns recent Data Engineer jobs in Berlin from the StepStone network — including salary data, skills, and company information.
Quick start
Minimal input:
{"query": "data engineer","location": "Berlin","geo": "DE"}
Full example with all common options:
{"query": "data engineer","location": "Berlin","geo": "DE","maxResults": 100,"sort": "date","age": 7,"includeDetails": true,"descriptionFormat": "text","excludeSponsored": true}
Incremental mode — real-time StepStone job feed
The incremental mode is the core feature that separates this actor from every other StepStone scraper. Set up a scheduled run and receive only jobs posted since your last run — no re-scraping of listings you already have.
{"query": "software engineer","location": "London","geo": "TOTALJOBS","mode": "incremental","stateStoreName": "my-pipeline-state"}
State is scoped per query + location + geo and stored in a named Apify KV store. The same stateStoreName persists across scheduled runs.
Reset state: change stateStoreName to a new value. If you change query, location, or geo, use a different stateStoreName — otherwise the existing state scopes incorrectly and returns 0 jobs.
Typical use: schedule every 1–4 hours. Each run produces a small delta (the day's new postings) rather than thousands of duplicates.
Use your own StepStone search URLs
Feed existing StepStone search URLs directly into startUrls — bypasses query / location / geo:
{"startUrls": [{ "url": "https://www.stepstone.de/jobs/developer/in-berlin" },{ "url": "https://www.totaljobs.com/jobs/python/in-london" }],"maxResults": 200}
Supported portals
This StepStone scraper covers 18 portals across the StepStone Group network. Use the geo input parameter to select which portal to scrape.
| Region | Portal | geo value |
|---|---|---|
| 🇩🇪 Germany | stepstone.de | DE |
| 🇦🇹 Austria | stepstone.at | AT |
| 🇧🇪 Belgium | stepstone.be | BE |
| 🇳🇱 Netherlands | stepstone.nl | NL |
| 🇬🇧 United Kingdom | totaljobs.com | TOTALJOBS |
| 🇬🇧 United Kingdom | cwjobs.co.uk | CWJOBS |
| 🇬🇧 United Kingdom | jobsite.co.uk | JOBSITE |
| 🇬🇧 United Kingdom | milkround.com | MILKROUND |
| 🇬🇧 United Kingdom | caterer.com | CATERER |
| 🇬🇧 United Kingdom | retailchoice.com | RETAILCHOICE |
| 🇬🇧 United Kingdom | careerstructure.com | CAREERSTRUCTURE |
| 🇬🇧 United Kingdom | cityjobs.com | CITYJOBS |
| 🇬🇧 United Kingdom | justengineers.net | JUSTENGINEERS |
| 🇬🇧 United Kingdom | emedcareers.com | EMEDCAREERS |
| 🌐 International | catererglobal.com | CATERERGLOBAL |
| 🇮🇪 Ireland | nijobs.com | NIJOBS |
| 🇮🇪 Ireland | jobs.ie | JOBSIE |
| 🇿🇦 South Africa | pnet.co.za | PNET |
The actor automatically selects the optimal extraction method per portal to maximise reliability and cost efficiency.
Some portals require a paid Apify plan. The actor handles all configuration automatically.
Input parameters
| Parameter | Type | Description |
|---|---|---|
query | string | Search keywords |
location | string | City, region, or postcode |
geo | select | Portal — DE, BE, AT, NL, TOTALJOBS, CWJOBS, … |
startUrls | array | Direct search URLs — overrides query/location/geo |
maxResults | number | Max items to return |
sort | select | relevance / date / salary_low / salary_high |
age | select | Posted within 1 / 3 / 7 / 14 days |
remote | boolean | Remote jobs only |
radius | number | Search radius in km (5–100) |
minSalary | number | Minimum salary filter |
contractType | select | Full-time, part-time, contract, freelance, … |
experience | select | no / required / executive |
workType | select | FULL_TIME / PART_TIME |
applicationMethod | select | INTERNAL (apply on StepStone) / EXTERNAL (apply on company site / ATS) |
companyId | string | Filter to a specific company |
mode | select | full (default) / incremental |
stateStoreName | string | KV store name for incremental state (default: stepstone-state) |
excludeSponsored | boolean | Skip promoted listings |
includeDetails | boolean | Crawl detail pages — adds description, ceSalary, geo coordinates |
descriptionFormat | select | html / text / markdown |
outputFields | array | Return only selected fields, e.g. ["title","company","ceSalary"] |
proxyConfiguration | object | Apify proxy config |
Examples
Basic search
{"query": "data engineer","geo": "DE","maxResults": 10}
With job details
{"query": "developer","geo": "DE","maxResults": 5,"includeDetails": true}
UK portal
{"query": "software engineer","geo": "CWJOBS","maxResults": 10}
Example output
{"title": "Senior Data Engineer","company": "Siemens AG","location": "Munich, Bavaria","datePosted": "2026-03-07","detailsFetched": true}
Output fields
Always returned
| Field | Type | Description |
|---|---|---|
jobKey | string | Unique job identifier |
title | string | Job title |
company | string | Employer name |
location | string | Location string as shown on the listing |
postCode | string | Postal code (when available) |
url | string | Direct URL to the job listing |
datePosted | string (ISO 8601) | Date the listing was posted |
postedDaysAgo | number | Days since posting |
workFromHome | boolean | Whether the role is remote or hybrid |
workFromHomeLabel | string | "On-site" / "Hybrid" / "Remote" |
unifiedSalary | object | Posted salary range {min, max, currency, period} — null if not published |
isSponsored | boolean | Whether the listing is a promoted/sponsored result |
isAnonymous | boolean | Whether the employer name is hidden |
isHighlighted | boolean | Whether the listing has a highlighted badge |
isTopJob | boolean | Whether the listing is marked as a Top Job |
companyId | string | Internal company ID |
companyUrl | string | URL to the company profile on the portal |
companyLogoUrl | string | URL to the company logo image |
skills | string[] | Skills extracted from the listing |
labels | string[] | Labels attached to the listing (e.g. "New", "Hot") |
section | string | Search result section (e.g. "organic", "top") |
harmonisedId | string | Cross-portal normalised ID |
geo | string | Portal identifier — matches the geo input value |
query | string | Search query used to find this listing |
scrapedAt | string (ISO 8601) | Timestamp of when this item was scraped |
With includeDetails: true
Crawls the individual job listing page to add richer data.
| Field | Type | Description |
|---|---|---|
description | string | Full job description — format controlled by descriptionFormat (html / text / markdown) |
employmentType | string | Employment type as reported in the structured data (e.g. "FULL_TIME") |
validThrough | string (ISO 8601) | Application deadline (when available) |
locationDetail | object | {city, postalCode, country, lat, lng} — geocoded location |
ceSalary | object | StepStone's ML-predicted salary {isPredicted, min, max, period, currency} — null when no prediction is available |
Proxy requirements
Most portals work with default Apify proxy settings. Some UK portals require residential proxy access — the actor configures this automatically. Your Apify plan must include residential proxy access for these portals.
StepStone job data & API access
This actor provides structured access to StepStone job data through a developer-friendly API. Common use cases include:
- StepStone jobs API — query job listings programmatically without a browser
- StepStone job data extraction — download job titles, salaries, skills, and company data at scale
- StepStone job listings dataset — build a dataset for research, analytics, or job board aggregation
- StepStone job market analysis — track hiring trends, salary ranges, and in-demand skills across Europe
- TotalJobs scraper — the same actor covers TotalJobs, CWJobs, and all other StepStone Group portals
- CWJobs scraper — scrape developer and IT job listings from cwjobs.co.uk using the same actor
- StepStone dataset — create a reusable dataset for analytics, research, or job board ingestion
Frequently asked questions
Is this a StepStone API? StepStone does not offer a public API for job data. This actor provides programmatic access to StepStone job listings through web scraping and returns structured JSON — effectively acting as a StepStone jobs API for your application.
Which portals does this StepStone scraper support? 18 portals in the StepStone Group network: stepstone.de, stepstone.at, stepstone.be, stepstone.nl, totaljobs.com, cwjobs.co.uk, jobsite.co.uk, milkround.com, caterer.com, retailchoice.com, careerstructure.com, cityjobs.com, justengineers.net, emedcareers.com, catererglobal.com, nijobs.com, jobs.ie, and pnet.co.za.
How is this different from other StepStone scrapers?
Three things no other StepStone scraper on Apify offers: (1) incremental mode — only new jobs since your last run, (2) ML-predicted salary (ceSalary) from StepStone's own salary engine, and (3) excludeSponsored — filter out promoted listings and get organic results only.
Can I scrape TotalJobs with this actor?
Yes. Set "geo": "TOTALJOBS" to scrape totaljobs.com. Note that TotalJobs requires a paid Apify plan with proxy access. The same actor covers CWJobs, Jobsite, Caterer, and other TotalJobs Group portals.
How often can I run it?
As often as you want. With mode: "incremental", scheduling hourly is common — each run returns only jobs posted since the last run, keeping dataset costs low.
Does it return salary data?
Yes. The unifiedSalary field returns the salary range from the job listing when published. With includeDetails: true, the ceSalary field returns StepStone's ML-predicted salary estimate for listings where it is available.
Known limitations
irishjobs.ieis not supportedceSalaryis only returned withincludeDetails: trueand only when StepStone's ML model has a prediction for that listingtotaljobs.com,cwjobs.co.uk,jobsite.co.uk,emedcareers.com, andcaterer.comrequire a paid Apify plan (handled automatically)
📬 Support
Contact via Apify console. For bugs or feature requests, use the actor's issue tracker.
Last updated: March 2026