StepStone.de Scraper - Germany's Leading Job Board
Pricing
from $3.30 / 1,000 results
StepStone.de Scraper - Germany's Leading Job Board
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
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
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
JobListingschema 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
| Field | Type | Description | Default |
|---|---|---|---|
directUrls | array | Direct StepStone.de job URLs to scrape (skips search) | - |
searchQuery | string | Keywords (Was) - job title, skills | - |
location | string | Location (Wo) - city or region | - |
radius | integer | Search radius in km (0, 5, 10, 25, 50, 100, 150, 200) | 25 |
bundesland | string | Federal state code (BY, BE, HH, NW, etc.) | - |
employmentType | array | Filter by type (FULL_TIME, PART_TIME, FREELANCE, etc.) | [] |
experienceLevel | array | Filter by level (ENTRY_LEVEL, PROFESSIONAL, MANAGEMENT, etc.) | [] |
datePosted | string | Days since posted (1, 7, 30) | - |
maxResults | integer | Maximum jobs to scrape | 50 |
includeJobDetails | boolean | Visit detail pages for full data | true |
llmApiKey | string | Groq/OpenRouter API key for AI extraction | - |
llmModel | string | LLM model (none, llama-3.1-8b-instant, mistral-small-3.1-24b-instruct) | none |
proxyConfiguration | object | Apify proxy settings | Residential |
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:
| Code | State (German) | State (English) |
|---|---|---|
| BY | Bayern | Bavaria |
| BW | Baden-Württemberg | Baden-Württemberg |
| BE | Berlin | Berlin |
| BB | Brandenburg | Brandenburg |
| HB | Bremen | Bremen |
| HH | Hamburg | Hamburg |
| HE | Hessen | Hesse |
| MV | Mecklenburg-Vorpommern | Mecklenburg-Vorpommern |
| NI | Niedersachsen | Lower Saxony |
| NW | Nordrhein-Westfalen | North Rhine-Westphalia |
| RP | Rheinland-Pfalz | Rhineland-Palatinate |
| SL | Saarland | Saarland |
| SN | Sachsen | Saxony |
| ST | Sachsen-Anhalt | Saxony-Anhalt |
| SH | Schleswig-Holstein | Schleswig-Holstein |
| TH | Thüringen | Thuringia |
LLM Extraction (Optional)
Enable AI-powered extraction for enhanced data quality:
-
Get an API key:
- Groq (fast, cheap): https://console.groq.com
- OpenRouter (more models): https://openrouter.ai
-
Configure extraction:
{"llmApiKey": "gsk_xxxxx","llmModel": "llama-3.1-8b-instant"} -
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
- Go to the actor page on Apify
- Configure input parameters
- Click "Start"
- 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
- Use specific searches: Narrow queries yield better results
- Set reasonable limits: Start with 50-100 jobs for testing
- Enable job details: Full descriptions provide much richer data
- Use LLM extraction: For structured requirements and contact info
- Monitor costs: Check CU usage for large-scale scraping
- 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: trueis 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
llmModelis not set to "none" - Ensure you have credits in your Groq/OpenRouter account
Support
For issues or questions:
- GitHub Issues: [Your repo]
- Email: [Your email]
- Apify Community: https://community.apify.com
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