XING Jobs Scraper — Germany, Austria & Swiss Jobs | $0.60/1k avatar

XING Jobs Scraper — Germany, Austria & Swiss Jobs | $0.60/1k

Pricing

from $0.60 / 1,000 results

Go to Apify Store
XING Jobs Scraper — Germany, Austria & Swiss Jobs | $0.60/1k

XING Jobs Scraper — Germany, Austria & Swiss Jobs | $0.60/1k

Scrape XING jobs in Germany, Austria and Switzerland by keyword, city or search URL. Company, location, remote, employment type, career level, salary (employer or XING estimate), date, full description. CSV, JSON, Excel.

Pricing

from $0.60 / 1,000 results

Rating

0.0

(0)

Developer

Raffy

Raffy

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

Share

What does XING Jobs Scraper do?

XING Jobs Scraper extracts job postings from XING, the professional network of Germany, Austria and Switzerland (DACH), and delivers them as clean JSON, CSV or Excel. Paste XING job search URLs, or type keywords such as Softwareentwickler or Pflegefachkraft and cities such as Berlin, Wien or Zürich, and get one row per job: title, company, XING company page, location, remote/hybrid/on-site, employment type, career level, industry, salary (the employer's range or XING's estimate, labelled), posting date, full description and the employer's apply link.

It works as a XING jobs API alternative: no XING account, no login, no browser and no residential proxy. It reads the same public, logged-out job search that xing.com shows to every visitor.

Use cases for this XING job scraper

  • Recruiting and staffing agencies: find companies hiring for the roles you place, by city, career level and employment type, and build lead lists from the company names and XING company pages.
  • Salary benchmarking in the DACH region: collect employer salary ranges and XING's salary estimates for a role across Berlin, Munich, Vienna or Zurich.
  • Labour-market research and job boards: track how many postings appear per city, industry or remote option, or feed fresh German-language jobs into your own product.
  • AI agents and automations: a scheduled daily run with postedWithinDays: 1 gives a clean "new today" feed.

What data you get from every XING job posting

FieldTypeDescription
jobIdstringXING's numeric posting id (the number at the end of the job URL)
urlstringPublic XING job page
titlestringJob title as published by the employer
companyNamestringHiring company as shown on the posting
companyUrlstringXING company page, when the posting links one
companyLogostringCompany logo image URL
locationstringMain location as "City, Country"
city, region, postalCodestringParts of the main location (postal code when the employer gives one)
country, countryCodestringCountry name and ISO code (DE, AT, CH, ...)
locationsarrayEvery location of a multi-location posting, as "City, CC"
workplacearrayRemote, Hybrid, On-site
isRemotebooleanTrue when the posting offers fully remote work
employmentTypestringLabel such as "Full-time" or "Part-time"
employmentTypeCodestringStable code: FULL_TIME, PART_TIME, CONTRACTOR, INTERN, SEASONAL, TEMPORARY, VOLUNTARY
careerLevelstringLabel such as "Professional/Experienced" or "Manager/Supervisor"
industrystringIndustry of the employer
disciplinestringJob discipline, e.g. "IT and software development"
salaryMin, salaryMaxnumberSalary range (annual gross)
salaryMediannumberMiddle of XING's estimate (estimates only)
salaryCurrencystringEUR or CHF
salaryPeriodstringAlways yearly: XING shows annual gross salaries
salarySourcestringemployer = the employer states it; xing_estimate = XING's own estimate
postedAtstringISO 8601 time the posting went live
refreshedAtstringISO 8601 time the posting was last refreshed
expiresAtstringISO 8601 time the posting stops being active
descriptionTextstringFull job description as plain text (e-mail addresses and phone numbers removed)
languagestringLanguage of the posting text (de, en, ...)
tagsarrayKeyword tags XING attached to the posting
applyUrlstringEmployer's own application page, when the posting links one
applicationTypestringexternal (employer site), xing (apply on XING), email or message
isPromotedbooleanTrue for paid or top-job postings
searchKeyword, searchLocationstringThe search that found the job
statusstringok, not_found or error (see below)
errorstringReason when status is not ok
scrapedAtstringISO 8601 time of extraction

Optional fields are left out when XING does not publish them for a posting (for example about a quarter of postings show no salary at all). Labels come in English by default; set language to de for XING's German labels. Job texts always stay in the language the employer wrote them in.

Result status (tri-state output)

statusMeaningBilled?
okThe job was found and extracted.Yes
not_foundXING answered, but the search has no jobs, or the job id no longer exists. The row names the search or job.No
errorXING could not be read after retries. error says why.No

A run that finds nothing still ends successfully with its free not_found rows, so a scheduled search that is empty today does not show up as a failed run.

