Stepstone Scraper | All-In-One | $4/ 1K avatar

Stepstone Scraper | All-In-One | $4/ 1K

Pricing

$3.99 / 1,000 results

Go to Apify Store
Stepstone Scraper | All-In-One | $4/ 1K

Stepstone Scraper | All-In-One | $4/ 1K

Extract job postings and hiring company details at scale from Stepstone .de, .at, .be, & .nl. Use direct URLs or build searches with filters for location, salary, & more. Get clean, structured job data Ideal for market research and job aggregation.

Pricing

$3.99 / 1,000 results

Rating

3.4

(4)

Developer

Fatih Tahta

Fatih Tahta

Maintained by Community

Actor stats

9

Bookmarked

151

Total users

35

Monthly active users

14 hours

Issues response

11 days ago

Last modified

Share

StepStone Scraper

Slug: fatihtahta/stepstone-scraper-fast-reliable-4-1k

Overview

StepStone Scraper collects structured job listing data from StepStone, including core fields such as listing ID, URL, title, company details, location, posting metadata, and compensation-related fields when available. It supports both direct URL-based collection and keyword-based discovery with practical filters to narrow results by market and hiring criteria. The actor is designed for StepStone country domains including stepstone.de, stepstone.be, stepstone.at, and stepstone.nl, making it useful for cross-market hiring analysis and regional trend tracking. By automating collection into a consistent JSON output, it reduces manual research time and improves repeatability for recurring workflows. Teams can run it on demand or on a schedule to maintain fresh, analysis-ready datasets.

Why Use This Actor

  • Market research & analytics: Analyze hiring trends, role volumes, location patterns, and posting freshness across countries or time windows.
  • Product & content teams: Validate content opportunities and career-topic priorities using real job demand signals (titles, skills context, and employer activity).
  • Developers & data engineering pipelines: Feed normalized listing records into BI dashboards, warehousing jobs, and enrichment workflows with minimal transformation.
  • Lead generation & enrichment teams: Build targeted prospect lists by role, location, and company attributes to support outreach and account research.
  • Monitoring & competitive tracking: Track shifts in hiring activity for specific employers, keywords, or markets through recurring scheduled runs.

Input Parameters

Provide any combination of URLs, queries, and filters to match your collection goals.

ParameterTypeDescriptionDefault
startUrlsarray[string]StepStone search-result or job-detail URLs to collect directly. Use multiple URLs to combine known pages in one run.
domainstringCountry domain used for keyword-generated searches. Allowed values: stepstone.de, stepstone.at, stepstone.be, stepstone.nl.stepstone.de
queriesarray[string]Search keywords such as job titles, skills, departments, industries, or employer names.
locationstringOptional location text (city/region/area) for keyword searches, such as Berlin, Vienna, Brussels, or Amsterdam.
distanceFromSourcestringSearch radius around the source location for keyword searches. Allowed values: 5, 10, 20, 30, 40, 50, 75, 100 (km).30
workRemotearray[string]Optional remote-work filter for keyword searches. Allowed values: PARTIALLY_REMOTE_HYBRID, FULLY_REMOTE_ONLY.[]
ApplicationTypearray[string]Optional application method filter for keyword searches. Allowed values: EXTERNAL (apply on company website), INTERNAL (quick application).[]
listingLanguagearray[string]Optional language filter for keyword searches. Allowed values: GERMAN, ENGLISH.[]
WorkingHoursarray[string]Optional working-hours filter for keyword searches. Allowed values: FULL_TIME, PART_TIME.[]
employmentTypearray[string]Optional employment-type filter for keyword searches. Allowed values: PERMANENT_POSITION, APPRENTICESHIP_STUDIES, FIXED_TERM_CONTRACT, ENTRY_LEVEL_TRAINEE, TEMPORARY_AGENCY_WORK, STUDENT_JOB_WORKING_STUDENT, INTERNSHIP, FREELANCE_PROJECT_BASED, BACHELORS_MASTERS_DIPLOMA_THESIS, PHD_POSTDOCTORAL_QUALIFICATION.[]
experiencearray[string]Optional experience-level filter for keyword searches. Allowed values: EXPERIENCE_REQUIRED, NO_EXPERIENCE_NEEDED, MANAGEMENT_EXPERIENCE_REQUIRED.[]
publishedDatestringOptional recency window for keyword searches. Allowed values: "" (no filter), 24Hours, 7Days.""
limitintegerMaximum listings to store per query (minimum: 1).50000

