XING Jobs Scraper with Salary Estimates (DACH) avatar

XING Jobs Scraper with Salary Estimates (DACH)

Pricing

from $0.80 / 1,000 results

Go to Apify Store
XING Jobs Scraper with Salary Estimates (DACH)

XING Jobs Scraper with Salary Estimates (DACH)

XING job search results for Germany, Austria and Switzerland: salary estimate (min / median / max), full description, career level, discipline, industry, remote options and company size, all at one flat price per job. No proxy, no login.

Pricing

from $0.80 / 1,000 results

Rating

0.0

(0)

Developer

mochi

mochi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Categories

Share

Every XING job it can see for your keywords and city, with the salary figure XING shows, the full job description and company details, at one flat price per job. No login, no proxy, no extra charge for the job page.

Price: Pay per result, at the rate shown in the pricing panel of this page, plus a very small per-run start fee. You are charged only for the results delivered.

What you get

  • Salary on most jobs. XING's salary estimate as numbers (salaryMin, salaryMedian, salaryMax, salaryCurrency), plus a minSalaryMedian filter. In a 50-job test run on the Apify platform (python, Berlin), 35 jobs carried a salary range and 30 of those are XING estimates with a median. salaryType tells you which kind of figure you got (see "Salary fields").
  • The full job page, included in the price. Plain-text description, career level, discipline, industry, remote options, address, language and the company's size, industry and XING page. There is no per-job-page surcharge.
  • Emails and phone numbers are replaced where recognised. In the description text, email addresses (including spellings such as name(at)host.com) and phone numbers in the German, Austrian, Swiss, international and North American formats we have seen are replaced with [email redacted] and [phone redacted]. Unusual formats can slip through, and an occasional look-alike number may be replaced, so do not treat the text as free of contact details.

What to know before you buy

  • XING decides which postings a logged-out visitor sees. This actor never logs in. It writes every posting XING shows it and counts the ones XING holds back from it (the run log says, for example, python: 52 visible, 48 hidden by XING (login-only), 5 pages). In our tests the share held back varied a lot: none of 60 postings in an Apify platform run, about half (48 of 100) in a run from a machine in Singapore. Expect fewer rows than XING's own result count suggests.
  • XING's search is a "semantic" search. Results are close matches for your keyword, not exact keyword matches.
  • One search returns at most 1,000 results (50 pages of 20). To go deeper, split by city or by keyword. Jobs found by several keywords are returned once.
  • Employment type, career level and remote option are one value each. XING does not accept several values in one search. With remote option "Full remote", XING ignores the location.
  • A very large run may stop early. Before the run's time limit the actor stops starting new requests, finishes the ones in flight, writes what it has and ends normally. The RUN_SUMMARY record in the key-value store then says complete: false and terminationReason: "time_budget". Start a new run for the rest.

Input

FieldWhat it doesDefault
keywordsOne XING search per keyword, for example python, Projektmanager, Pflege.["python"]
locationCity or region as you would type it into XING (Berlin, München, Wien, Zürich). Empty means all locations.empty
employmentTypeFull-time, part-time, self-employed / freelance, student / intern, seasonal, temporary, volunteer.any
careerLevelStudent / intern up to senior executive.any
remoteOptionFull remote, hybrid, on-site.any
minSalaryMedianOnly jobs whose XING salary estimate (median) is at least this amount per year, in the job's own salary currency (EUR or CHF, see salaryCurrency). Jobs without a median are skipped when it is set.off
includeDetailsOpen each job page for the description and company details.true
maxResultsPerKeywordStop a keyword after this many jobs (1 to 1000).100
maxResultsStop the run after this many jobs in total (1 to 5000).200

Example, tested on the platform: {"keywords": ["python"], "location": "Berlin", "maxResults": 50, "includeDetails": true} returned 50 jobs in 16 seconds. Example with a filter: {"keywords": ["Projektmanager"], "location": "Hamburg", "employmentType": "PART_TIME", "maxResults": 20} returned 20 jobs, all part-time.

Output

One row per job. Fields:

GroupFields
JobjobId, title, url, employmentType (XING's English label, for example Full-time, Part-time, Student), careerLevel, discipline, industry, remoteOptions (array: NON_REMOTE, PARTLY_REMOTE, FULL_REMOTE), keywords (XING's tags for the job), language (of the posting), jobCode (the employer's reference, when given), descriptionText
Placecity, allCities, region, countryCode, street, zipCode
Companycompany (display name), companyLogoUrl, companyLegalName, companySize, companyIndustry, companyCity, companyXingUrl (the company fields are null when the posting has no XING company page: 14 of 50 jobs in one platform run)
SalarysalaryMin, salaryMedian, salaryMax, salaryCurrency, salaryType
ApplyingapplyType, applyUrl
Dates and flagsactivatedAt, refreshedAt, activeUntil, isTopJob, isPaid, redirectsToThirdPartyUrl
This searchsearchKeyword, searchLocation, searchRank (0-based position in XING's results for that keyword, counting postings XING did not show), scrapedAt

With includeDetails off, or when a job page cannot be read, the fields that come from the job page (activatedAt, region, countryCode, street, zipCode, careerLevel, discipline, industry, remoteOptions, keywords, language, jobCode, the five company detail fields and descriptionText) are null.

Salary fields

  • salaryType: "SalaryEstimate" is XING's own estimate: salaryMin, salaryMedian and salaryMax in salaryCurrency (EUR for the German jobs we tested, CHF for most Zürich jobs; for example 59,000 / 76,000 / 86,000 EUR for a Python developer in Berlin). It is not a salary the employer published.
  • salaryType: "SalaryRange" is a range with only salaryMin and salaryMax (salaryMedian is null). It appeared on 5 of 50 jobs in one platform run, all of them rows with isPaid: true. The actor does not read or convert a pay period: one student tutor job showed 500 to 1,500, so check the job before treating a range as a yearly figure.
  • salaryType: "Salary" appeared on 2 of 50 jobs in one platform run with a currency but no min, median or max; the actor does not read an amount for these.
  • No salary on XING for the job: all salary fields are null.

Applying

applyType is external when the job links to the employer's own application page (applyUrl holds it), xing when applications go through XING (applyUrl is null), and otherwise XING's own name for the form; JobXingCustomApplication appeared on 12 of 50 jobs in one platform run (applyUrl null).

Notes

  • Plain HTTPS to XING's public job pages. No login, no cookies, no proxy.
  • If XING answers a request with an access refusal or a challenge page, the actor stops that run with the message XING blocked the request (HTTP <status>); stopping. and keeps the rows already written. It does not retry or work around a block.
  • Network errors, HTTP 429 and 5xx are retried up to three times (2 s, 4 s, 8 s). A job page that still cannot be read becomes a row without the job-page fields.
  • Speed in our platform tests: 50 jobs with job pages in 16 seconds, 20 jobs in 7 seconds. Peak memory was about 80 MB.

Search terms people use for this: XING jobs scraper, XING scraper, XING salary, Gehalt, Stellenangebote, jobs Germany, DACH jobs, Germany salary data, job market data Germany, XING API alternative.