StepStone Jobs Scraper avatar

StepStone Jobs Scraper

Pricing

from $0.70 / 1,000 jobs

Go to Apify Store
StepStone Jobs Scraper

StepStone Jobs Scraper

Scrapes job listings from StepStone (stepstone.de and other StepStone sites). Supports direct search URLs or keyword/location/filter input with pagination.

Pricing

from $0.70 / 1,000 jobs

Rating

0.0

(0)

Developer

Farhan Ali

Farhan Ali

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

StepStone Jobs Scraper creates a structured dataset of job listing records collected from StepStone (stepstone.de and other StepStone country sites). Each dataset item can include the job title, company, location, posting date, salary range, remote-work label, labels, text snippet, and URLs. Query the source using direct search URLs or keyword/location filters, control the result limit with maxItems, and retrieve records through the Apify Dataset API or export them as JSON, CSV, Excel, or XML.

Dataset at a glance

PropertyValue
Sourcestepstone.de, stepstone.at, stepstone.be, stepstone.nl
Record unitOne job listing
Input methodsDirect search URLs, or keyword and location filters
Main identifiersid, harmonisedId, url
DeliveryApify Dataset and API
Export formatsJSON, CSV, Excel, XML
Update modelFresh records per Actor run
PricingPay per event — $1 per 1,000 listings

Coverage and available records

  • Supported inputs — Direct StepStone search URLs (https://www.stepstone.de/jobs/python/in-berlin?radius=30) or a combination of searchQueries and searchLocations.
  • Country sitesbaseUrl selects stepstone.de, stepstone.at, stepstone.be, or stepstone.nl when building URLs from keywords.
  • Filtersradius controls the search distance around each location; searchFilters appends arbitrary StepStone query parameters (e.g. sort, employmentType) to built URLs.
  • Pagination — Results are paginated through StepStone's result list API until maxItems is reached.
  • Salary datasalaryMin, salaryMax, salaryCurrency, and related fields are captured when the listing publishes a range.
  • Not currently collected — Full job descriptions from the detail page and company profile data.

Data dictionary

FieldTypeNullableDescriptionExample
idnumberYesNumeric StepStone job ID12345678
harmonisedIdstringYesNormalized identifier across StepStone sitesstepstone-12345678
titlestringNoJob titlePython Entwickler (m/w/d)
urlstringNoJob listing URLhttps://www.stepstone.de/stellenanzeige/...
companyNamestringYesCompany nameTech Startup GmbH
companyUrlstringYesCompany website or profile URLhttps://www.techstartup.de
companyLogoUrlstringYesCompany logo URLhttps://www.stepstone.de/logo/98765
locationstringYesJob locationBerlin, Deutschland
postCodestringYesPostal code10115
datePostedstringYesPosting timestamp (ISO 8601)2026-07-22T08:15:00Z
textSnippetstringYesShort listing descriptionWir suchen einen erfahrenen...
labelsarrayYesEmployment labels (e.g. full-time)["Vollzeit", "Unbefristet"]
skillsarrayYesListed skills["Python", "Django", "Docker"]
salaryMin / salaryMaxnumberYesSalary range60000 / 85000
salaryCurrencystringYesSalary currency codeEUR
salaryPeriodstringYesSalary periodYEAR
workFromHomestringYesRemote-work flag2
workFromHomeLabelstringYesHuman-readable remote labelRemote possible
isTopJobbooleanYesWhether the listing is a top jobtrue
searchUrlstringYesSearch URL that produced the recordhttps://www.stepstone.de/jobs/python/in-berlin?radius=30
pagenumberYesResult page number1

Example dataset record

{
"id": 12345678,
"harmonisedId": "stepstone-12345678",
"title": "Python Entwickler (m/w/d)",
"url": "https://www.stepstone.de/stellenanzeige/python-entwickler-12345678",
"companyName": "Tech Startup GmbH",
"companyUrl": "https://www.techstartup.de",
"location": "Berlin, Deutschland",
"postCode": "10115",
"datePosted": "2026-07-22T08:15:00Z",
"textSnippet": "Wir suchen einen erfahrenen Python Entwickler für unser dynamisches Team in Berlin.",
"labels": ["Vollzeit", "Unbefristet"],
"skills": ["Python", "Django", "PostgreSQL", "Docker"],
"salaryMin": 60000,
"salaryMax": 85000,
"salaryCurrency": "EUR",
"salaryPeriod": "YEAR",
"workFromHomeLabel": "Remote possible",
"isTopJob": true,
"searchUrl": "https://www.stepstone.de/jobs/python/in-berlin?radius=30",
"page": 1
}

This record was produced from the search URL https://www.stepstone.de/jobs/python/in-berlin?radius=30.

Query and input reference

InputTypeRequiredDefaultAccepted valuesDescription
startUrlsarrayNoStepStone search URLsDirect URLs to scrape
searchQueriesarrayNoJob keywords (python, data engineer)Combined with OR
searchLocationsarrayNoCity or region namesOmit to search nationwide
radiusintegerNo300200 kmDistance around each location
searchFiltersobjectNo{}Additional query parametersIgnored when using startUrls
baseUrlstringNohttps://www.stepstone.destepstone.de, stepstone.at, stepstone.be, stepstone.nlCountry site for built URLs
maxItemsintegerNo00 = unlimitedMax job records to scrape
proxyConfigurationobjectNoResidentialApify proxy configResidential proxy recommended

Minimal request:

{ "searchQueries": ["python"], "searchLocations": ["Berlin"] }

Advanced request:

{
"searchQueries": ["python", "data engineer"],
"searchLocations": ["Berlin"],
"radius": 30,
"baseUrl": "https://www.stepstone.de",
"maxItems": 500,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "DE" }
}