Example Input

{
"domain": "stepstone.de",
"queries": ["data analyst", "business intelligence"],
"location": "Berlin",
"distanceFromSource": "30",
"workRemote": ["PARTIALLY_REMOTE_HYBRID"],
"listingLanguage": ["GERMAN"],
"publishedDate": "7Days",
"limit": 250
}

Output

6.1 Output destination

The actor writes results to an Apify dataset as JSON records. And the dataset is designed for direct consumption by analytics tools, ETL pipelines, and downstream APIs without post-processing.

6.2 Record envelope (all items)

Every record includes these stable identifiers:

  • type (string, required)
  • id (number, required)
  • source (object, required)

Recommended idempotency key: type + ":" + id. Use this key for deduplication and upserts when the same listing appears across multiple inputs or repeated runs.

6.3 Examples

Example: job listing (type = "job_listing")

{
"type": "job_listing",
"id": 13686544,
"source": {
"url": "https://www.stepstone.de/stellenangebote--Facharzt-fuer-Innere-Medizin-m-w-d-MVZ-mit-Telemedizin-Voerde-Niederrhein-meinestadt-de--13686544-inline.html?rltr=1_1_25_seorl_m_0_0_0_0_0_0",
"source_url": "https://www.stepstone.de/jobs/facharzt-%c3%a4rztin-innere-medizin?action=facet_selected%3Bage%3Bage_1&ag=age_1&q=Facharzt%2F-%C3%A4rztin+-+Innere+Medizin",
"seed_value": "https://www.stepstone.de/jobs/facharzt-%c3%a4rztin-innere-medizin?action=facet_selected%3Bage%3Bage_1&ag=age_1&q=Facharzt%2F-%C3%A4rztin+-+Innere+Medizin"
},
"title": "Facharzt für Innere Medizin (m/w/d) – MVZ mit Telemedizin",
"seed_type": "url",
"scraped_at": "2026-02-24T09:12:34.567890+00:00",
"company_details": {
"company_id": 218724,
"company_name": "meinestadt.de",
"company_profile_url": "https://www.stepstone.de/cmp/de/meinestadtde-218724/jobs",
"company_logo_url": "https://www.stepstone.de/upload_DE/logo/D/logoPresented-by-meinestadt-de-218724DE.gif",
"is_anonymous_company": false
},
"posting_details": {
"published_at": "2026-02-23T11:41:15+01:00",
"section": "main",
"has_future_posting": false
},
"workplace_details": {
"job_location": "Voerde/Niederrhein",
"remote_work_type": "2",
"work_arrangement": "Hybrid"
},
"compensation_details": {
"salary_text": "",
"salary_range": {
"min": null,
"max": null,
"currency": null,
"period": null,
"salaryAvailable": true,
"salaryType": null
}
},
"listing_metadata": {
"labels": [],
"top_labels": [],
"skills": [],
"position_metadata": {
"positionOnPage": 1,
"positionAbsolute": 1
},
"harmonized_id": "C4A6AF81-5C91-44B7-A776-3A45F4A6D7F0",
"is_highlighted": false,
"is_sponsored": false,
"is_top_job": false,
"is_partner_traffic": false
},
"partner_details": {
"partnership": {
"isPartnershipJob": false,
"showPartnershipLabel": false,
"isBackfilled": false,
"sourceSiteFriendlyName": "",
"isCrossPosted": false
}
},
"content_details": {
"job_snippet_html": "Position: <strong>Facharzt</strong> für <strong>Innere</strong> <strong>Medizin</strong> (m/w/d) - MVZ * Stellendetails: Als <strong>Facharzt</strong> für <strong>Innere</strong> <strong>Medizin</strong> (m/w/d) übernehmen Sie die umfassende internistische-hausärztliche Betreuung Ihrer Patienten - sowohl in der Präsenzsprechstunde als auch digital per <strong>Telemedizin.</strong> * <strong>Facharzttitel</strong> in <strong>Innere</strong> <strong>Medizin</strong> * Fachrichtung: <strong>Innere</strong> <strong>Medizin</strong> - hausärztliche Versorgung - In diesem modernen MVZ am Rande des westlichen Ruhrgebiets verbinden Sie die internistisch-hausärztliche Versorgung mit innovativer <strong>Telemedizin.</strong> * Interesse an modernen Versorgungsformen wie <strong>Telemedizin</strong> * Anteilig <strong>Telemedizin</strong> mit Homeoffice-Möglichkeit",
"job_snippet_cleaned": "Position: Facharzt für Innere Medizin (m/w/d) - MVZ mit Telemedizin"
}
}

