Scrape job postings (Stellenangebote) from Stepstone.de, Germany's largest job board and a leading recruiter platform for the DACH region (Germany, Austria, Switzerland). Search by keyword and city — or browse all of Germany — and get job title, company, location, salary, posted date, apply URL, employer profile, remote flag and sponsored flag as clean structured JSON, with an optional full job description from each detail page. No login, no API key.
Use it to build recruiter intelligence, benchmark salaries, generate hiring leads, or power your own German job aggregator. Run several keyword + city searches in a single run, sort by newest first for daily monitoring, and export thousands of German job listings to CSV, Excel, JSON or your database. Start with an empty input to pull Germany's newest postings nationwide, then narrow to a city, role or a whole batch of searches.
Why this Stepstone scraper? Structured job + employer + salary fields · multiple keyword+city searches per run · sort by relevance or newest · optional full descriptions · thousands of listings · export to JSON / CSV / Excel. The unofficial Stepstone.de API alternative for recruiter intelligence, German job-market research and lead generation.
One row per job posting. Core fields are always present; the long description and extra detail fields are added when Fetch Full Job Description is enabled.
| Field | Description |
|---|---|
title |
Job title (Stellenbezeichnung) |
jobUrl |
Direct link to the job posting / application page |
companyName |
Hiring company (employer) |
companyUrl |
Employer's profile URL |
companyLogoUrl |
Company logo image URL |
datePosted |
Date the job was posted |
location |
Advertised city or region |
postCode |
Postal code of the job location |
salary |
Salary as displayed (may be empty) |
salaryMin / salaryMax |
Parsed minimum / maximum salary (numbers) |
salaryCurrency / salaryPeriod |
Currency code and period (year/month/…) |
workFromHome |
true if the job allows remote / home office |
remoteType |
on-site / hybrid / home-office |
textSnippet |
Short teaser text from the listing |
description |
Full job description (when full descriptions are enabled) |
skills |
Skill tags associated with the job |
labels |
Badge labels shown on the listing |
isSponsored |
true if the listing is a paid/sponsored placement |
isTopJob |
true if flagged as a TopJob |
companyId / jobId |
Internal company and job identifiers |
searchKeyword / searchLocation |
Which keyword + location produced this row |
scrapedAt |
ISO timestamp when the row was scraped |
- Recruiter & DACH market intelligence — track which companies hire for which roles across Germany, Austria and Switzerland.
- German job-market research — measure posting volume, salary ranges and in-demand skills by role and city.
- Recruiting & sales leads — build lists of employers actively hiring in a city or category using
companyName+companyUrlfor outreach. - Power a job aggregator — ingest fresh, structured German Stellenangebote into your own site, board or app.
- Daily monitoring — sort by date and schedule the Actor to capture newly posted jobs each morning.
- Salary benchmarking — collect
salary,salaryMinandsalaryMaxacross many searches to benchmark compensation by role and city. - Remote-work analysis — filter on
workFromHome/remoteTypeto study the share of hybrid and home-office roles in the German market.
Four ways to run — all call the hosted Actor, nothing runs locally.
- Open the Actor: apify.com/logiover/stepstone-de-jobs-scraper.
- Click Try for free.
- Leave the input empty for Germany's newest jobs nationwide, or set a Keyword and pick a City, then Start.
- Open the Output tab and export to CSV, JSON or Excel.
npm i -g apify-cli
apify login
apify call logiover/stepstone-de-jobs-scraper --input '{ "keyword": "software engineer", "location": "berlin", "sortBy": "date" }'curl -X POST \
"https://api.apify.com/v2/acts/logiover~stepstone-de-jobs-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "keyword": "data analyst", "location": "muenchen", "maxPagesPerSearch": 4 }'import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('logiover/stepstone-de-jobs-scraper').call({
searches: [
{ keyword: 'product manager', location: 'frankfurt-am-main' },
{ keyword: 'devops', location: '' },
],
sortBy: 'date',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("logiover/stepstone-de-jobs-scraper").call(run_input={
"keyword": "pflegekraft", "location": "hamburg", "sortBy": "date",
})
for job in client.dataset(run["defaultDatasetId"]).iterate_items():
print(job["title"], job["companyName"], job.get("salary"))More detailed snippets: examples/cli.md · examples/api-curl.md · examples/javascript.md · examples/python.md
Every field is optional. Run with empty input {} and it returns Germany's newest job postings nationwide. Set a Keyword and/or pick a City to narrow it, or use the advanced searches array for multiple keyword+city pairs at once.
| Field | Type | Default | Description |
|---|---|---|---|
keyword |
string | — | Search term (e.g. software engineer, pflegekraft). Empty = browse all newest jobs |
location |
string (dropdown) | "" (All of Germany) |
German city, or nationwide. 48 cities available (Berlin, München, Hamburg, Köln, Frankfurt, …) |
sortBy |
string (dropdown) | date |
relevance or date (newest first) |
maxPagesPerSearch |
integer | 4 |
Pages per search (≈25 jobs/page; platform cap ~93 pages) |
fetchJobDetails |
boolean | false |
When true, opens each job's detail page for the long description, requirements and company profile |
searches |
array | — | Advanced. List of { "keyword": …, "location": … } pairs. Overrides the single Keyword/City fields when set |
proxyConfig |
object | Apify Proxy (DE) | Proxy configuration (a default is provided) |
Tip on city names: use the site's URL spelling for cities — e.g.
muenchen,koeln,frankfurt-am-main. Leavelocationempty to search all of Germany for that keyword. Pick from the dropdown in the Console to avoid typos.
Example — tech roles across two cities:
{
"searches": [
{ "keyword": "software engineer", "location": "berlin" },
{ "keyword": "data analyst", "location": "muenchen" }
],
"maxPagesPerSearch": 4,
"sortBy": "date",
"fetchJobDetails": false
}Results are stored in an Apify dataset (one row per job) and can be exported to CSV, JSON, JSONL, Excel or XML, or pulled via the API.
Sample item:
{
"jobId": "123456",
"title": "Senior Software Engineer (m/w/d)",
"jobUrl": "https://www.stepstone.de/stellenangebote--Senior-Software-Engineer-Berlin--123456-inline.html",
"companyName": "TechCorp GmbH",
"companyUrl": "https://www.stepstone.de/cmp/de/techcorp-gmbh-98765",
"location": "Berlin",
"postCode": "10115",
"salary": "65.000 € – 85.000 €",
"salaryMin": 65000,
"salaryMax": 85000,
"salaryCurrency": "EUR",
"salaryPeriod": "year",
"workFromHome": true,
"remoteType": "hybrid",
"datePosted": "2026-07-04",
"skills": ["Java", "Kubernetes", "AWS"],
"isSponsored": false,
"isTopJob": false,
"searchKeyword": "software engineer",
"searchLocation": "berlin",
"scrapedAt": "2026-07-06T14:00:00.000Z"
}- Schedules — run daily or weekly to track the German job market and capture fresh postings.
- Webhooks — POST to your endpoint or Slack when a run finishes.
- Google Sheets — auto-sync results into a spreadsheet after each run.
- Zapier / Make / n8n / Pipedream — pipe listings into your CRM, ATS, database or email reports.
- Apify API — start runs and pull datasets from your own backend.
CSV · JSON · JSONL · Excel (XLSX) · XML — one click in the Console, or add &format=csv to the API dataset URL.
No. No Stepstone account or login is required, and there is no API key to manage. You only need an Apify account to run the Actor.
Yes. Stepstone has no open public jobs API, so this Actor works as an unofficial Stepstone.de API alternative — it returns the same structured fields (title, company, location, salary, posted date, apply URL) you would expect from an API, ready to export.
Just run the Actor with a keyword and city (or empty input for nationwide). It collects public Stellenangebote and returns clean rows — no API key, no login.
Each page returns about 25 jobs and a single search covers up to roughly 93 pages (~2,300 jobs). Run multiple keyword+city searches in one job to go wider, and sort by date to skim only the freshest postings.
Yes. The Searches field takes a list of { keyword, location } pairs, and each pair runs as a separate search within the same run.
Set Sort By to date (newest first) and schedule the Actor so each run surfaces the latest Stellenangebote.
Yes. Enable Fetch Full Job Description and each record additionally includes the long description, requirements and company profile from the job's detail page. This roughly doubles the request count.
Open the run's Output tab and click Export → CSV or XLSX, or add &format=csv (or xlsx) to the API dataset URL.
48 major cities are available in the dropdown — Berlin, München, Hamburg, Köln, Frankfurt am Main, Stuttgart, Düsseldorf, Dortmund, Leipzig, and many more — plus a nationwide option.
The Actor uses a simple pay-per-result model — you pay only for the job records you extract. Try it on the free tier first; see the Pricing tab on the Actor page for the current rate.
- Indeed Jobs Scraper — scrape jobs, companies and salaries from Indeed.
- Welcome to the Jungle Jobs Scraper — European job postings with rich company data.
Browse the full jobs suite and 180+ actors: apify.com/logiover.
📄 Documentation only — this repository contains no scraper source code. The Actor runs on the Apify platform.
Licensed under the MIT License · © 2026 logiover