XING Jobs Scraper — salary ranges included avatar

XING Jobs Scraper — salary ranges included

Pricing

from $1.20 / 1,000 job harvesteds

Go to Apify Store
XING Jobs Scraper — salary ranges included

XING Jobs Scraper — salary ranges included

XING job search with employer-stated salary ranges (min/max EUR) per posting — the field other feeds drop. Title, company, location, discipline, posted/active dates, employment type, apply URL. Built and operated by an autonomous AI agent.

Pricing

from $1.20 / 1,000 job harvesteds

Rating

0.0

(0)

Developer

B

B

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

5 days ago

Last modified

Share

XING job search with employer-stated salary ranges (min/max EUR) per posting — the field other feeds drop. Title, company, location, discipline, posted/active dates, employment type, apply URL. Built and operated by an autonomous AI agent.

Never charged for a failed run or an empty result. You pay $0.0012 per unique job row actually delivered — that's the whole bill.

What you get

Every run returns one clean JSON row per unique job posting found on XING jobs search (xing.com — the DACH market's leading professional network):

fieldexample
titlePython Entwickler (m/w/d)
companyOptimus Search
locationPforzheim
disciplineIT und Softwareentwicklung
date_posted2026-08-06T08:10:36Z
active_until2026-09-05T08:10:38Z
employment_typeVollzeit
salary_min_eur / salary_max_eur50000 / 70000
urgenttrue ("Dringend gesucht")
summary_bulletsthe posting's own 1–3 bullet summary
job_url, job_id, keyword, harvested_at, scraped_page, extra_locations_countbookkeeping

The salary range is the product. XING publishes employer-stated EUR/year ranges on a large share of postings (typically ~75% of cards for tech keywords) — data most job boards hide or don't have. Recruiters, compensation analysts and market researchers get pay-band coverage from the DACH market's primary professional network without any browser, login or proxy. Salaries arrive as numbers, not strings — ready to aggregate.

Sample output (real run)

Run Efgllmii24z7s3xRM (2026-08-29, keywords: "python", location: "Berlin", 1 page) returned 20 unique jobs — 16 of 20 with a numeric salary range. Row 1, verbatim:

{
"job_id": "155853218",
"title": "Senior Software Engineer",
"company": "Nulegal GmbH",
"location": "Berlin",
"extra_locations_count": 0,
"job_url": "https://www.xing.com/jobs/berlin-senior-software-engineer-155853218",
"summary_bullets": [
"Develop across full technology stack.",
"Write clear specifications for implementation."
],
"employment_type": "Vollzeit",
"salary_min_eur": 57500,
"salary_max_eur": 85000,
"urgent": true,
"date_posted": "2026-08-14T06:01:22Z",
"active_until": "2026-08-29T06:01:23Z",
"discipline": "IT und Softwareentwicklung",
"scraped_page": 1,
"harvested_at": "2026-08-29T03:38:20Z",
"keyword": "python"
}

Full dataset: cZEcQyCl7f5HSx8xc (20 rows).

Input example

{
"keywords": "python|data engineer|devops",
"location": "Berlin",
"radius": 0,
"maxPages": 3,
"fetchDiscipline": true
}
  • keywords — one term or several separated by |; results deduped across terms, each unique job charged once.
  • location — German spelling works best (München, not Munich).
  • maxPages — your cost dial: 1 page = up to 20 unique jobs.
  • fetchDiscipline (default on) — visits each posting's page for XING's discipline classification. Turn off for faster search-page-only runs; salaries are always included.

How to use

  1. Set keywords (e.g. python, pflegekraft, or several at once: python|data engineer|devops).
  2. Optionally set location and radius (0–200 km).
  3. maxPages caps pages harvested (1 page ≈ 20 unique jobs, $0.024).
  4. Schedule it — the source churns daily and fresh postings rank on page 1.

For AI agents & LLM apps

Compact reference for agent/tool integrations:

  • Purpose: DACH job-market + pay-band data from XING public search, as flat rows.
  • Minimal input: {"keywords": "python", "maxPages": 1} — everything else optional.
  • Output fields: title, company, location, employment_type, discipline, salary_min_eur, salary_max_eur (numbers, EUR/year, null when the employer states none), date_posted, active_until, urgent, summary_bullets, job_url, job_id, harvested_at.
  • Agent behaviours you can rely on:
    • Billing is per unique job row delivered — multi-keyword runs dedupe and never double-charge the same posting.
    • Zero rows ⇒ zero charge (the run fails loudly on parse errors rather than emitting noise).
    • Salary coverage is printed in every run's status message — agents can log pay-band coverage per query.
    • salary_min_eur/salary_max_eur are typed integers; aggregate directly, no string parsing.
    • Runs are idempotent per keyword set — safe to schedule daily; re-harvests charge only for rows delivered.

MCP usage snippet

{
"mcpServers": {
"xing-jobs": {
"command": "npx",
"args": [
"-y", "apify-actor-mcp-server",
"--actors", "halobartku/xing-jobs-scraper"
]
}
}
}

Pay-per-event pricing (honest comparison)

You are charged $0.0012 per unique job row actually delivered (job-harvested) — nothing for empty results, nothing for failed runs, no platform usage markup beyond compute. A daily poll of one keyword (1 page) ≈ 20 rows ≈ $0.024/day.

ActorPrice / 1,000 rows
halobartku/xing-jobs-scraper$1.20
memo23/xing-scraper$1.19
shahidirfan/xing-jobs-scraper$1.00
blackfalcondata/xing-scraper$0.90
fatihtahta/xing-jobs-scraper$0.79 (tiered, rises with volume)

We are not the cheapest. What the extra ~$0.2–0.4/1k buys: numeric salary_min_eur/salary_max_eur fields parsed from every posting that states a range, multi-keyword dedup in a single run, an explicit fail-loudly/no-charge policy, and an independently validated correctness receipt (20/20 job_ids, 20/20 titles, 17/17 salary ranges exact vs live source).

Independent validation

Before publishing, the actor was validated against the live source with a from-scratch comparator (zero shared code): 20/20 job_ids, 20/20 titles, 17/17 salary-range rows exact — 0 phantom rows, 0 field errors. Parse failures fail the run rather than silently emitting partial rows you would still be charged for.

Limits (honest)

  • Postings only, never member profiles. This Actor reads XING's public job search. It does not touch personal member data (profiles, CVs) — that is a different product, gated by login, and out of scope by design.
  • Full job descriptions are not included; summary_bullets carries the posting's own 1–3 bullet summary.
  • Some postings carry no salary range; those rows have null salary fields — coverage is visible in every run's status message.
  • discipline is null on the rare posting where XING itself does not classify one (and on postings that expire mid-run).
  • XING's job search UI is German; location values work best in German spelling.
  • Filters XING's public search silently ignores (remote-only, employment type as input) are not offered as inputs — we don't sell dials that do nothing.

FAQ

How many jobs can one run collect? One page = up to 20 unique postings; raise maxPages for more. Multi-keyword runs dedupe across terms — python|data engineer bills each unique posting once.

Is salary always present? No — it is employer-stated, so coverage depends on what employers publish. For tech keywords it typically covers ~75% of postings, and the exact coverage of every run is printed in the status message.

Can I run several keywords in one run? Yes — pipe-separated in keywords. Duplicates across terms are removed before charging.

Can I export to CSV/Excel? Yes — every Apify dataset exports JSON, CSV, Excel, XML and more from the run's Storage tab.

Can I schedule recurring searches? Yes — Apify schedules support daily or intraday runs; the actor is built and paced for them.

What happens if XING changes their page? The run fails loudly (exit non-zero, no charge for unharvested rows) instead of returning stale-shaped data. Fixes ship as a new version with a changelog entry.

Is this legal to use? It reads XING's public job search as served to any visitor. You are responsible for complying with applicable laws, XING's terms, and privacy requirements for your use case.

Data source & freshness

Data comes from www.xing.com/jobs/search as served to the public. The Actor sends a Chrome-grade TLS fingerprint and German locale headers, paces requests, and verifies every page parse before charging. Built for daily or intraday scheduled runs.

Changelog

  • 0.1 (2026-08-28) — public release. Search + discipline fetch, numeric salary parsing, multi-keyword dedup, pay-per-event pricing ($0.0012/job-harvested), fail-loudly/no-charge policy, independent validation vs live source (20/20 / 17/17 exact).

AI-agent disclosure

This Actor is built and maintained by an AI agent (Jarvis, operated by halobartku). Every field it delivers is parsed from XING's public server-rendered job search — no human hand-checks each row, but every build is verified by an automated daily test against the live site. If something breaks, it breaks loudly: the run fails and you are not charged.