Scrape public StepStone job listings by keyword, location, or StepStone URL.
Use this actor to collect structured job data from StepStone for recruiting research, lead generation, hiring intelligence, and labor-market monitoring.
What does StepStone Jobs Scraper do?
StepStone Jobs Scraper extracts public job listings from StepStone search and job pages.
It can return job titles, employers, locations, job URLs, descriptions, salary signals, employment type, requirements, skills, company logos, and source metadata.
The output is ready for spreadsheets, BI tools, dashboards, enrichment pipelines, and recruiting workflows.
Who is it for?
- ๐งโ๐ผ Recruiters tracking hiring demand by role and city.
- ๐ Labor-market analysts monitoring employer activity.
- ๐งฒ Lead-generation teams finding companies that are hiring.
- ๐ข Sales teams prospecting HR, staffing, and employer accounts.
- ๐งช Researchers comparing job titles, locations, skills, and salaries.
- ๐ค Automation teams feeding job data into internal systems.
Why use this actor?
- โ Search StepStone by job keyword and location.
- โ Process StepStone search URLs and job detail URLs.
- โ Keep every row traceable to the input query and source URL.
- โ Export clean structured data from the Apify dataset.
- โ
Limit runs with
maxItemsfor predictable costs. - โ Use Apify Proxy when you need more reliable collection.
What StepStone data can you extract?
| Field | Description |
|---|---|
title |
Job title shown on StepStone. |
company |
Hiring company or organization. |
location |
Job location when available. |
jobUrl |
Canonical StepStone job URL. |
postedAt |
Posting date when available. |
validThrough |
Expiration date when available. |
employmentType |
Full-time, part-time, contract, or similar signal. |
salary |
Salary text or structured salary signal when available. |
description |
Job description text. |
requirements |
Requirements or profile text when detected. |
skills |
Common skill keywords detected in the posting. |
companyLogo |
Company logo URL when available. |
sourceQuery |
Keyword used for the search. |
sourceLocation |
Location used for the search. |
sourceUrl |
Search or detail URL where the listing was found. |
scrapedAt |
Timestamp of extraction. |
Quick start
- Open the actor on Apify.
- Enter a job keyword such as
software engineer. - Enter a location such as
Berlin. - Set
maxItemsto the number of jobs you need. - Run the actor.
- Export results from the dataset as JSON, CSV, Excel, or via API.
Input options
| Input | Type | Description |
|---|---|---|
query |
string | Job title, keyword, skill, or role. |
location |
string | City, region, or country. |
startUrls |
array | StepStone search or job detail URLs. |
maxItems |
integer | Maximum number of job listings to save. |
radius |
integer | Search radius in kilometers. |
postedWithin |
string | Optional posting age filter. |
maxPages |
integer | Maximum search pages to inspect. |
proxyConfiguration |
object | Optional Apify Proxy configuration. |
Example input
{
"query": "software engineer",
"location": "Berlin",
"maxItems": 25,
"radius": 30,
"postedWithin": "any",
"maxPages": 3,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["SHADER"]
}
}
Using StepStone URLs
You can also provide StepStone URLs directly.
Use search URLs when you want the actor to discover listings from a StepStone results page.
Use detail URLs when you already have specific StepStone job pages to extract.
{
"startUrls": [
{ "url": "https://www.stepstone.de/jobs/software-engineer/in-berlin" }
],
"maxItems": 10
}
Output example
{
"title": "Senior Software Engineer",
"company": "Example GmbH",
"location": "Berlin",
"jobUrl": "https://www.stepstone.de/stellenangebote/example-job.html",
"postedAt": "2026-07-01",
"validThrough": null,
"employmentType": "FULL_TIME",
"salary": null,
"description": "Build and operate modern software products...",
"requirements": "Experience with TypeScript, cloud services, and agile teams...",
"skills": ["TypeScript", "AWS"],
"companyLogo": "https://example.com/logo.png",
"sourceQuery": "software engineer",
"sourceLocation": "Berlin",
"sourceUrl": "https://www.stepstone.de/jobs/software-engineer/in-berlin",
"scrapedAt": "2026-07-04T08:00:00.000Z"
}
Tips for better results
- ๐ฏ Use specific job titles for focused recruiting lists.
- ๐ Use broader locations for labor-market research.
- ๐ข Start with
maxItems: 10while testing. - ๐งน Deduplicate downstream by
jobUrl. - ๐ Schedule recurring runs to monitor new hiring activity.
- ๐งช Test several keyword variants for the same role.
Common use cases
Recruiting intelligence
Track which employers are hiring for a specific role in Germany.
Sales prospecting
Find companies with active hiring signals for HR software, staffing, payroll, training, or relocation services.
Labor-market dashboards
Measure demand by keyword, city, company, or posting recency.
Competitive hiring analysis
Monitor how often competitors post for specific departments or skills.
Salary research
Collect salary text when it is included in public listings.
Integrations
You can connect results to:
- Google Sheets for lightweight recruiting research.
- Airtable for lead review workflows.
- HubSpot or Salesforce via Make/Zapier.
- BigQuery, Snowflake, or S3 for analytics.
- Slack alerts for new jobs matching a saved query.
- Internal enrichment pipelines using the Apify API.
API usage with Node.js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/stepstone-jobs-scraper').call({
query: 'software engineer',
location: 'Berlin',
maxItems: 25
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
API usage with Python
from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('fetch_cat/stepstone-jobs-scraper').call(run_input={
'query': 'software engineer',
'location': 'Berlin',
'maxItems': 25,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
API usage with cURL
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~stepstone-jobs-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"query":"software engineer","location":"Berlin","maxItems":25}'
MCP integration
Use this actor from MCP-compatible assistants through Apify MCP Server.
MCP URL: https://mcp.apify.com/?tools=fetch_cat/stepstone-jobs-scraper
Claude Code example
claude mcp add apify-stepstone-jobs --url "https://mcp.apify.com/?tools=fetch_cat/stepstone-jobs-scraper"
Claude Desktop example
{
"mcpServers": {
"apify-stepstone-jobs": {
"url": "https://mcp.apify.com/?tools=fetch_cat/stepstone-jobs-scraper"
}
}
}
Example MCP prompts
After connecting the MCP server, try prompts that explicitly ask your assistant to use the StepStone Jobs Scraper MCP tool. Example prompt ideas:
- "Use the StepStone Jobs Scraper MCP tool to find 20 software engineering jobs in Berlin, then return a table with title, company, location, and URL."
- "Use
fetch_cat/stepstone-jobs-scraperto collect StepStone hiring signals for data analyst roles in Munich and summarize which employers are hiring most often." - "Run the StepStone Jobs Scraper MCP tool for Java developer jobs in Germany, group the results by company, and summarize the most common skills."
- "Use the MCP scraper to monitor remote-friendly StepStone software roles and highlight any listings posted in the last week."
Scheduling
Schedule the actor daily or weekly to monitor a saved StepStone query.
Use small result limits for frequent monitoring.
Use larger result limits for monthly market snapshots.
Data quality notes
Some listings do not include salary.
Some listings do not expose structured skills.
Some listings may have broad regional locations rather than exact offices.
The actor keeps optional fields empty when StepStone does not publish that data.
Limits
Very broad searches can produce many duplicates across pages.
Use maxItems to cap output volume.
For production monitoring, run several specific searches instead of one extremely broad query.
Legality and ethical use
This actor extracts publicly available job listing information.
You are responsible for using the data in compliance with StepStone terms, privacy laws, and applicable regulations.
Do not use scraped data for spam, discrimination, or prohibited automated decisions.
Support
If a run fails or the output looks incomplete, open an issue on Apify with your run ID and input.
Include the query, location, and whether you used custom StepStone URLs.