StepStone Jobs Scraper (DE/AT/BE) · From $1.00/1K avatar

StepStone Jobs Scraper (DE/AT/BE) · From $1.00/1K

Pricing

from $1.00 / 1,000 job listings

Go to Apify Store
StepStone Jobs Scraper (DE/AT/BE) · From $1.00/1K

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

Daniel Valev

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

Security

Limited permissions

Share

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)

FieldDescription
id / globalId / url / titleStepStone job id, harmonised id, clean URL, title
companyId / companyName / companyUrl / companyLogoUrlEmployer identifiers and links
location / postCode / country / sitePlace and which StepStone site
remote / workFromHomeCodeHuman remote flag when known; raw code when present
datePosted / validThroughPublish window
salaryMin / salaryMax / salaryCurrency / salaryPeriod / salaryIsEstimate / salaryYearlyMin / salaryYearlyMaxNumeric salary; estimates marked separately
labels / skills / snippet / benefitsLabels, skills, plain-text snippet
isSponsored / isTopJob / isHighlighted / isPartnerJob / resultSection / positionPlacement flags
searchKeyword / searchLocation / searchUrl / scrapedAtProvenance
detailsFetchedWhether the job page was opened

With includeDetails: true

FieldDescription
description / descriptionHtml / descriptionMarkdownPer descriptionFormat
descriptionIntro / descriptionTasks / descriptionRequirements / descriptionOffer / descriptionContactAd sections
contractType / workType / employmentType / industry / directApplyStructured meta
Address / geostreetAddress, postalCode, addressLocality, …
contactEmails / contactPhonesOnly text printed in the ad (toggle extractContacts)
Company factsWebsite, address, size, founded, industries, rating, review count, open jobs
detailErrore.g. offline / blocked when the detail page could not be charged as job-detail

With monitoring (onlyNewOrChanged)

FieldDescription
changeTypeNEW or UPDATED
changedFields / previousValuesWhat changed; previous values as a JSON string (flat rows)
firstSeenAt / lastSeenAtFirst / last observation

How to scrape StepStone jobs

  1. Open the Actor and click Try for free.
  2. Set Keywords (e.g. software engineer) and optional Locations (e.g. hamburg), or paste Start URLs from the site (filters included).
  3. Choose Country de / at / be when building from keywords.
  4. Set Max jobs (start with 25).
  5. Optionally turn on Include full details.
  6. Click Start. Download JSON / CSV / Excel, or send the dataset to an integration.

Start URL types

URLBehaviour
Search / filtered listingPaginated listing scrape
/work/… keyword URLSame as search
/cmp/…/jobs company listOnly that employer’s jobs
…--<id>-inline.html job pageSingle job (details fetched)

When Start URLs are set, keyword / location builders are ignored.

Monitoring on a schedule

  1. Set the same search input and a stable Monitoring key (or leave empty for an auto hash).
  2. Set Sort by to Date.
  3. Enable Only new or changed.
  4. 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:

EventSuggested priceWhen
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-startPlatform syntheticRun 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:

FieldDefaultNotes
startUrls—Search, /work/, company /cmp/…/jobs, or job URLs
keywords / locations / countrysoftware engineer / (empty = whole country) / dePrefill location hamburg; cartesian product of searches
radius—km around the location
postedWithinanyVerified: 1 (24h), 7, 30
remoteanyremote / hybrid / onsite via StepStone wp= facet
minSalary—Yearly filter (us=)
applicationMethodanyQuick apply vs company website
sortByrelevanceOr date
includeDetailsfalseOpens job pages; charges job-detail
descriptionFormattexttext / html / markdown / all
maxItems25Max saved (= max charged) rows
onlyNewOrChanged / monitoringKeyoffMonitoring mode
proxyConfigurationApify ProxyDatacenter 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/ listings workFromHomeCode is null; use the remote filter and/or detail workType text.
  • postCode is often missing on listing rows.
  • Region-restricted ads may keep listing data with detailError and charge job instead of job-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 id across searches in one run.
  • Drops recommended sections unless includeRelatedJobs is true.
  • Monitoring state lives in named key-value store stepstone-monitor.
  • Writes RUN_SUMMARY (and MONITORING_SUMMARY when monitoring).

Billing

  • Exactly one of job or job-detail per 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.