StepStone.de Scraper - Germany's Leading Job Board avatar
StepStone.de Scraper - Germany's Leading Job Board
Under maintenance

Pricing

from $3.30 / 1,000 results

Go to Apify Store
StepStone.de Scraper - Germany's Leading Job Board

StepStone.de Scraper - Germany's Leading Job Board

Under maintenance

Extract jobs from StepStone.de, Germany's largest job portal. Get job titles, companies, locations, descriptions, salary info & contact details. Supports search filters (location, Bundesland, employment type, experience level). Optional LLM extraction for requirements & benefits.

Pricing

from $3.30 / 1,000 results

Rating

0.0

(0)

Developer

Alessandro Santamaria

Alessandro Santamaria

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

StepStone.de Scraper - Germany's #1 Job Portal

Professional job scraper for StepStone.de, Germany's leading job board with over 200,000+ active job postings across all 16 federal states (Bundesländer) and all major industries.

Features

  • Comprehensive Coverage: All 16 German federal states (Bayern, Berlin, Hamburg, etc.)
  • Advanced Filtering: Employment type, experience level, location radius, date posted
  • Full Job Details: Optional deep scraping for complete job descriptions
  • LLM Extraction: AI-powered extraction of requirements, benefits, and contact information
  • Structured Output: Standardized JobListing schema compatible with your data pipeline
  • Proxy Support: Built-in Apify proxy integration to avoid rate limits
  • Smart Selectors: Handles StepStone's React SPA architecture

StepStone.de Overview

StepStone is Germany's #1 job portal, connecting millions of job seekers with employers:

  • 200,000+ active job listings
  • 16 federal states (Bundesländer)
  • All industries and sectors
  • Entry-level to executive positions

Input

FieldTypeDescriptionDefault
directUrlsarrayDirect StepStone.de job URLs to scrape (skips search)-
searchQuerystringKeywords (Was) - job title, skills-
locationstringLocation (Wo) - city or region-
radiusintegerSearch radius in km (0, 5, 10, 25, 50, 100, 150, 200)25
bundeslandstringFederal state code (BY, BE, HH, NW, etc.)-
employmentTypearrayFilter by type (FULL_TIME, PART_TIME, FREELANCE, etc.)[]
experienceLevelarrayFilter by level (ENTRY_LEVEL, PROFESSIONAL, MANAGEMENT, etc.)[]
datePostedstringDays since posted (1, 7, 30)-
maxResultsintegerMaximum jobs to scrape50
includeJobDetailsbooleanVisit detail pages for full datatrue
llmApiKeystringGroq/OpenRouter API key for AI extraction-
llmModelstringLLM model (none, llama-3.1-8b-instant, mistral-small-3.1-24b-instruct)none
proxyConfigurationobjectApify proxy settingsResidential

Output

Each job listing follows the standardized schema:

{
"id": "job-12345",
"title": "Senior Softwareentwickler (m/w/d)",
"company": "Tech GmbH",
"location": "Berlin",
"canton": "BE",
"salary_text": "EUR 60,000 - 80,000 per year",
"employment_type": "full-time",
"workload_min": null,
"workload_max": null,
"remote_option": "remote",
"description_snippet": "Wir suchen einen erfahrenen Softwareentwickler...",
"description_full": "Full job description...",
"requirements": [
"5+ Jahre Erfahrung mit Java/Python",
"Kenntnisse in Cloud-Technologien (AWS, Azure)",
"Teamfähigkeit und selbstständiges Arbeiten"
],
"posted_at": "2024-01-15T10:00:00Z",
"expires_at": "2024-02-15T23:59:59Z",
"source_url": "https://www.stepstone.de/jobs/...",
"source_platform": "stepstone.de",
"contact_firstname": "Maria",
"contact_lastname": "Schmidt",
"contact_salutation": "Frau",
"contact_position": "Personalreferentin",
"contact_email": "jobs@tech-gmbh.de",
"contact_phone": "+49 30 12345678",
"apply_url": "https://...",
"company_url": "https://www.stepstone.de/cmp/de/Tech-GmbH-12345/jobs.html",
"company_website": "https://www.tech-gmbh.de",
"company_job_count": 15,
"company_benefits": [
"Homeoffice möglich",
"30 Tage Urlaub",
"Betriebliche Altersvorsorge"
],
"scraped_at": "2024-01-16T12:00:00Z"
}

Usage Examples

Example 1: Software Jobs in Berlin

{
"searchQuery": "Softwareentwickler",
"location": "Berlin",
"radius": 25,
"employmentType": ["FULL_TIME"],
"maxResults": 100,
"includeJobDetails": true
}

Example 2: Nursing Jobs in Bayern (Bavaria)

{
"searchQuery": "Krankenpfleger",
"bundesland": "BY",
"employmentType": ["FULL_TIME", "PART_TIME"],
"datePosted": "7",
"maxResults": 50,
"includeJobDetails": true,
"llmApiKey": "gsk_xxxxx",
"llmModel": "llama-3.1-8b-instant"
}

