StepStone Jobs Scraper avatar

StepStone Jobs Scraper

Pricing

Pay per event

Go to Apify Store
StepStone Jobs Scraper

StepStone Jobs Scraper

Scrape job listings from StepStone, Germany's largest job board, by keyword and optional location. Get title, company, location, posting date, URL, salary, sponsorship flag, skills, and a snippet — deduplicated, ready for recruiter pipelines.

Pricing

Pay per event

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

StepStone Jobs Scraper

💰 $3.20 / 1 000 results  ·  pay only for results  ·  no credit card to try

The devil's in the data. 😈

Scrape job listings from StepStone, Germany's largest job board, keyed by keyword and an optional location. Get clean, deduplicated rows — title, company, location, posting date, URL, salary if published, sponsorship flag, skills, and a text snippet — ready for a recruiter pipeline or a hiring-intent feed.

🎯 What this scrapes

StepStone lists thousands of German job postings across every industry, 25 to a page, with no bulk export. This Actor searches by keyword and optional location, walks the result pages, and returns one row per job: title, company, location, posting date, absolute URL, salary (when published), sponsorship/highlight/anonymous flags, skills, and labels.

🔥 Features

  • 🛡️ We rotate browser fingerprints so StepStone sees a real browser's TLS handshake, not a Python script.
  • 🔁 We retry with exponential backoff on rate limits and server errors, honouring Retry-After.
  • 🌐 We route every request through Apify Proxy.
  • 🧊 Run-wide deduplication. The same job id never appears twice in your dataset, even across pages or across multiple keywords in one run.
  • 🧾 Multi-keyword batching in one run — search several terms at once and every row is tagged with the keyword (and location) that found it.
  • 💰 You pay only for results that land. No data → no charge (only the small actor-start warm-up fee).

💡 Use cases

  • Recruiters and staffing agencies — pull every open role matching a skill or title across German employers.
  • Job boards and aggregators — backfill DACH-region postings your existing sources miss.
  • Sales / BD teams — new job openings are a public hiring-intent signal; a company opening five engineering roles just funded a team.
  • Market research — track which titles, locations, and skills a sector is hiring for over time.

⚙️ How to use it

  1. Set one or more keywords — the search terms to run.
  2. Optionally set location — applied to every keyword in the run.
  3. Set maxResults and maxPagesPerKeyword to bound how much you pull per run.
  4. Run it, then export to JSON, CSV, or Excel — or pull the dataset straight from the Apify API.

📥 Input

FieldTypeRequiredDefaultNotes
keywordsarray<string>yes—Search terms; one or more searches run per Actor call.
locationstring | nullnonullApplied to every keyword in the run.
maxResultsintegerno100Hard cap on total rows emitted across all keywords (1-2000).
maxPagesPerKeywordintegerno20Safety cap on pages fetched per keyword, 25 rows/page (1-200).
proxyConfigurationobjectno{"useApifyProxy": true}Apify Proxy configuration.

Example input

{
"keywords": ["java"],
"location": null,
"maxResults": 5,
"maxPagesPerKeyword": 1
}

📤 Output

One row per deduplicated job matching your search.

FieldTypeNotes
idintegerStable job id, dedupe key.
titlestringJob title.
companyNamestringHiring company's name.
companyIdintegerHiring company's numeric id.
locationstringFree text, may be multi-city.
datePostedstringISO-8601 posting timestamp.
urlstringAbsolute job URL, tracking params stripped.
salarystring | nullUsually null.
unifiedSalaryobject | nullPassthrough.
workFromHomestring | nullOpaque enum passthrough.
isSponsoredbooleanSponsored listing flag.
isHighlightedbooleanHighlighted listing flag.
isAnonymousbooleanAnonymous employer flag.
postCodestring | nullPostal code, if published.
textSnippetstring | nullPassthrough snippet.
skillsarray<string>May be empty.
labelsarray<string>May be empty.
sourceKeywordstringInput keyword that produced this row.
sourceLocationstring | nullInput location that produced this row.

💰 Pricing

Pay-Per-Event — you pay only when these events fire:

EventUSDWhat it is
actor-start$0.20One-off warm-up charge per run
result-emitted$0.003Per deduplicated job posting written to the dataset

Example: 1 000 job postings = $3.20 per run ($0.20 start + 1000 x $0.003). No subscription, no minimum, no card required to try it.

🚧 Limitations

  • List-page fields only. This returns the fields StepStone's search result page publishes; full job-description text isn't fetched — use the returned url for a follow-up detail-page job.
  • .de only. StepStone's .at and .ch country variants aren't covered in this version.
  • A narrow search can legitimately return zero rows. That's a successful run, not a failure — widen your keyword or drop the location filter.

❓ FAQ

Do I need a StepStone account or API key? No. This reads StepStone's public search result pages.

Why did my run return fewer rows than maxResults? Either the search genuinely has fewer matching jobs than your cap, or maxPagesPerKeyword stopped the run first — the status message tells you which.

Can I search multiple keywords in one run? Yes — pass an array to keywords; every row is tagged with the keyword that found it via sourceKeyword.

Can I run this on a schedule? Yes — use Apify Schedules to re-run your keyword set on a cadence and catch newly posted jobs.

💬 Your feedback

Found a bug, or need a field we don't return yet? Open an issue on the Actor's Issues tab — we read every one.