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

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

Pricing

$2.49 / 1,000 results

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

Stepstone Scraper | All-In-One | $2.5/ 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

$2.49 / 1,000 results

Rating

3.1

(3)

Developer

Fatih Tahta

Fatih Tahta

Maintained by Community

Actor stats

10

Bookmarked

188

Total users

40

Monthly active users

14 hours

Issues response

4 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 core fields:

  • id (number|string, required): Stable StepStone listing identifier. In rare fallback cases, a hashed string identifier is generated.
  • title (string, optional)
  • seed_type (string, optional)
  • source (object, required)
  • scraped_at (string, required)
  • id_source (string, required): native when StepStone provided the ID directly, fallback when a deterministic fallback ID was generated.

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

6.3 Examples

Example: enriched job listing record

{
"id": 13691391,
"title": "Project Engineer IP Central Services & Security (w/m/d)",
"seed_type": "url",
"source": {
"url": "https://www.stepstone.de/stellenangebote--Project-Engineer-IP-Central-Services-Security-w-m-d-Berlin-50Hertz-Transmission-GmbH--13691391-inline.html?rltr=2_2_25_seorl_m_1_0_0_0_0_0",
"source_url": "https://www.stepstone.de/jobs/engineer/in-berlin?radius=30&searchOrigin=membersarea&whereType=autosuggest",
"seed_value": "https://www.stepstone.de/jobs/engineer/in-berlin?radius=30&searchOrigin=membersarea&whereType=autosuggest"
},
"scraped_at": "2026-03-13T08:29:38.137232+00:00",
"id_source": "native",
"company_details": {
"company_id": 80342,
"company_name": "50Hertz Transmission GmbH",
"company_profile_url": "https://www.stepstone.de/cmp/de/50hertz-transmission-gmbh-80342/jobs",
"company_logo_url": "https://www.stepstone.de/upload_DE/logo/D/logo50Hertz-Transmission-GmbH-80342DE-1910081639.gif",
"is_anonymous_company": false,
"company_website": "https://www.karriere.50hertz.com",
"company_address": "Heidestraße 2, Berlin",
"company_size": "1001-5000",
"company_founded": 2010,
"company_jobs_count": 55,
"company_industries": [
"Energie- und Wasserversorgung & Entsorgung"
],
"company_sectors": [
{
"id": 13000,
"name": "Energie- und Wasserversorgung & Entsorgung"
}
],
"company_rating": {
"surveysCount": 53,
"overallRatingAvg": 4.86575
},
"company_benefits": [
"Leistungsgerechte Entlohnung",
"Flexible Arbeitszeiten",
"Homeoffice"
]
},
"posting_details": {
"published_at": "2026-03-12T10:03:06.67Z",
"section": "main",
"has_future_posting": false,
"contract_type": "Feste Anstellung",
"work_type": "Homeoffice möglich, Vollzeit",
"online_status": "Online"
},
"workplace_details": {
"job_location": "Berlin",
"remote_work_type": "2",
"work_arrangement": "Hybrid"
},
"listing_metadata": {
"labels": [
{
"label": "Anschreiben nicht erforderlich",
"type": "NO_COVER_LETTER"
}
],
"top_labels": [],
"skills": [],
"position_metadata": {
"positionOnPage": 2,
"positionAbsolute": 2
},
"harmonized_id": "7010B7E5-43DB-4F17-8998-5A5ED53F2439",
"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": "Know-how-Transfer zu den IP Operation <strong>Engineers,</strong> Unterstützung bei betrieblichen Aufgaben und Sonderkonfigurationen,",
"job_snippet_cleaned": "Know-how-Transfer zu den IP Operation Engineers, Unterstützung bei betrieblichen Aufgaben und Sonderkonfigurationen,",
"detail_sections": [
{
"name": "description",
"title": "Hier treibe ich den Ausbau und die Vernetzung moderner Kommunikationsinfrastrukturen voran – von Rechenzentrum bis Büro.",
"is_collapsible": false,
"should_title_be_displayed": true,
"content_html": "<p><strong>Das macht diesen Job für mich interessant:</strong> ...</p>",
"content_text": "Das macht diesen Job für mich interessant: ...",
"paragraphs": [
"Das macht diesen Job für mich interessant: ..."
],
"bullet_points": [
"Durchführung aller Planungs-, Konfigurations- und Netzintegrationsaufgaben ..."
]
},
{
"name": "additionalInformation",
"title": "Ansprechpartner*in",
"is_collapsible": false,
"should_title_be_displayed": true,
"content_html": "<p><strong>Eduard Weissbrot</strong> ...</p>",
"content_text": "Eduard Weissbrot ...",
"paragraphs": [
"Eduard Weissbrot ..."
],
"links": [
{
"text": "E-Mail schreiben",
"url": "https://api.relaxx.center/r/d91316cf795441d1bd1795e2c271e874?mpid=1479113&pid=2542797&prid=1095325&tid=30"
}
]
}
],
"full_description": "Das macht diesen Job für mich interessant: Die Elia Group betreibt IT-Infrastrukturen an hunderten Standorten in Belgien und Deutschland ..."
},
"detail_page": {
"page_context": {
"language": "de",
"listing_badges": [
"Sei einer der ersten Bewerber",
"Anschreiben nicht erforderlich"
],
"resolved_url": "https://www.stepstone.de/stellenangebote--Project-Engineer-IP-Central-Services-Security-w-m-d-Berlin-50Hertz-Transmission-GmbH--13691391-inline.html?rltr=2_2_25_seorl_m_1_0_0_0_0_0"
},
"applying_details": {
"listing_id": 13691391,
"listing_global_id": "7010b7e5-43db-4f17-8998-5a5ed53f2439",
"applying_url": "https://www.stepstone.de/job/7010b7e5-43db-4f17-8998-5a5ed53f2439/application/external?locale=de_DE"
},
"content_sections": {
"sections": [
{
"section_key": "description",
"title": "Hier treibe ich den Ausbau und die Vernetzung moderner Kommunikationsinfrastrukturen voran – von Rechenzentrum bis Büro.",
"html": "<p><strong>Das macht diesen Job für mich interessant:</strong> ...</p>",
"text": "Das macht diesen Job für mich interessant: ...",
"paragraphs": [
"Das macht diesen Job für mich interessant: ..."
],
"bullet_points": [
"Durchführung aller Planungs-, Konfigurations- und Netzintegrationsaufgaben ..."
]
},
{
"section_key": "additionalInformation",
"title": "Ansprechpartner*in",
"html": "<p><strong>Eduard Weissbrot</strong> ...</p>",
"text": "Eduard Weissbrot ...",
"paragraphs": [
"Eduard Weissbrot ..."
],
"links": [
{
"text": "E-Mail schreiben",
"url": "https://api.relaxx.center/r/d91316cf795441d1bd1795e2c271e874?mpid=1479113&pid=2542797&prid=1095325&tid=30"
}
]
}
]
},
"company_profile_details": {
"videos": [
{
"url": "https://www.youtube.com/watch?v=cIgWAAFpsYo",
"provider": "youtubecom"
}
],
"images": [
{
"url": "https://www.stepstone.de/upload_de/offers/htmlfiles/x2/80342/images/b9af6b05-8b15-4462-bf37-267cc567656a.jpeg",
"type": "CompanyPassportImage"
}
],
"profile_sections": [
{
"title": "About Us",
"html": "<p>50Hertz, das sind rund 2.500 Menschen ...</p>",
"text": "50Hertz, das sind rund 2.500 Menschen ...",
"paragraphs": [
"50Hertz, das sind rund 2.500 Menschen ..."
]
}
]
},
"media_details": {
"hero_images": [
{
"desktop": "https://image-proxy.stepstone.com/live/image.jpg?...",
"mobile": "https://image-proxy.stepstone.com/live/image.jpg?..."
}
],
"company_hero_image_url": "https://www.stepstone.de/upload_de/offers/htmlfiles/x2/80342/images/c172371e-439c-4c03-83fd-7a50d252d58e.jpeg",
"images": [
{
"url": "https://www.stepstone.de/upload_de/offers/htmlfiles/x2/80342/images/other-image.jpeg"
}
],
"videos": [
{
"url": "https://www.youtube.com/embed/NgObOoHowyg",
"provider": "youtubecom"
}
]
},
"diagnostics": {
"company_passport_enabled": true,
"lvp": {
"job_id": "13691391",
"lpp": 2.5471975923197085,
"lpp_day0": 10.71705630576637,
"lpp_mod": 2.5471975923197085,
"lpp_day0_mod": 10.71705630576637,
"lvp": 5.0612633010289185,
"lvp_day0": 2.0911043592381695,
"lvp_mod": 6.073515961234702,
"lvp_day0_mod": 2.5093252310858034,
"brand_id": "stepstonede"
}
}
},
"compensation_details": {
"detail_salary": {
"isPredicted": true,
"min": 60000,
"max": 85000,
"period": "Jahr",
"currency": "€",
"currencyIso": "EUR",
"locale": "de-DE"
}
}
}

