# StepStone & XING Jobs Scraper – Germany, Austria, Switzerland (`liveclaude/stepstone-xing-jobs-scraper`) Actor

Scrape jobs from StepStone, XING, LinkedIn, karriere.at and jobs.ch for Germany, Austria and Switzerland in one clean format – yearly salary in EUR, remote, seniority, skills, duplicates merged, hiring signals, new-job alerts.

- **URL**: https://apify.com/liveclaude/stepstone-xing-jobs-scraper.md
- **Developed by:** [FlareWOW](https://apify.com/liveclaude) (community)
- **Categories:** Jobs, Lead generation, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.80 / 1,000 job (job board)s

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## StepStone & XING Jobs Scraper – Germany, Austria, Switzerland

**All the big DACH job boards in one run.** Choose Germany, Austria or Switzerland, type a job title – the actor searches **StepStone, XING, LinkedIn, karriere.at and jobs.ch** at once and returns one clean list.

From **$1.80 per 1,000 jobs**. No login, no cookies, no API keys.

### Sources

| Country | Boards |
|---|---|
| 🇩🇪 Germany | StepStone.de, XING, LinkedIn |
| 🇦🇹 Austria | karriere.at, StepStone.at, XING, LinkedIn |
| 🇨🇭 Switzerland | jobs.ch, XING, LinkedIn |

Optional 💎 premium add-on: Indeed and Glassdoor.

### Features

- 🧹 **One clean format** for every source – same fields, ISO dates, `id` = `source:jobId`.
- 💶 **Salaries normalized** – parsed from text, converted to a **yearly amount in EUR** (daily ECB rates); estimates flagged.
- 🏠 **Remote / hybrid / onsite**, 📈 **seniority**, **department** and **65+ skills** detected for every job.
- 🔁 **Duplicates merged across boards** (`alsoFoundOn` shows where else the job was posted).
- 🏢 **Company career sites by name** – type `N26` or `datadoghq.com`; 16 platforms supported (Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Personio, Teamtailor, JOIN, Softgarden, Recruitee, Workable, BambooHR, Breezy, Pinpoint, Rippling, Jobvite).
- 📊 **Company hiring signals** – open jobs, hiring velocity, departments, locations, top skills, median salary.
- 🔔 **Monitoring** – *Only new jobs* returns just what appeared since the last run; closed jobs detected on career sites.
- 🤖 Works with AI agents through the [Apify MCP server](https://mcp.apify.com).

### Output

Every job is one dataset item with the same fields across all sources: `title`, `company`, `location`, `city`, `country`, `postedAt`, `remote`, `employmentType`, `seniority`, `departmentGroup`, `skills`, `salaryMin/Max`, `salaryCurrency`, `salaryPeriod`, `salaryYearlyMinEur/MaxEur`, `descriptionSnippet`, `description` (with *Full job details*), `url`, `source`. Export to Excel, CSV, JSON or connect Google Sheets, Slack, Make, Zapier or n8n.

### Pricing

Pay only for results (pay-per-event). Platform usage is included.

| Event | Free | Starter | Scale | Business |
|---|---|---|---|---|
| Job from a job board (per 1,000) | $2.50 | $2.20 | $2.00 | **$1.80** |
| Job from a company career site (per 1,000) | $6.00 | $5.50 | $5.00 | **$4.50** |
| Job details add-on (per 1,000) | $1.00 | $0.90 | $0.80 | **$0.70** |
| 💎 Premium job – Indeed / Glassdoor (per 1,000) | $4.50 | $4.20 | $3.90 | **$3.50** |
| 💎 Premium job details (per 1,000) | $6.00 | $5.70 | $5.40 | **$5.00** |
| Company hiring signal (each) | $0.010 | $0.009 | $0.008 | **$0.007** |

Jobs already seen are **not charged again** when *Only new jobs* is on. Set *Maximum cost per run* to cap spending.

### Need more countries?

This is a regional edition of **[Job Scraper – 12 job boards, 20 countries](https://apify.com/liveclaude/job-scraper)**. Use it if you need several regions in one run.

### FAQ

**Is it legal?** The actor collects publicly available job postings – the same information anyone sees without logging in. Make sure your use complies with GDPR and the terms of the respective sites.

**Something broke?** Sites change. Report it in the Issues tab with the run ID and it will be fixed fast.

### 🇩🇪 Deutsch

Durchsucht **StepStone, XING, LinkedIn, karriere.at und jobs.ch** gleichzeitig – für Deutschland, Österreich und die Schweiz. Ergebnis in einem einheitlichen Format: Jahresgehalt in EUR, Homeoffice/Hybrid, Seniorität, Skills, Dubletten zusammengeführt. Firmen-Karriereseiten einfach per Firmenname (Personio, Softgarden, JOIN, Workday, Greenhouse …). Hiring Signals pro Firma und Alarm für neue Stellen. Ab **1,80 $ pro 1.000 Jobs**.

# Changelog

This Actor's version history is a separate document: https://apify.com/liveclaude/stepstone-xing-jobs-scraper/changelog.md

# Actor input Schema

## `searchQueries` (type: `array`):

What to search for, e.g. <code>python developer</code>, <code>account executive</code>, <code>Pflegefachkraft</code>. One search per line.

## `locations` (type: `array`):

Cities or regions, e.g. <code>Berlin</code>, <code>London</code>, <code>Warszawa</code>, <code>Paris</code>. Leave empty to search the whole country selected below. Every search term is combined with every location.

## `country` (type: `string`):

Pick a country and the actor automatically searches the right job boards there (listed next to each country) and keeps LinkedIn results inside that country. Want different boards? Choose them below in <b>Job boards</b>.

## `sources` (type: `array`):

Leave empty to use the boards of the selected country. Or pick boards yourself – e.g. LinkedIn + Reed for the UK, or JustJoin.it + No Fluff Jobs for Polish IT jobs.

## `premiumSources` (type: `array`):

Also search <b>Indeed</b> and <b>Glassdoor</b> in the selected country. Both sites are heavily protected and need a paid unblocking service, so their jobs are billed as <b>premium jobs</b> (see Pricing tab). Leave empty to use the free-tier boards only.

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

Paste search result links (with any filters) or single job links from LinkedIn, StepStone, Totaljobs, Reed, XING, karriere.at, jobs.ch, Pracuj, JustJoin.it, No Fluff Jobs or Welcome to the Jungle – or company career site links.

## `companies` (type: `array`):

Get every open job straight from the company's own career site. Just type the <b>company name</b> (<code>N26</code>) or <b>website</b> (<code>n26.com</code>) – the actor finds its career site automatically. Supported: Greenhouse, Lever, Ashby, SmartRecruiters, Recruitee, Personio, Workday, Workable, Teamtailor, JOIN, Softgarden, BambooHR, Breezy, Pinpoint, Rippling and Jobvite. You can also paste the careers link (e.g. <code>https://jobs.lever.co/palantir</code>, <code>https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite</code>) or <code>greenhouse:stripe</code>.

## `postedWithin` (type: `string`):

Only recently posted jobs.

## `workplace` (type: `string`):

Remote, hybrid or on-site jobs.

## `employmentType` (type: `string`):

Type of contract.

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

LinkedIn experience filter.

## `radiusKm` (type: `integer`):

Search radius around the location (StepStone, XING, Pracuj).

## `minSalaryEur` (type: `integer`):

Skip jobs whose salary range is below this (converted to yearly EUR). Jobs without a salary are kept unless 'Only jobs with salary' is on.

## `onlyWithSalary` (type: `boolean`):

Keep only jobs that show a salary or salary estimate.

## `titleMustInclude` (type: `array`):

Keep only jobs whose title contains one of these words.

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

Skip jobs whose title or company contains any of these words, e.g. <code>werkstudent</code>, <code>praktikum</code>.

## `locationMustInclude` (type: `array`):

Keep only jobs whose location contains one of these words - useful for career sites, e.g. <code>Germany</code>, <code>Remote</code>.

## `excludeCompanies` (type: `array`):

Skip jobs from these companies (e.g. staffing agencies).

## `sort` (type: `string`):

Order of job board results.

## `maxJobsPerSearch` (type: `integer`):

Per search term + location + board. 0 = all available.

## `maxJobsPerCompany` (type: `integer`):

0 = all open jobs.

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

Open every job board posting for the full description, seniority, employment type, industry, applicant count (LinkedIn) and exact address. Career site jobs already include the full description.

## `dedupe` (type: `boolean`):

The same job posted on several boards is returned once, with links to all boards in alsoFoundOn.

## `companySignals` (type: `boolean`):

Adds one record per company: open jobs, jobs posted in the last 7 days, hiring velocity, departments, seniority mix, locations, remote share, top skills and median salary. Great for B2B sales prospecting.

## `minJobsPerCompany` (type: `integer`):

Only companies with at least this many jobs get a signal record.

## `onlyNewJobs` (type: `boolean`):

Remember jobs between runs and return only new ones. Schedule the Actor for job alerts.

## `monitorId` (type: `string`):

Optional name to keep separate memories for different monitors.

## `emitOnFirstRun` (type: `boolean`):

Turn off to only save a baseline on the first run.

## `detectClosedJobs` (type: `boolean`):

Report jobs that disappeared from company career sites since the last run, with the number of days they were open.

## `maxConcurrency` (type: `integer`):

Parallel requests.

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

Apify Proxy is used automatically.

## Actor input object example

```json
{
  "searchQueries": [
    "Softwareentwickler"
  ],
  "locations": [
    "Berlin"
  ],
  "country": "de",
  "companies": [],
  "postedWithin": "any",
  "workplace": "any",
  "employmentType": "any",
  "experience": "any",
  "onlyWithSalary": false,
  "sort": "date",
  "maxJobsPerSearch": 100,
  "maxJobsPerCompany": 0,
  "includeDetails": false,
  "dedupe": true,
  "companySignals": false,
  "minJobsPerCompany": 2,
  "onlyNewJobs": false,
  "emitOnFirstRun": true,
  "detectClosedJobs": true,
  "maxConcurrency": 10,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `jobs` (type: `string`):

No description

## `summary` (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 = {
    "searchQueries": [
        "Softwareentwickler"
    ],
    "locations": [
        "Berlin"
    ],
    "country": "de",
    "companies": [],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("liveclaude/stepstone-xing-jobs-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 = {
    "searchQueries": ["Softwareentwickler"],
    "locations": ["Berlin"],
    "country": "de",
    "companies": [],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("liveclaude/stepstone-xing-jobs-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 '{
  "searchQueries": [
    "Softwareentwickler"
  ],
  "locations": [
    "Berlin"
  ],
  "country": "de",
  "companies": [],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call liveclaude/stepstone-xing-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,liveclaude/stepstone-xing-jobs-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/Pg59ycp0sqSx1eyWp/builds/YKkGQSjBA5aXWdBb0/openapi.json