Field reference

Job listing fields (type = "job_listing")

  • type (string, required): Record type identifier.
  • id (number, required): Stable StepStone listing identifier.
  • source.url (string, optional): Listing URL.
  • title (string, optional): Listing title.
  • source.source_url (string, optional): Source URL that led to discovery.
  • seed_type (string, optional): Input origin category.
  • source.seed_value (string, optional): Original input value used.
  • scraped_at (string, required): UTC timestamp indicating when the record was produced.
  • company_details.company_id (number, optional): Company identifier.
  • company_details.company_name (string, optional): Company display name.
  • company_details.company_profile_url (string, optional): Company profile URL.
  • company_details.company_logo_url (string, optional): Company logo URL.
  • company_details.is_anonymous_company (boolean, optional): Whether company is anonymized.
  • posting_details.published_at (string, optional): Listing publish timestamp.
  • posting_details.section (string, optional): Listing section label.
  • posting_details.has_future_posting (boolean, optional): Indicates future-dated posting state.
  • workplace_details.job_location (string, optional): Job location text.
  • workplace_details.remote_work_type (string, optional): Remote-work indicator ("0" on-site, "1" fully remote, "2" hybrid).
  • workplace_details.work_arrangement (string, optional): Human-readable remote arrangement derived from remote_work_type ("On-site", "Fully Remote", "Hybrid").
  • compensation_details.salary_text (string, optional): Salary text as displayed.
  • compensation_details.salary_range.min (number/null, optional): Minimum salary value.
  • compensation_details.salary_range.max (number/null, optional): Maximum salary value.
  • compensation_details.salary_range.currency (string/null, optional): Salary currency.
  • compensation_details.salary_range.period (string/null, optional): Salary period.
  • compensation_details.salary_range.salaryAvailable (boolean, optional): Salary availability flag.
  • compensation_details.salary_range.salaryType (string/null, optional): Salary type label.
  • listing_metadata.labels (array[object], optional): Listing labels when provided.
  • listing_metadata.labels[].label (string, optional): Label text.
  • listing_metadata.labels[].type (string, optional): Label category code.
  • listing_metadata.top_labels (array[string], optional): Featured listing labels.
  • listing_metadata.skills (array[string], optional): Listed skills.
  • listing_metadata.position_metadata.positionOnPage (number, optional): Position index on page.
  • listing_metadata.position_metadata.positionAbsolute (number, optional): Absolute position across results.
  • listing_metadata.harmonized_id (string, optional): Harmonized listing identifier.
  • listing_metadata.is_highlighted (boolean, optional): Highlight flag.
  • listing_metadata.is_sponsored (boolean, optional): Sponsored flag.
  • listing_metadata.is_top_job (boolean, optional): Top job flag.
  • listing_metadata.is_partner_traffic (boolean, optional): Partner-traffic flag.
  • partner_details.partnership.isPartnershipJob (boolean, optional): Partnership job flag.
  • partner_details.partnership.showPartnershipLabel (boolean, optional): Partnership label visibility.
  • partner_details.partnership.isBackfilled (boolean, optional): Backfilled listing flag.
  • partner_details.partnership.sourceSiteFriendlyName (string, optional): Partner source label.
  • partner_details.partnership.isCrossPosted (boolean, optional): Cross-posted flag.
  • content_details.job_snippet_html (string, optional): Listing snippet in HTML.
  • content_details.job_snippet_cleaned (string, optional): Plain-text snippet cleaned from HTML formatting.