Field reference

Top-level fields

  • id (number|string, required): Stable StepStone listing identifier.
  • title (string, optional): Listing title.
  • seed_type (string, optional): Input origin category such as url or query.
  • source.url (string, optional): Listing URL.
  • source.source_url (string, optional): Search-result or detail page URL that led to discovery.
  • source.seed_value (string, optional): Original input value that produced the record.
  • scraped_at (string, required): UTC timestamp indicating when the record was produced.
  • id_source (string, required): native when StepStone provided the listing ID directly, fallback when a deterministic fallback ID was created.

company_details

  • 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 the company is anonymized.
  • company_details.company_website (string, optional): Company website promoted from the detail page.
  • company_details.company_address (string, optional): Company address promoted from the detail page.
  • company_details.company_size (string, optional): Company employee-band label.
  • company_details.company_founded (number, optional): Company founding year.
  • company_details.company_jobs_count (number, optional): Number of jobs shown for the company.
  • company_details.company_industries (array[string], optional): Company industries.
  • company_details.company_sectors (array[object], optional): Company sectors.
  • company_details.company_sectors[].id (number, optional): Sector identifier.
  • company_details.company_sectors[].name (string, optional): Sector name.
  • company_details.company_rating (object, optional): Company rating summary.
  • company_details.company_rating.surveysCount (number, optional): Number of survey/rating entries.
  • company_details.company_rating.overallRatingAvg (number, optional): Average rating score.
  • company_details.company_benefits (array[string], optional): Deduplicated company benefits.

