StepStone Jobs Scraper (DE/AT/BE) · From $1.00/1K
Pricing
from $1.00 / 1,000 job listings
StepStone Jobs Scraper (DE/AT/BE) · From $1.00/1K
Scrape stepstone.de, .at and .be jobs to JSON/CSV. Keywords, cities, remote & salary filters, company pages or job URLs. Flat rows with predicted salaries, skills, optional full descriptions and monitoring. No login. From $1.00 per 1,000 jobs.
Pricing
from $1.00 / 1,000 job listings
Rating
0.0
(0)
Developer
Daniel Valev
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 hours ago
Last modified
Categories
Security
Limited permissionsShare
StepStone job scraper for stepstone.de, stepstone.at and stepstone.be — Germany, Austria and Belgium. Export public job listings to JSON / CSV / Excel with keywords, cities, remote & salary filters, company career pages or job URLs. Flat rows with predicted salaries, skills and optional full descriptions. Change monitoring. No StepStone login. From $1.00 / 1,000 listing rows.
What does StepStone Jobs Scraper do?
This Actor scrapes public StepStone search pages and job ads on stepstone.de, stepstone.at and stepstone.be (including .be locale paths /jobs, /emplois, /vacatures). You get one flat row per job: title, company, location, predicted or stated salary, labels, skills and provenance. Turn on Include full details to open each job page for description sections, company facts and contacts printed in the ad.
It does not cover UK StepStone brands (Totaljobs, CWJobs, Jobsite, Caterer), stepstone.nl, website email enrichment, or chat/Slack notifications.
Why scrape StepStone jobs?
- Recruiting & talent sourcing — Role lists across DE / AT / BE without copying from the browser.
- Job-market research — Titles, cities, predicted salaries, remote mix, sponsored vs organic.
- Lead generation — Companies that are hiring, plus contacts that employers print in the public ad.
- Job monitoring — Schedule a search; pay only for new or changed ads.
- Automation — Apify schedules, API, webhooks, Zapier / Make / n8n; export JSON, CSV, Excel or HTML.
What data can you extract?
Every row (listing)
| Field | Description |
|---|---|
id / globalId / url / title | StepStone job id, harmonised id, clean URL, title |
companyId / companyName / companyUrl / companyLogoUrl | Employer identifiers and links |
location / postCode / country / site | Place and which StepStone site |
remote / workFromHomeCode | Human remote flag when known; raw code when present |
datePosted / validThrough | Publish window |
salaryMin / salaryMax / salaryCurrency / salaryPeriod / salaryIsEstimate / salaryYearlyMin / salaryYearlyMax | Numeric salary; estimates marked separately |
labels / skills / snippet / benefits | Labels, skills, plain-text snippet |
isSponsored / isTopJob / isHighlighted / isPartnerJob / resultSection / position | Placement flags |
searchKeyword / searchLocation / searchUrl / scrapedAt | Provenance |
detailsFetched | Whether the job page was opened |
With includeDetails: true
| Field | Description |
|---|---|
description / descriptionHtml / descriptionMarkdown | Per descriptionFormat |
descriptionIntro / descriptionTasks / descriptionRequirements / descriptionOffer / descriptionContact | Ad sections |
contractType / workType / employmentType / industry / directApply | Structured meta |
| Address / geo | streetAddress, postalCode, addressLocality, … |
contactEmails / contactPhones | Only text printed in the ad (toggle extractContacts) |
| Company facts | Website, address, size, founded, industries, rating, review count, open jobs |
detailError | e.g. offline / blocked when the detail page could not be charged as job-detail |
With monitoring (onlyNewOrChanged)
| Field | Description |
|---|---|
changeType | NEW or UPDATED |
changedFields / previousValues | What changed; previous values as a JSON string (flat rows) |
firstSeenAt / lastSeenAt | First / last observation |
How to scrape StepStone jobs
- Open the Actor and click Try for free.
- Set Keywords (e.g.
software engineer) and optional Locations (e.g.hamburg), or paste Start URLs from the site (filters included). - Choose Country
de/at/bewhen building from keywords. - Set Max jobs (start with 25).
- Optionally turn on Include full details.
- Click Start. Download JSON / CSV / Excel, or send the dataset to an integration.
Start URL types
| URL | Behaviour |
|---|---|
| Search / filtered listing | Paginated listing scrape |
/work/… keyword URL | Same as search |
/cmp/…/jobs company list | Only that employer’s jobs |
…--<id>-inline.html job page | Single job (details fetched) |
When Start URLs are set, keyword / location builders are ignored.
Monitoring on a schedule
- Set the same search input and a stable Monitoring key (or leave empty for an auto hash).
- Set Sort by to Date.
- Enable Only new or changed.
- Create an Apify Schedule (e.g. daily). Unchanged jobs are not saved and not charged.
How much does it cost?
Pricing is pay-per-event. Configure amounts in Console → Publishing → Monetization. The Actor emits these event names:
| Event | Suggested price | When |
|---|---|---|
job (primary) | $0.001 ($1.00 / 1,000) | Row saved without full details |
job-detail | $0.0018 ($1.80 / 1,000) | Row saved with full details — instead of job, never both |
apify-actor-start | Platform synthetic | Run start (memory-based) |
Worked examples
- 250 listing jobs →
250 × $0.001 = $0.25 - 1,000 jobs with details →
1,000 × $0.0018 = $1.80 - Daily monitoring of a search with ~50 new jobs/day (listing only) → ≈
50 × 30 × $0.001 ≈ $1.50 / month
Do not enable apify-default-dataset-item, or every row is billed twice. Unchanged monitoring rows are free. Apify compute and proxy are billed separately by the platform.
Non-paying Apify users are capped at 20 rows per run (clear log message).
Input
See the Input tab for the full form. Highlights:
| Field | Default | Notes |
|---|---|---|
startUrls | — | Search, /work/, company /cmp/…/jobs, or job URLs |
keywords / locations / country | software engineer / (empty = whole country) / de | Prefill location hamburg; cartesian product of searches |
radius | — | km around the location |
postedWithin | any | Verified: 1 (24h), 7, 30 |
remote | any | remote / hybrid / onsite via StepStone wp= facet |
minSalary | — | Yearly filter (us=) |
applicationMethod | any | Quick apply vs company website |
sortBy | relevance | Or date |
includeDetails | false | Opens job pages; charges job-detail |
descriptionFormat | text | text / html / markdown / all |
maxItems | 25 | Max saved (= max charged) rows |
onlyNewOrChanged / monitoringKey | off | Monitoring mode |
proxyConfiguration | Apify Proxy | Datacenter by default; escalates to residential DE after blocks |
Working hours, experience level, and job-language filters are not exposed until verified live — paste a filtered Start URL from the site instead.
Output
You can download the dataset as JSON, CSV, Excel, or HTML. Rows are flat (arrays of strings only; no nested objects).
Listing example (from a real local run)
{"id": "14693305","globalId": "283655f7-1457-4f9f-9b7c-ed3ecc95e733","url": "https://www.stepstone.de/stellenangebote--Hackers-wanted-Software-Engineers-Hamburg-freiheit-com-technologies--14693305-inline.html","title": "Hackers wanted – Software Engineers","companyName": "freiheit.com technologies","location": "Hamburg","country": "de","site": "stepstone.de","salaryMin": 50000,"salaryMax": 66000,"salaryCurrency": "EUR","salaryPeriod": "year","salaryIsEstimate": true,"datePosted": "2026-10-28T14:46:11.273Z","resultSection": "main","searchKeyword": "software engineer","searchLocation": "hamburg","detailsFetched": false}
Detail fields example (same job, after includeDetails)
{"id": "14693305","detailsFetched": true,"contractType": "Feste Anstellung","workType": "Homeoffice möglich, Vollzeit","descriptionIntro": "We are an engineering organization…","descriptionTasks": "Your responsibility: From day one…","descriptionRequirements": "A degree: Bachelor's, Master's or PhD…","companyAddress": "Budapester Straße 45, Hamburg","companySize": "251-1000","companyFounded": 1999,"companyOpenJobs": 6,"companyRating": 4.57,"companyReviewCount": 16,"contactPhones": ["+49 40/890584-0"]}
Monitoring example
{"id": "14693305","changeType": "UPDATED","changedFields": ["salaryMax", "validThrough"],"previousValues": "{\"salaryMax\":66000,\"validThrough\":\"2026-11-27T14:46:11.273Z\"}","firstSeenAt": "2026-10-01T08:00:00.000Z","lastSeenAt": "2026-10-30T08:00:00.000Z"}
Dataset views in Console: Overview, Details, Monitoring.
Limitations
- Broad searches may advertise a high
pageCount; if pagination stops early, the run summary records it — split by location or date. - Many salaries are StepStone estimates (
salaryIsEstimate: true); employer-stated figures are kept apart when present. - On some DE
/jobs/listingsworkFromHomeCodeis null; use theremotefilter and/or detailworkTypetext. postCodeis often missing on listing rows.- Region-restricted ads may keep listing data with
detailErrorand chargejobinstead ofjob-detail. - Public pages only. No login, CAPTCHA solving, or CV/candidate data.
FAQ
Can I scrape Austria and Belgium?
Yes. Set country to at or be, or paste start URLs from those hosts. Belgium supports /emplois/, /vacatures/, and /jobs/ paths.
Do you charge for failed detail pages?
If the ad is offline or blocked after retries, the Actor keeps listing fields, sets detailError, and charges job, not job-detail.
How do I keep costs down?
Use listing mode for discovery, lower maxItems, avoid residential unless needed, and use monitoring so unchanged jobs are free.
Is this affiliated with StepStone?
No. It is an independent Apify Actor for public pages.
For AI agents
Minimal input
{"keywords": ["software engineer"],"locations": ["hamburg"],"country": "de","maxItems": 25}
Behaviours
- Empty / schema-default runs probe a small DE Hamburg search.
- Deduplicates by job
idacross searches in one run. - Drops
recommendedsections unlessincludeRelatedJobsis true. - Monitoring state lives in named key-value store
stepstone-monitor. - Writes
RUN_SUMMARY(andMONITORING_SUMMARYwhen monitoring).
Billing
- Exactly one of
joborjob-detailper saved row. - Never emits
apify-default-dataset-item. - Respects
ACTOR_MAX_TOTAL_CHARGE_USD/ charge-limit stop.
Disclaimer
This Actor is not affiliated with StepStone. It only accesses public pages. You are responsible for complying with StepStone’s terms of use, robots rules, and applicable law including GDPR. Contact emails and phones are taken only from text that employers publish in the job ad — not from crawled company websites. Do not scrape personal data unless you have a legitimate reason.
Use the Issues tab for bugs and feature requests. Use the API tab for programmatic runs.