How to scrape XING jobs with this Actor

  1. Open the Actor in Apify Console and click Try for free.
  2. Paste XING job search URLs into XING search or job URLs (copy them from xing.com after setting your filters), or type Keywords and Locations.
  3. Optionally narrow the search: workplace, remote only, employment types, career levels, posted within, salary range, only jobs with an employer salary.
  4. Set Maximum results (start with the default 20) and click Start. The default run takes about 5 seconds.
  5. Open the Output tab or Export the dataset as JSON, CSV, Excel, XML or HTML.

Input

FieldTypeDefaultDescription
startUrlsarrayone example searchxing.com job search URLs (every filter in the URL is kept), job page URLs or bare job ids
keywordsarray-Search terms; each is searched in every location
locationsarray-Cities or regions, e.g. Berlin, München, Wien, Zürich
radiusinteger-Kilometres around each location
workplacearray-remote, hybrid, onsite
remoteOnlybooleanfalseShortcut for fully remote jobs
employmentTypesarray-FULL_TIME, PART_TIME, CONTRACTOR, INTERN, SEASONAL, TEMPORARY, VOLUNTARY
careerLevelsarray-STUDENT_INTERN, ENTRY_LEVEL, PROFESSIONAL, MANAGER, DIRECTOR, EXECUTIVE
postedWithinDaysinteger-1, 7 or 30 (XING's buckets; other values round up)
salaryMin, salaryMaxinteger-XING's salary filter, annual gross in EUR
employerSalaryOnlybooleanfalseKeep only jobs whose salary comes from the employer
fetchDetailsbooleantrueInclude descriptionText (no extra requests; off = smaller rows)
languagestringenLabel language: en or de
maxItemsinteger20Stop after this many rows in total
maxItemsPerSearchinteger-Cap per search URL or keyword x location
proxyConfigurationobjectoffNot needed; datacenter proxy only if you ever see blocking

Filters apply to keyword searches and fill in whatever a pasted search URL does not already set. When you use Keywords or Locations and leave the example URL in place, the example is skipped automatically.

Example input:

{
"keywords": ["Softwareentwickler", "Data Scientist"],
"locations": ["Berlin", "Wien", "Zürich"],
"workplace": ["remote", "hybrid"],
"postedWithinDays": 7,
"maxItems": 500,
"maxItemsPerSearch": 100
}

Output

You can download the dataset in various formats such as JSON, HTML, CSV or Excel. A real row from a run on Apify (description and tags shortened):

[
{
"url": "https://www.xing.com/jobs/hamburg-softwareentwickler-java-backend-bereich-digitale-identitaeten-157877077",
"status": "ok",
"scrapedAt": "2026-09-27T23:45:49.402Z",
"jobId": "157877077",
"title": "Softwareentwickler (m/w/d) Java/ Backend im Bereich Digitale Identitäten",
"companyName": "APRIORI – BUSINESS SOLUTIONS AG",
"companyUrl": "https://www.xing.com/pages/apriori-businesssolutionsag",
"companyLogo": "https://www.xing.com/imagecache/public/scaled_original_image/eyJ1dWlkIjoiZDNjZDUyYWEtYjAwMy00NzkyLTgxN2YtNzMzNTM1NzU0NjkyIiwiYXBwX2NvbnRleHQiOiJlbnRpdHktcGFnZXMiLCJtYXhfd2lkdGgiOjk2LCJtYXhfaGVpZ2h0Ijo5Nn0?signature=0a9b9d0dd0ddd6e2bd190e6bd9081e1577ec7b4b9c3c8ce2716854286d731498",
"location": "Hamburg, Germany",
"city": "Hamburg",
"region": "Freie und Hansestadt Hamburg",
"country": "Germany",
"countryCode": "DE",
"locations": ["Hamburg, DE"],
"workplace": ["On-site"],
"isRemote": false,
"employmentType": "Full-time",
"employmentTypeCode": "FULL_TIME",
"careerLevel": "Professional/Experienced",
"industry": "Internet and IT",
"discipline": "IT and software development",
"salaryMin": 65000,
"salaryMax": 80000,
"salarySource": "employer",
"salaryCurrency": "EUR",
"salaryPeriod": "yearly",
"postedAt": "2026-09-15T07:40:14Z",
"refreshedAt": "2026-09-15T07:40:14Z",
"expiresAt": "2026-10-15T07:40:37Z",
"descriptionText": "Unser Klient ist ein führendes Technologieunternehmen im Bereich der digitalen Sicherheit und agiert als spezialisierter Entwicklungspartner für hochsensible Infrastrukturprojekte. ...",
"language": "de",
"tags": ["softwareentwickler", "java", "informatik", "perspektive"],
"applyUrl": "https://www.apriori.de/job-finden/job/262607/?utm_source=xing.com",
"applicationType": "external",
"isPromoted": true,
"searchKeyword": "Softwareentwickler",
"searchLocation": "Hamburg"
},
{
"url": "https://www.xing.com/jobs/search?keywords=Pflegefachkraft&location=Genf",
"status": "not_found",
"error": "XING has no jobs for this search (keywords \"Pflegefachkraft\", location \"Genf\") with the chosen filters.",
"scrapedAt": "2026-09-27T23:45:45.687Z",
"searchKeyword": "Pflegefachkraft",
"searchLocation": "Genf"
}
]

How much does it cost to scrape XING jobs?

This Actor uses pay-per-event pricing. Platform usage (compute, storage, data transfer) is included in these prices:

EventPriceCharged when
Actor start$0.005 per runOnce when the run starts (one event per GB of memory; the Actor runs on 1 GB).
Job posting$0.0006 per jobOne job with status: ok was saved to the dataset.

1,000 XING jobs cost about $0.61 ($0.005 to start plus 1,000 x $0.0006). Rows with status not_found or error are never billed, and a job found by several of your searches is saved and billed once. The free Apify plan's monthly credit covers several thousand jobs.

You can cap spending per run with Maximum results and with the run's Max total charge option; the Actor stops gracefully when either limit is reached and keeps everything it has already saved.

How it compares

One request returns 20 complete postings including the full description, so 1,000 jobs take about 50 requests and well under a minute. Salary figures are labelled: salarySource tells you whether the employer published the range or XING estimated it, which matters for any salary analysis. Filters use XING's own search parameters, and pasted search URLs keep every filter you set on xing.com.

It is not for you if you need candidate or member profiles, recruiter contact data, applications or anything inside a XING account; those are out of scope by design.

Integrations, exports and API access

Results export to CSV, JSON, Excel, XML and HTML from the Output tab or the dataset API. Apify integrations and webhooks push the same rows into Google Sheets, Airtable or a CRM, Slack, Amazon S3 or your own endpoint, directly or through Zapier, Make and n8n. Call the Actor from the Apify API (snippets on the API tab), from the Apify MCP server, or from any AI agent: inputs are plain strings and numbers, and every row carries status and error.

Tips

  • Keep maxItems small while testing, then raise it.
  • Put all your keywords and cities in one run instead of many small runs; you pay the start fee once and duplicates across searches are removed.
  • XING stops paging after about 470 jobs per search. To cover a large market, split it into narrower searches (per city, per keyword, per employment type) and use maxItemsPerSearch to balance them.
  • German keywords with umlauts (Bürokaufmann, München) work as typed.

Limitations

  • About 470 jobs per search. XING's search pages no further; split big searches as described above.
  • XING's search is semantic. Like on xing.com, a keyword also returns related postings, so not every title contains the exact word.
  • Date filter granularity. XING offers "last 24 hours", "last week" and "last month" only; postedWithinDays rounds up to the next bucket.
  • Undocumented data source. The Actor reads the public job search that xing.com's own pages use. XING can change it at any time; rows then come back as error with a reason and the Actor is updated (report it in the Issues tab).
  • Descriptions are the employer's own text. E-mail addresses and phone numbers are removed and XING's separate contact section is never collected, but a description may still mention a person by name.
  • No login and no personal data. Member profiles, recruiter contacts and anything behind a XING account are out of scope.

FAQ

Do I need a XING account or API key? No. You only need an Apify account. The Actor uses XING's public, logged-out job search.

Can I paste a search from xing.com? Yes. Set your filters on xing.com, copy the address bar URL (for example https://www.xing.com/jobs/search?keywords=Pflegefachkraft&location=Hamburg&radius=50) and paste it. Every filter in the URL is kept.

What is the difference between employer and xing_estimate salaries? employer means the posting states the salary. xing_estimate is XING's own estimate for the role, shown when the employer gives none; it includes a salaryMedian.

Which countries are covered? Whatever XING lists: mostly Germany, Austria and Switzerland, plus some postings elsewhere in Europe.

Why did I get fewer rows than maxItems? The searches had fewer matches (or reached the ~470 limit), duplicates across searches were removed, or the run hit your Max total charge limit. Check the run log for "Stopping gracefully".

Is it legal to scrape XING? Scraping publicly available data is generally legal, but you are responsible for how you use the output. Read the legal notice below and XING's terms of service, and do not collect personal data without a legitimate reason.

Can I use this Actor from an AI agent or MCP client? Yes. Every row is self-describing (status plus error), inputs are plain strings, and results can be fetched via the dataset API or the Apify MCP server.

This Actor extracts only job postings that XING publishes publicly to logged-out visitors; it does not extract private user data such as member profiles, recruiter names, e-mail addresses, phone numbers, gender or precise location (e-mail addresses and phone numbers found in free-text job descriptions are removed before the row is saved), and it does not log in or work around access controls. However, your results could still contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you are unsure whether your reason is legitimate, consult your lawyers. You are responsible for complying with XING's terms of service and applicable law when using the extracted data.

This Actor is an independent tool and is not affiliated with, endorsed by or sponsored by XING or New Work SE. All trademarks belong to their respective owners.