posting_details

  • 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.
  • posting_details.publish_from_date (string, optional): Scheduled publish start date when exposed by StepStone.
  • posting_details.publish_to_date (string, optional): Scheduled publish end date when exposed by StepStone.
  • posting_details.period_posted_date (string, optional): Relative recency label when exposed by StepStone.
  • posting_details.contract_type (string, optional): Contract type promoted from the detail page.
  • posting_details.work_type (string, optional): Work-type label promoted from the detail page.
  • posting_details.online_status (string, optional): Online/offline availability label from the detail page.

workplace_details

  • workplace_details.job_location (string, optional): Job location text.
  • workplace_details.postal_code (string, optional): Postal code when provided.
  • 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").
  • workplace_details.travel_time (string|number, optional): Travel-time label/value when provided.
  • workplace_details.unified_travel_time (object, optional): Structured travel-time payload when provided.

listing_metadata

  • 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 (object, optional): Listing placement metadata.
  • 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.job_posting_sequence (number, optional): StepStone job-posting sequence value.
  • listing_metadata.fingerprint_count (number, optional): Fingerprint count when provided.
  • 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

  • partner_details.partnership (object, optional): Partnership metadata.
  • 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

  • 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.
  • content_details.detail_sections (array[object], optional): Full normalized detail sections promoted from the detail page.
  • content_details.detail_sections[].name (string, optional): Internal section key.
  • content_details.detail_sections[].title (string, optional): Section title.
  • content_details.detail_sections[].is_collapsible (boolean, optional): Whether the section is collapsible.
  • content_details.detail_sections[].should_title_be_displayed (boolean, optional): Whether the title should be displayed.
  • content_details.detail_sections[].content_html (string, optional): Raw section HTML.
  • content_details.detail_sections[].content_text (string, optional): Plain-text section content.
  • content_details.detail_sections[].paragraphs (array[string], optional): Paragraphs extracted from the section.
  • content_details.detail_sections[].bullet_points (array[string], optional): Bullet points extracted from the section.
  • content_details.detail_sections[].links (array[object], optional): Links extracted from the section.
  • content_details.detail_sections[].links[].text (string, optional): Link text.
  • content_details.detail_sections[].links[].url (string, optional): Absolute link URL.
  • content_details.full_description (string, optional): Plain-text description derived from the description detail section.

