# StepStone Job Scraper | 0.35$/1k (`trev0n/stepstone-scraper`) Actor

Scrape StepStone job listings across Germany, Austria, the Netherlands and Belgium. Keyword and location search, every on-site filter, full job descriptions with salary estimates, and incremental monitoring that emits only new or updated listings on recurring runs.

- **URL**: https://apify.com/trev0n/stepstone-scraper.md
- **Developed by:** [Paweł](https://apify.com/trev0n) (community)
- **Categories:** Jobs, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.35 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 💼 StepStone Job Scraper

🎯 **Pull every StepStone job ad you care about — across Germany, Austria, the Netherlands and Belgium — into a clean, ready-to-use table.**

This scraper collects job titles, companies, locations, salaries and salary estimates, home-office setup, contract types, full job descriptions and rich employer profiles (website, size, rating, benefits) from StepStone. Search by keyword and city, narrow it down with every filter the site itself offers, and — if you run it on a schedule — get back only what actually changed since last time.

### 🚀 What Does It Do?

This scraper automatically searches StepStone and collects **structured, ready-to-use data** from the job ads it finds. No manual browsing, no copy-pasting — set your filters and hit Start.

💡 **Two modes of operation:**

1. **🔍 Discovery Mode** — give it a keyword and a city (e.g. "Softwareentwickler" in München) plus any filters, and it pages through the whole result list for you.
2. **📋 Direct URL Mode** — already have StepStone links? Paste search-result pages or individual job ads and the scraper reads exactly those.

🔁 **And one more, for people who watch a market:** switch on **Incremental Monitoring** and every scheduled run returns only the **new, changed and re-listed** jobs instead of the same list over and over.

### 👥 Who Is This For?

| 🏢 Use Case                           | 💬 How It Helps                                                                                            |
| ------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| 🧑‍💼 **Recruiters & staffing agencies** | See who is hiring for which roles, in which city, at what salary — before your competitors call the client |
| 📊 **Market & salary researchers**    | Build salary benchmarks per role, city and industry from thousands of real job ads                         |
| 🎯 **Sales teams selling to HR**      | A company posting 40 engineering roles is a company with a hiring problem worth a phone call               |
| 🧭 **Job seekers & career coaches**   | Track every relevant opening across four countries and get pinged the day a new one appears                |
| 🏗️ **Job boards & aggregators**       | Keep your own listings fresh with a daily feed of new and updated ads                                      |
| 🤖 **AI & data teams**                | Feed clean, structured job descriptions into your models, dashboards or vector database                    |

### ✨ Features

- 🌍 **Four countries, six languages** — Germany, Austria, the Netherlands and Belgium in Dutch, French or English
- 🔎 **Keyword + city search** — spelled the way you'd type it; accents and umlauts are handled for you
- 🎛️ **Every on-site filter** — contract type, full/part time, experience level, home office, industry sector, ad language, how to apply, radius and freshness
- 📄 **Full job descriptions** — the complete ad text in plain text, HTML or Markdown
- 💰 **Salaries and salary estimates** — the published salary when there is one, plus StepStone's own estimate, always clearly flagged as an estimate
- 🏢 **Employer profiles** — company website, headcount, address, open-jobs count, employee rating and the full benefits list
- 🏠 **Home-office flag** — every job tagged on-site or home-office, and you can filter the search down to fully remote roles
- 📬 **Contact extraction** — emails, phone numbers and links found in the ad text
- 🔁 **Incremental monitoring** — recurring runs return only new, updated and re-listed jobs, typically 80–95% fewer records than a full re-scrape
- 🔔 **Notifications** — get new listings pushed to Telegram, Slack, Discord or your own webhook
- 🎯 **Exact matches only** — optionally drop the "you might also like" padding StepStone adds to short result lists
- 🧹 **Deduplication** — every job appears once, even when it shows up on several pages
- ⚡ **Fast & Scalable** — thousands of jobs per run, and a whole country's job market if you let it run
- 📤 **Export Anywhere** — download results as JSON, CSV, Excel, or push to Google Sheets, Zapier, Make, or your CRM

### 🎛️ Filters & Options

| Option                                 | What It Does                                                                                                 |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| 🔤 **Search keywords**                 | Job title, skill or company to look for                                                                      |
| ➕ **Additional keywords**             | Search several terms in one run — results are merged and deduplicated                                        |
| 🌍 **Country / language**              | Which StepStone site to search — Belgium comes in Dutch, French or English                                   |
| 📍 **Location**                        | City, region or postcode                                                                                     |
| 📐 **Search radius**                   | How many kilometres around that location to include                                                          |
| 🗂️ **Contract type**                   | Permanent, fixed-term, temporary, freelance, internship, student job, apprenticeship, trainee, thesis or PhD |
| ⏰ **Full time / part time**           | Working-hours filter                                                                                         |
| 🎓 **Experience level**                | Entry level, experienced, or roles with management responsibility                                            |
| 🏠 **Home office**                     | Fully remote only, or partly remote                                                                          |
| 🏭 **Industry sectors**                | Pick one or several industries, from IT to healthcare to logistics                                           |
| 🗣️ **Job ad language**                 | Keep only ads written in German, English, Dutch or French                                                    |
| ✉️ **How to apply**                    | Quick apply on StepStone, or apply on the company's own site                                                 |
| 🗓️ **Posted within**                   | Only jobs published in the last day or week                                                                  |
| 🔀 **Sort by**                         | Relevance or newest first                                                                                    |
| ✅ **Must contain / must not contain** | Your own keyword whitelist and blacklist across title, teaser and description                                |
| ⏱️ **Max age**                         | Drop anything older than X minutes — for near-real-time watching                                             |
| 🎯 **Exact matches only**              | Skip the loosely-related jobs StepStone pads short lists with                                                |
| 📄 **Include full job details**        | Open every ad for the complete description, salary estimate and employer profile                             |
| 🔁 **Incremental monitoring**          | Return only what changed since the previous run                                                              |
| 🔢 **Max Results**                     | Control how many jobs to extract per run                                                                     |
| 🔗 **Direct URLs**                     | Optionally provide specific StepStone search or job-ad URLs to scrape                                        |

### 📦 What You Get (Output Fields)

Every job includes:

#### 💼 Job Basics

| Field        | Example                                                                                                                   |
| ------------ | ------------------------------------------------------------------------------------------------------------------------- |
| jobId        | `14396961`                                                                                                                |
| title        | `Softwareentwickler (m/w/d) Embedded Systems`                                                                             |
| url          | `https://www.stepstone.de/stellenangebote--Softwareentwickler-m-w-d-Embedded-Systems-Muenchen-KNDS--13829162-inline.html` |
| datePosted   | `2026-08-17T00:55:11+02:00`                                                                                               |
| validThrough | `2026-09-16T00:55:11+02:00`                                                                                               |
| textSnippet  | `KNDS Deutschland entwickelt, fertigt und betreut als Systemhaus ein breit gestreutes Produktportfolio…`                  |
| labels       | `["Anschreiben nicht erforderlich"]`                                                                                      |

#### 🏢 Employer

| Field              | Example                                                                     |
| ------------------ | --------------------------------------------------------------------------- |
| companyName        | `KNDS`                                                                      |
| companyId          | `3313`                                                                      |
| companyUrl         | `https://www.stepstone.de/cmp/de/knds-58842/jobs`                           |
| companyLogoUrl     | `https://www.stepstone.de/upload_DE/logo/7/logoKNDS-58842DE-2108231041.gif` |
| companyWebsite     | `https://www.knds.de/karriere`                                              |
| companyEmployees   | `10000+`                                                                    |
| companyAddress     | `Hans-Henny-Jahnn-Weg 29, Hamburg`                                          |
| companyJobsCount   | `88`                                                                        |
| companyRating      | `3.82`                                                                      |
| companyRatingCount | `779`                                                                       |
| companyBenefits    | `["Career opportunities", "Company bike", "Christmas bonus", "Cafeteria"]`  |
| companyIndustries  | `["IT & Tech"]`                                                             |

#### 📍 Location & Working Setup

| Field            | Example                        |
| ---------------- | ------------------------------ |
| location         | `München`                      |
| postCode         | `80997`                        |
| locationLocality | `München`                      |
| locationStreet   | `Hans-Henny-Jahnn-Weg 29`      |
| locationCountry  | `de`                           |
| workFromHome     | `home-office`                  |
| workTypeText     | `Homeoffice möglich, Vollzeit` |
| contractType     | `Feste Anstellung`             |
| employmentType   | `FULL_TIME`                    |
| industry         | `IT, IT-Softwareentwicklung`   |

#### 💰 Salary

| Field            | Example               |
| ---------------- | --------------------- |
| salaryText       | `52.000 € – 72.000 €` |
| salaryMin        | `52000`               |
| salaryMax        | `72000`               |
| salaryCurrency   | `EUR`                 |
| salaryPeriod     | `Jahr`                |
| salaryIsEstimate | `true`                |

#### 📄 Description & Contacts

| Field               | Example                                                                      |
| ------------------- | ---------------------------------------------------------------------------- |
| description         | `Unternehmensbeschreibung KNDS Deutschland entwickelt, fertigt und betreut…` |
| descriptionMarkdown | `## Deine Aufgaben\n- Entwicklung von Embedded-Software…`                    |
| descriptionLength   | `3398`                                                                       |
| extractedEmails     | `["bewerbung@knds.de"]`                                                      |
| extractedPhones     | `["+49 89 1234567"]`                                                         |
| extractedUrls       | `["https://www.knds.de/karriere"]`                                           |
| directApply         | `true`                                                                       |

#### 🔁 Monitoring & Context

| Field       | Example                    |
| ----------- | -------------------------- |
| changeType  | `NEW`                      |
| firstSeenAt | `2026-08-20T06:00:00.000Z` |
| lastSeenAt  | `2026-08-22T06:00:00.000Z` |
| isRepost    | `false`                    |
| market      | `DE`                       |
| searchQuery | `softwareentwickler`       |
| scrapedAt   | `2026-08-22T21:26:37.764Z` |

### 📊 Example Output

```json
{
    "jobId": "13829162",
    "title": "Softwareentwickler (m/w/d) Integration militärische Führungsfähigkeit",
    "url": "https://www.stepstone.de/stellenangebote--Softwareentwickler-m-w-d-Integration-Muenchen-KNDS--13829162-inline.html",
    "companyName": "KNDS",
    "companyId": 58842,
    "companyUrl": "https://www.stepstone.de/cmp/de/knds-58842/jobs",
    "companyWebsite": "https://www.knds.de/karriere",
    "companyEmployees": "10000+",
    "companyJobsCount": 88,
    "companyRating": null,
    "companyBenefits": ["Adequate wages", "Cafeteria", "Career opportunities", "Christmas bonus"],
    "location": "München",
    "postCode": null,
    "locationCountry": "de",
    "workFromHome": "on-site",
    "contractType": null,
    "employmentType": "FULL_TIME",
    "industry": "IT, IT-Softwareentwicklung",
    "salaryText": null,
    "salaryMin": 64220,
    "salaryMax": 79430,
    "salaryCurrency": "EUR",
    "salaryPeriod": "Jahr",
    "salaryIsEstimate": true,
    "datePosted": "2026-08-17T00:55:11+02:00",
    "validThrough": "2026-09-16T00:55:11+02:00",
    "labels": ["Anschreiben nicht erforderlich"],
    "textSnippet": "KNDS Deutschland entwickelt, fertigt und betreut als Systemhaus ein breit gestreutes Produktportfolio…",
    "description": "Unternehmensbeschreibung\n\nKNDS Deutschland entwickelt, fertigt und betreut als Systemhaus…",
    "descriptionLength": 3398,
    "extractedEmails": [],
    "extractedPhones": [],
    "extractedUrls": ["https://www.knds.de/karriere"],
    "directApply": true,
    "detailFetched": true,
    "market": "DE",
    "country": "DE",
    "searchQuery": "softwareentwickler",
    "scrapedAt": "2026-08-22T21:26:37.764Z"
}
```

### 📋 Dataset Views

The Apify Console gives you **4 ready-made table views** to quickly browse your results:

| View                    | What It Shows                                                            |
| ----------------------- | ------------------------------------------------------------------------ |
| 📊 **Overview**         | Job title, company, location, salary, home office, posting date and link |
| 📄 **Full Job Details** | Description, contract and employment type, salary range and industry     |
| 🏢 **Companies**        | Employer website, headcount, address, open jobs, rating and reviews      |
| 🔁 **Monitoring**       | What changed since the last run — new, updated, re-listed or expired     |

### ❓ FAQ

**🤔 Which StepStone countries are supported?**
Germany, Austria, the Netherlands and Belgium. Belgium is available in Dutch, French and English, and each language returns job titles and city names in that language — six options in total, every one of them tested against the live site.

**🤔 Do I get the full job description?**
Yes — switch on "Include full job details" and every ad is opened for its complete text, in plain text, HTML or Markdown, plus the employer profile and any contact details in the ad.

**🤔 What is the difference between a salary and a salary estimate?**
Some employers publish a salary; most don't, and StepStone shows its own estimated range instead. You get both, and the `salaryIsEstimate` field always tells you which one you're looking at.

**🤔 How does incremental monitoring save me money?**
The first run stores a fingerprint of every job it found. Later runs compare against it and return only what is genuinely new, changed or re-listed — usually a handful of records instead of thousands, so a daily watch costs a fraction of a daily full scrape.

**🤔 Why do I sometimes get jobs that don't match my search?**
StepStone pads short result lists with nearby and loosely-related jobs. Turn on "Exact matches only" to keep just the real matches.

**🤔 Can I export the data?**
Yes — JSON, CSV, Excel, XML, HTML, RSS. You can also push data directly to Google Sheets, Zapier, Make, or any webhook/API endpoint.

**🤔 How often should I run this?**
For fresh data, run daily or weekly. You can schedule automatic runs on Apify with just a few clicks — and with incremental monitoring switched on, a daily run stays cheap.

**🤔 Does it work with proxies?**
Yes. It runs fine without one, and it works with Apify's built-in proxy service when you need it for large or frequent runs.

### 🛠️ Need Custom Filters or Features?

**I'm happy to customize this scraper for your specific needs!** 🤝

Whether you need:

- 🎯 Additional filters (specific employers only, salary thresholds, seniority keywords, exact job families, blacklisted staffing agencies)
- 📊 Extra data fields or custom output formats
- 🔄 Integration with your CRM, ATS, Google Sheets, or database
- ⏰ Scheduled scraping with automatic deduplication and change alerts
- 🌐 Scraping from other job platforms alongside StepStone

👉 **Don't hesitate to reach out via private message** — I respond quickly and I'm always open to building exactly what you need. No request is too small or too specific!

### ⚖️ Legal & Ethical Use

This scraper collects **only publicly available information** from StepStone. It does not access private data, log into accounts, or read anything a visitor could not see in a browser. Please use the data responsibly and in compliance with applicable laws and platform terms of service.

# Actor input Schema

## `query` (type: `string`):

Job title, skill or company to search for (e.g. "Softwareentwickler"). Leave empty to search by location or filters only, or to use Start URLs.

## `additionalQueries` (type: `array`):

Search several keywords in one run — each is searched separately and the results are merged and deduplicated.

## `market` (type: `string`):

Which StepStone site to search. Belgium is available in Dutch, French and English — each returns the job titles and locations in that language.

## `location` (type: `string`):

City, region or postcode (e.g. "München", "Wien", "Brussel"). Spelled exactly as on StepStone — accents and umlauts are handled for you.

## `radius` (type: `integer`):

How far around the location to search. 0 uses StepStone's default (30 km).

## `startUrls` (type: `array`):

Optional StepStone search-result or job-ad URLs to scrape directly instead of (or alongside) a keyword search.

## `maxResults` (type: `integer`):

Maximum number of jobs to collect (0 = unlimited). Also caps how many job ads are opened when full details are enabled.

## `maxPages` (type: `integer`):

Cap on result pages to fetch per search (25 jobs per page). 0 = no cap.

## `sortBy` (type: `string`):

Order results by StepStone's relevance ranking or by publication date.

## `workType` (type: `string`):

Working-hours filter.

## `contractType` (type: `string`):

Type of employment. Germany and Austria offer every option; the Dutch and Belgian sites only offer permanent, fixed-term/temporary, freelance, internship and student jobs — anything else is reported as not applied instead of being silently ignored.

## `experience` (type: `string`):

Seniority filter.

## `workFromHome` (type: `string`):

Remote-work filter. Note that StepStone only tells you per job whether home office is offered at all, so the fully-remote / partly-remote distinction exists in the search filter, not in each result row.

## `applicationMethod` (type: `string`):

Keep only jobs with StepStone's one-click apply, or only jobs that redirect to the company's own website.

## `adLanguage` (type: `string`):

Keep only ads written in this language.

## `postedWithinDays` (type: `integer`):

Only jobs published recently. StepStone offers two buckets — 1 day and 7 days — and any larger value snaps to 7. 0 = any time.

## `sectors` (type: `array`):

Keep only jobs in these industries. Combine several to widen the search.

## `discipline` (type: `string`):

Advanced — StepStone's job-family filter, spelled in the site's own language (e.g. "IT", "Ingenieurwesen", "Marketing"). Copy the value from the site's filter link.

## `skillIds` (type: `array`):

Advanced — numeric StepStone skill IDs to filter by. Copy them from a skill filter link on the site.

## `includeKeywords` (type: `array`):

Keep only jobs whose title, teaser, company or description contains at least one of these terms.

## `excludeKeywords` (type: `array`):

Drop jobs whose title, teaser, company or description contains any of these terms.

## `maxAgeMinutes` (type: `integer`):

Drop jobs published longer ago than this, by publication date (0 = no limit). Useful for near-real-time monitoring.

## `mainSectionOnly` (type: `boolean`):

StepStone pads short result lists with nearby and loosely related jobs. Turn this on to keep only the jobs that actually matched your search.

## `includeDetails` (type: `boolean`):

Open every job ad to collect the full description, contract type, salary estimate, company profile and extracted contacts. Slower and richer.

## `descriptionFormat` (type: `string`):

How to output the job description when full details are enabled.

## `descriptionMaxLength` (type: `integer`):

Truncate descriptions to this many characters (0 = no limit).

## `detailConcurrency` (type: `integer`):

How many job ads to open in parallel (1-10).

## `useProxyForDetails` (type: `boolean`):

Open job ads through the proxy from the very first try. Off by default — the first attempt goes direct (fastest) and any retry automatically switches to the proxy, which is enough for the occasional job ad that refuses to load.

## `compact` (type: `boolean`):

Output only the core fields — handy for AI workflows and spreadsheets.

## `excludeEmptyFields` (type: `boolean`):

Omit null and empty fields from each record.

## `forceHtmlChannel` (type: `boolean`):

Advanced — read result pages the slow way instead of the fast one. Only useful if StepStone changes its result list and the fast reader stops working; the scraper already falls back on its own.

## `incrementalMode` (type: `boolean`):

Track state across runs and emit only NEW / UPDATED / REAPPEARED jobs. The first run builds a baseline; later runs return just the changes — ideal for cheap daily monitoring.

## `stateKey` (type: `string`):

Custom identifier for the monitoring baseline. Leave empty to derive it from the search settings automatically.

## `emitUnchanged` (type: `boolean`):

Also output jobs whose content didn't change since the last run.

## `emitExpired` (type: `boolean`):

Also output a record for jobs that disappeared since the last run (changeType = EXPIRED).

## `skipReposts` (type: `boolean`):

Drop jobs detected as reposts of a recently expired listing (same content, new ID).

## `notifyOnlyChanges` (type: `boolean`):

Only send notifications when there are new or updated jobs.

## `notificationLimit` (type: `integer`):

Maximum number of jobs listed in a single notification message.

## `includeRunSummary` (type: `boolean`):

Attach the run summary to the generic webhook payload.

## `webhookUrl` (type: `string`):

Generic webhook to POST results to (JSON).

## `telegramBotToken` (type: `string`):

Telegram bot token for notifications.

## `telegramChatId` (type: `string`):

Telegram chat ID to send notifications to.

## `discordWebhookUrl` (type: `string`):

Discord channel webhook for notifications.

## `slackWebhookUrl` (type: `string`):

Slack incoming webhook for notifications.

## `proxyConfiguration` (type: `object`):

Proxy settings. StepStone works without a proxy, but a proxy helps for large or frequent runs.

## Actor input object example

```json
{
  "query": "softwareentwickler",
  "additionalQueries": [],
  "market": "DE",
  "radius": 0,
  "maxResults": 100,
  "maxPages": 0,
  "sortBy": "relevance",
  "workType": "",
  "contractType": "",
  "experience": "",
  "workFromHome": "",
  "applicationMethod": "",
  "adLanguage": "",
  "postedWithinDays": 0,
  "sectors": [],
  "skillIds": [],
  "includeKeywords": [],
  "excludeKeywords": [],
  "maxAgeMinutes": 0,
  "mainSectionOnly": false,
  "includeDetails": false,
  "descriptionFormat": "text",
  "descriptionMaxLength": 0,
  "detailConcurrency": 5,
  "useProxyForDetails": false,
  "compact": false,
  "excludeEmptyFields": false,
  "forceHtmlChannel": false,
  "incrementalMode": false,
  "emitUnchanged": false,
  "emitExpired": false,
  "skipReposts": false,
  "notifyOnlyChanges": true,
  "notificationLimit": 10,
  "includeRunSummary": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `runSummary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "query": "softwareentwickler"
};

// Run the Actor and wait for it to finish
const run = await client.actor("trev0n/stepstone-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "query": "softwareentwickler" }

# Run the Actor and wait for it to finish
run = client.actor("trev0n/stepstone-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "query": "softwareentwickler"
}' |
apify call trev0n/stepstone-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,trev0n/stepstone-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/WJ8qIThdC5mlHYEGK/builds/hi4JjX8HFoDwrUTJX/openapi.json