Retrieve the data through the API

  1. Start the Actor with a JSON input via the Apify API or the Actor's API tab.
  2. Wait for the run to finish.
  3. Retrieve items from the run's default dataset.
  4. Paginate or export the dataset in JSON, CSV, Excel, or XML.
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("datascrapers/stepstone-jobs-scraper").call(
run_input={"searchQueries": ["python"], "searchLocations": ["Berlin"], "maxItems": 300}
)
items = client.dataset(run["defaultDatasetId"]).list_items().items

Data quality and record handling

  • Completeness — Title, company, location, and URL are present on most listings; salary and skill fields are conditional on what the listing publishes.
  • Deduplication — Use harmonisedId (preferred) or id as the stable external key across StepStone sites.
  • Retries — StepStone blocks datacenter IPs; residential proxies are recommended to reduce failures.
  • NormalizationsalaryMin/salaryMax are numbers with a separate salaryCurrency; dates use ISO 8601 timestamps.
  • Raw vs derived — All fields are taken directly from StepStone's result list API; no AI-generated or computed values are added.

Export and pipeline examples

DestinationRecommended methodTypical use
PostgreSQL/SupabaseDataset API or webhook consumerJob board keyed by harmonisedId
Google SheetsApify integrationMarket-rate salary analysis
S3/cloud storageScheduled export or integrationDaily job-market ingestion

Pricing and cost examples

Billing is pay-per-event, tiered across Apify plans; the rate below is the free-plan rate.

EventCharged whenFree-plan rate
dataset-item (job)A job listing is pushed to the dataset$1 per 1,000 listings

A fixed one-time Actor Start charge of $0.00005 also applies to each run.

ListingsEstimated base cost
1,000$1
10,000$10

Estimates depend on the pricing model and the options enabled.

Limitations and responsible data use

  • Only publicly accessible StepStone job listings are collected.
  • Full job descriptions and company profiles are not collected; listings carry a short textSnippet.
  • Salary and skill fields are conditional and may be empty when the listing omits them.
  • No historical snapshots are stored unless you persist them yourself across scheduled runs.
  • You are responsible for complying with StepStone's terms and applicable privacy and data laws.

Dataset questions

What does one dataset item represent?

One job listing from the StepStone result list.

Which field should I use as a unique identifier?

harmonisedId is normalized across StepStone country sites; id is the raw numeric ID.

Are fields nullable or conditional?

Yes. Salary, skills, and remote-work fields are conditional on what each listing publishes.

Can I retrieve the records as CSV or JSON?

Yes. The default dataset can be exported as JSON, CSV, Excel, or XML from the Apify Console or via the Dataset API.

How do I paginate large datasets?

The Actor paginates automatically up to maxItems. For very large exports, page through the dataset with the Dataset API offset and limit parameters.

What counts as a billable result?

Each job listing written to the dataset is one dataset-item event.

Data Scrapers support

Need an additional field, record type, or export workflow? Contact Data Scrapers at stardustspotlight@gmail.com. Include a sample source URL, required fields, expected record volume, and preferred delivery format.