detail_page

  • detail_page.page_context (object, optional): Detail page context metadata.
  • detail_page.page_context.language (string, optional): Listing language.
  • detail_page.page_context.listing_badges (array[string], optional): Badges displayed on the detail page.
  • detail_page.page_context.is_offline (boolean, optional): Offline state when exposed by StepStone.
  • detail_page.page_context.resolved_url (string, optional): Final resolved detail URL after redirects.
  • detail_page.applying_details (object, optional): Application metadata.
  • detail_page.applying_details.listing_id (number, optional): Native listing ID.
  • detail_page.applying_details.listing_global_id (string, optional): Global listing identifier used in the apply URL.
  • detail_page.applying_details.applying_url (string, optional): External application URL derived from the global listing ID.
  • detail_page.content_sections.sections (array[object], optional): Public detail-page sections.
  • detail_page.content_sections.sections[].section_key (string, optional): Public section key.
  • detail_page.content_sections.sections[].title (string, optional): Section title.
  • detail_page.content_sections.sections[].html (string, optional): Raw section HTML.
  • detail_page.content_sections.sections[].text (string, optional): Plain-text section content.
  • detail_page.content_sections.sections[].paragraphs (array[string], optional): Paragraphs extracted from the section.
  • detail_page.content_sections.sections[].bullet_points (array[string], optional): Bullet points extracted from the section.
  • detail_page.content_sections.sections[].links (array[object], optional): Links extracted from the section.
  • detail_page.content_sections.sections[].links[].text (string, optional): Link text.
  • detail_page.content_sections.sections[].links[].url (string, optional): Absolute link URL.
  • detail_page.company_profile_details (object, optional): Company passport content visible on the detail page.
  • detail_page.company_profile_details.videos (array[object], optional): Company profile videos.
  • detail_page.company_profile_details.videos[].url (string, optional): Video URL.
  • detail_page.company_profile_details.videos[].provider (string, optional): Video provider label.
  • detail_page.company_profile_details.images (array[object|string], optional): Company profile images.
  • detail_page.company_profile_details.profile_sections (array[object], optional): Company profile sections.
  • detail_page.company_profile_details.profile_sections[].title (string, optional): Profile section title.
  • detail_page.company_profile_details.profile_sections[].html (string, optional): Raw profile section HTML.
  • detail_page.company_profile_details.profile_sections[].text (string, optional): Plain-text profile section content.
  • detail_page.company_profile_details.profile_sections[].paragraphs (array[string], optional): Paragraphs extracted from the profile section.
  • detail_page.media_details (object, optional): Detail-page media metadata.
  • detail_page.media_details.hero_images (array[object], optional): Hero images displayed on the listing page.
  • detail_page.media_details.hero_images[].desktop (string, optional): Desktop hero image URL.
  • detail_page.media_details.hero_images[].mobile (string, optional): Mobile hero image URL.
  • detail_page.media_details.company_hero_image_url (string, optional): Company hero image URL from the company passport.
  • detail_page.media_details.images (array[object], optional): Additional multimedia images when provided.
  • detail_page.media_details.videos (array[object], optional): Additional multimedia videos when provided.
  • detail_page.diagnostics (object, optional): Diagnostic metadata exposed by StepStone.
  • detail_page.diagnostics.company_passport_enabled (boolean, optional): Whether company passport content is enabled for the listing.
  • detail_page.diagnostics.lvp (object, optional): StepStone diagnostic scoring payload.
  • detail_page.diagnostics.lvp.job_id (string, optional): Listing ID inside the diagnostic payload.
  • detail_page.diagnostics.lvp.lpp (number, optional): Diagnostic lpp score.
  • detail_page.diagnostics.lvp.lpp_day0 (number, optional): Diagnostic lpp_day0 score.
  • detail_page.diagnostics.lvp.lpp_mod (number, optional): Diagnostic lpp_mod score.
  • detail_page.diagnostics.lvp.lpp_day0_mod (number, optional): Diagnostic lpp_day0_mod score.
  • detail_page.diagnostics.lvp.lvp (number, optional): Diagnostic lvp score.
  • detail_page.diagnostics.lvp.lvp_day0 (number, optional): Diagnostic lvp_day0 score.
  • detail_page.diagnostics.lvp.lvp_mod (number, optional): Diagnostic lvp_mod score.
  • detail_page.diagnostics.lvp.lvp_day0_mod (number, optional): Diagnostic lvp_day0_mod score.
  • detail_page.diagnostics.lvp.brand_id (string, optional): StepStone brand identifier.

compensation_details

  • compensation_details.salary_text (string, optional): Salary text as displayed in search results.
  • compensation_details.salary_range (object, optional): Structured salary range from search results.
  • 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.
  • compensation_details.cv_to_job_score (number, optional): StepStone CV-to-job score when exposed in result items.
  • compensation_details.detail_salary (object, optional): Detail-page salary block or predicted salary payload.
  • compensation_details.detail_salary.isPredicted (boolean, optional): Whether the detail salary is predicted.
  • compensation_details.detail_salary.min (number, optional): Minimum salary value.
  • compensation_details.detail_salary.max (number, optional): Maximum salary value.
  • compensation_details.detail_salary.period (string, optional): Salary period label.
  • compensation_details.detail_salary.currency (string, optional): Salary currency symbol.
  • compensation_details.detail_salary.currencyIso (string, optional): ISO currency code.
  • compensation_details.detail_salary.locale (string, optional): Locale attached to the salary payload.

Additional notes

  • Some records may also include additional_details (object) when StepStone returns extra structured fields that are not yet promoted into one of the documented groups above.

Data guarantees & handling

  • Best-effort extraction: fields may vary by region/session/availability/UI experiments.
  • Optional fields: null-check in downstream code.
  • Deduplication: recommend 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.