Example 3: Remote Marketing Jobs (Last 30 Days)

{
"searchQuery": "Marketing Manager remote",
"datePosted": "30",
"maxResults": 100,
"includeJobDetails": true
}

Example 4: Entry-Level Jobs in Hamburg

{
"searchQuery": "Berufseinsteiger",
"location": "Hamburg",
"experienceLevel": ["ENTRY_LEVEL"],
"datePosted": "7",
"maxResults": 50
}

Example 5: Direct URL Mode (Status Checking)

{
"directUrls": [
"https://www.stepstone.de/stellenangebote--Software-Engineer--12345-inline.html",
"https://www.stepstone.de/stellenangebote--Data-Scientist--67890-inline.html"
]
}

Use direct URL mode to:

  • Check if jobs are still online/active
  • Update existing job data
  • Monitor specific job postings

German Federal States (Bundesländer)

The scraper supports all 16 German states:

CodeState (German)State (English)
BYBayernBavaria
BWBaden-WürttembergBaden-Württemberg
BEBerlinBerlin
BBBrandenburgBrandenburg
HBBremenBremen
HHHamburgHamburg
HEHessenHesse
MVMecklenburg-VorpommernMecklenburg-Vorpommern
NINiedersachsenLower Saxony
NWNordrhein-WestfalenNorth Rhine-Westphalia
RPRheinland-PfalzRhineland-Palatinate
SLSaarlandSaarland
SNSachsenSaxony
STSachsen-AnhaltSaxony-Anhalt
SHSchleswig-HolsteinSchleswig-Holstein
THThüringenThuringia

LLM Extraction (Optional)

Enable AI-powered extraction for enhanced data quality:

  1. Get an API key:

  2. Configure extraction:

    {
    "llmApiKey": "gsk_xxxxx",
    "llmModel": "llama-3.1-8b-instant"
    }
  3. What it extracts:

    • Job requirements (skills, qualifications, experience)
    • Company benefits (perks, compensation, work culture)
    • Contact information (name, salutation via LLM; email, phone, website via regex)

Via Apify Console

  1. Go to the actor page on Apify
  2. Configure input parameters
  3. Click "Start"
  4. Download results from the Dataset tab

Via API

curl -X POST "https://api.apify.com/v2/acts/santamaria~stepstone-de-scraper/runs" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchQuery": "Softwareentwickler",
"location": "München",
"radius": 50,
"maxResults": 100,
"includeJobDetails": true
}'

Performance & Pricing

Performance

  • Search-only mode: ~100 jobs/minute (without detail pages)
  • Full detail mode: ~20-30 jobs/minute (with detail pages)
  • With LLM extraction: ~10-15 jobs/minute (depends on API speed)

Typical Compute Units (CU)

  • 50 jobs (search only): ~0.005 CU
  • 50 jobs (with details): ~0.02 CU
  • 100 jobs (with details + LLM): ~0.05 CU
  • 1,000 jobs (with details + LLM): ~0.5 CU

Technical Details

Architecture

  • Platform: StepStone.de (React SPA)
  • Crawler: PlaywrightCrawler (handles dynamic content)
  • Selectors: Data attributes and JSON-LD structured data
  • Pagination: Automatic page-by-page crawling
  • Error Handling: Offline job detection, validation, retries

Data Quality

  • Validation: Zod schema validation on all outputs
  • Deduplication: Job IDs tracked to prevent duplicates
  • Offline Detection: Flags expired/unavailable jobs
  • Date Parsing: Handles relative dates (e.g., "vor 3 Tagen")
  • Location Mapping: Automatic Bundesland detection from cities
  • Contact Extraction: Email, phone, and company website via regex; names via LLM only (to avoid false positives)

Best Practices

  1. Use specific searches: Narrow queries yield better results
  2. Set reasonable limits: Start with 50-100 jobs for testing
  3. Enable job details: Full descriptions provide much richer data
  4. Use LLM extraction: For structured requirements and contact info
  5. Monitor costs: Check CU usage for large-scale scraping
  6. Respect rate limits: Use Apify's residential proxies

Troubleshooting

No jobs found

  • Check if your search query is too specific
  • Try broader location (e.g., state instead of city)
  • Remove filters like employment type or experience level

Jobs missing details

  • Ensure includeJobDetails: true is set
  • Check if jobs are expired (they'll have job_status: "offline")
  • Increase proxy quality if facing rate limits

LLM extraction not working

  • Verify your API key is correct
  • Check that llmModel is not set to "none"
  • Ensure you have credits in your Groq/OpenRouter account

Support

For issues or questions:


Part of the Santamaria Job Scrapers Suite - Professional-grade job data for the DACH region and beyond.

Other Scrapers

  • jobscout24-ch: Swiss job market (11 cantons, 100,000+ jobs)
  • stepstone-de: Germany (16 states, 200,000+ jobs) ← You are here
  • jobs-ch: Switzerland's #1 job portal
  • More coming soon for Austria, Netherlands, and other EU markets