Data guarantees & handling

  • Best-effort extraction: fields may vary by region/session/availability/UI experiments.
  • Optional fields: null-check in downstream code.
  • Deduplication: recommend type + ":" + id.

How to Run on Apify

  1. Open the actor in Apify Console.
  2. Configure your search parameters (for example keywords, domain, location, and optional filters).
  3. Set the maximum number of outputs to collect.
  4. Click Start and wait for the run to finish.
  5. Download results in JSON, CSV, Excel, or other supported formats.

Scheduling & Automation

Recurring Hiring Intelligence

StepStone listings change fast — new roles appear daily, salary fields update, and companies rotate campaigns. For serious market tracking, one-off runs are not enough.

This actor is designed for recurring, structured hiring monitoring across:

  • Specific employers (e.g., monitor hiring spikes)
  • Cities or regions (Berlin vs Vienna vs Amsterdam)
  • Skill clusters (e.g., Data Analyst + Python)
  • Remote/hybrid shifts
  • Language segmentation (German vs English postings)
  • Recency windows (24h / 7 days)

Typical automation setups:

  • Daily runs (24Hours filter) → Capture newly published listings only
  • Weekly runs (7Days filter) → Trend tracking & reporting snapshots
  • Employer monitoring → Detect volume changes for specific companies
  • Remote-work tracking → Measure hybrid vs fully remote adoption

How to Schedule

  1. Open the actor in Apify Console
  2. Configure a stable input (queries, domain, filters)
  3. Navigate to Schedules
  4. Create a recurring schedule (daily / weekly / cron)
  5. Keep publishedDate set to 24Hours or 7Days for delta-style monitoring

Production Automation Patterns

This actor is commonly used in structured pipelines:

  • Webhook → ETL → Data Warehouse Push new listings into Snowflake, BigQuery, Postgres, or S3.

  • Webhook → Enrichment → CRM Enrich company records or trigger sales research flows.

  • Scheduled Run → BI Dashboard Refresh Power hiring trend dashboards segmented by country or city.

  • Delta Monitoring Actor already deduplicates all of the data. But if you are doing it across a database, Use id as an idempotency key to safely upsert listings without duplication.

Because listing IDs are stable, recurring runs are safe for incremental ingestion.


Performance

This actor is optimized for structured listing extraction at scale across StepStone country domains.

Typical runtime expectations:

  • < 1,000 listings: ~2–3 minutes
  • 1,000–5,000 listings: ~5–15 minutes
  • 5,000+ listings: ~15–30 minutes

Performance depends primarily on:

  • Number of queries
  • Country domain used
  • Result pagination depth
  • Whether detailed pages are fetched via search discovery

For large recurring jobs:

  • Segment queries by country for predictable throughput
  • Use 24 hour trailing filter for daily delta monitoring

Compliance & Ethics

Intended Use

This actor collects publicly available job listing metadata from StepStone country domains:

  • stepstone.de
  • stepstone.at
  • stepstone.be
  • stepstone.nl

It is designed for:

  • Labor market research
  • Hiring trend analysis
  • Competitive employer monitoring
  • Salary transparency analysis
  • Structured job data enrichment

Best Practices

  • Use collected data in accordance with applicable laws, regulations, and the target site’s terms.
  • Respect individual privacy and personal information.
  • Use data responsibly and avoid disruptive or excessive collection.
  • Do not use this actor for spamming, harassment, or other harmful purposes.
  • Follow relevant data protection requirements where applicable (e.g., GDPR, CCPA).

Support

For help, use the actor page Issues section in Apify Console. When reporting a problem, include the input used (redacted), the run ID, a short expected-vs-actual behavior summary, and an optional small output sample to speed up troubleshooting.