XING Jobs Scraper - Search Jobs in Germany
Pricing
from $0.80 / 1,000 results
XING Jobs Scraper - Search Jobs in Germany
Scrapes job listings from XING Jobs (xing.com/jobs): title, company, location, employment type, salary, posted date, full description and apply link. Search by keyword, location, search URL or job URL.
Pricing
from $0.80 / 1,000 results
Rating
0.0
(0)
Developer
ActorFlow
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
XING Jobs Scraper - Search Jobs in Germany by Keyword & Location
Scrape job listings from XING Jobs (xing.com/jobs): title, company, city, employment type, salary, posted date, full job description and apply link. Export the results as JSON, CSV or Excel, or call the actor as an API. Type a keyword and a city or paste a XING search URL, press Start, and get clean XING job data. Repeat runs skip jobs you already scraped, so you never pay twice for the same job.
Target website: xing.com/jobs
✨ Features of this XING jobs scraper
- Job listing extraction — title, company, city, employment type, salary, posted and refreshed dates, apply link and job summary.
- Full job details — complete description (HTML and plain text), industry, company page and logo, full address and validity date for every job.
- Pagination support — keeps paging through search results until Max items is reached.
- Keyword, location and URL input — search by keyword and city, paste a XING search URL, or pass single job URLs.
- Incremental runs, no repeat charges — with a cache project name, jobs you already scraped are skipped on every later run, so scheduled runs return only new jobs and you never pay for the same job twice.
- Proxy support — optional Apify Proxy, off by default.
- No browser required — plain HTTP requests keep runs fast and cheap.
🚀 How to scrape XING jobs in 5 steps
- Sign up for a free Apify account — includes $5 monthly credit.
- Open the actor page and click Try for free.
- Fill in the Input fields (a keyword, search URL or job URL is required).
- Click Start and wait for the run to complete.
- Download results from the Output tab in JSON, CSV, or Excel format.
You can also run this actor via the Apify API or integrate it directly into your workflows using Zapier, Make, or n8n.
💰 XING jobs scraper pricing
This actor uses pay-per-result billing: you pay for each job saved to the dataset.
- New Apify accounts include $5 of free monthly credit.
- The actor uses plain HTTP requests, so it costs significantly less to run than browser-based scrapers.
- The proxy is disabled by default; leaving it off keeps runs cheapest.
- Jobs skipped by the cache are not charged. Reuse the same Cache project name across runs and the same jobs are never scraped (or billed) again, so repeated and scheduled runs cost only for genuinely new jobs.
🔧 XING jobs scraper input configuration
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
Search keywords (keywords) | array | — | ["python"] (prefill) | Job titles or skills to search for. Each keyword is searched separately. |
Location (location) | string | — | — | City or region, for example Berlin. Leave empty to search all of Germany. Applies to keyword searches. |
Search or job URLs (startUrls) | array | — | — | XING search URLs or single job URLs. The keywords and location in a search URL are used. |
Scrape full job description (scrapeDetails) | boolean | — | true | Open every job page for the description, industry, company page, full address and validity date. Turn off for faster runs with the search summary only. |
Cache project name (cacheProjectName) | string | — | — | Use the same name on each run to get only new jobs. Cached jobs are skipped, not charged and not counted towards Max items. Records get changeType: new. |
Max items per search (maxItems) | integer | — | 5 | Maximum unique jobs saved for each keyword or search URL. |
Max concurrency (maxConcurrency) | integer | — | 5 | How many requests run in parallel. |
Proxy configuration (proxyConfiguration) | object | — | no proxy | Works without a proxy. Enable Apify Proxy only if you get blocked. |
Supported URL types:
- Search:
https://www.xing.com/jobs/search?keywords=python&location=Berlin - Job:
https://www.xing.com/jobs/hannover-software-engineer-157943309
📦 XING jobs scraper output data
Each job is saved as one dataset item with the fields id, url, title, companyName, companyLogoUrl, companyProfileUrl, industry, location, city, region, postalCode, country, employmentType, salaryText, salaryMin, salaryMax, salaryMedian, salaryCurrency, salaryType, postedAt, refreshedAt, validThrough, applyUrl, externalApplication, summary, descriptionHtml, description, scrapedAt and, when caching is on, changeType. The dataset has 1 view, Overview, a table of the id, title, company, city, employment type, salary, dates and job URL. Download it as JSON, HTML, CSV or Excel.
Output at a glance:
| Job | Company | City | Type | Salary | Posted |
|---|---|---|---|---|---|
| Software Engineer – Data Processing & Backend (m | empit | Berlin | Full-time | 50500 - 73000 EUR | 2026-06-25 |
| (Senior) Full Stack Python Developer – Fokus Tra | Ebner Stolz Mönning Bachem Wirtschaftsprüfer Steuerberater Rechtsanwälte Partnerschaft mbB | Berlin | Full-time | 63500 - 86000 EUR | 2026-09-08 |
Sample output (raw JSON):
[{"id": "155714841","url": "https://www.xing.com/jobs/berlin-software-engineer-data-processing-backend-155714841","title": "Software Engineer – Data Processing & Backend (m/w/d)","companyName": "empit","companyLogoUrl": "https://www.xing.com/imagecache/public/scaled_original_image/eyJ1dWlkI...","companyProfileUrl": "https://www.xing.com/pages/empitgmbh","industry": "Environmental protection","location": "Berlin","city": "Berlin","region": "Land Berlin","postalCode": null,"country": "DE","employmentType": "Full-time","salaryText": "50500 - 73000 EUR","salaryMin": 50500,"salaryMax": 73000,"salaryMedian": 62000,"salaryCurrency": "EUR","salaryType": "estimate","postedAt": "2026-06-25T06:15:22Z","refreshedAt": "2026-06-25T06:15:22Z","validThrough": "2026-12-24T21:09:58Z","applyUrl": "https://empit.jobs.personio.com/job/2610488?language=de&utm_source=xing.com","externalApplication": false,"summary": null,"descriptionHtml": "<DIV><DIV><H2>Deine Mission</H2><DIV><UL><LI><STRONG>Datenverarbeitung & Signalanalyse:</STRONG> Du entwickelst und pflegst Backend-Systeme, die rohe Messdaten...","description": "Deine Mission\n- Datenverarbeitung & Signalanalyse: Du entwickelst und pflegst Backend-Systeme, die rohe Messdaten aus unseren CMI-Inspektionen aufnehmen, transf...","scrapedAt": "2026-10-12T17:01:31.051Z","changeType": "new"},{"id": "157734751","url": "https://www.xing.com/jobs/berlin-senior-full-stack-python-developer-fokus-transaction-advisory-tech-157734751","title": "(Senior) Full Stack Python Developer – Fokus Transaction Advisory Tech (m/w/d)","companyName": "Ebner Stolz Mönning Bachem Wirtschaftsprüfer Steuerberater Rechtsanwälte Partnerschaft mbB","companyLogoUrl": "https://www.xing.com/imagecache/public/scaled_original_image/eyJ1dWlkI...","companyProfileUrl": "https://www.xing.com/pages/rsmebnerstolz","industry": "Auditing, tax and law","location": "Berlin","city": "Berlin","region": "Land Berlin","postalCode": null,"country": "DE","employmentType": "Full-time","salaryText": "63500 - 86000 EUR","salaryMin": 63500,"salaryMax": 86000,"salaryMedian": 74000,"salaryCurrency": "EUR","salaryType": "estimate","postedAt": "2026-09-08T22:33:20Z","refreshedAt": "2026-09-08T22:33:20Z","validThrough": "2027-03-10T13:27:56Z","applyUrl": "https://www.ebnerstolz.de/de/karriere/stellenangebote/senior-full-stack-python-developer-f","externalApplication": false,"summary": null,"descriptionHtml": "<DIV><DIV><H3>Zur Gestaltung des digitalen Wandels in der <B>Transaktionsberatung</B> suchen wir dich<B> ab sofort in Berlin oder Stuttgart </B>als Verstärkung!...","description": "Zur Gestaltung des digitalen Wandels in der Transaktionsberatung suchen wir dich ab sofort in Berlin oder Stuttgart als Verstärkung!\n(Senior) Full Stack Python...","scrapedAt": "2026-10-12T17:01:31.051Z","changeType": "new"}]
salaryType is estimate when the figure is XING's own salary estimate, range for a range given by the employer and fixed for a single amount. Jobs without any salary information have empty salary fields.
🐍 How to scrape XING with Python, JavaScript or the API
Run the actor programmatically with the official Apify clients. Replace <YOUR_API_TOKEN> with the token from your Apify Console.
Python (pip install apify-client):
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("confidential_gnat/xing-jobs-scraper").call(run_input={"keywords": ["python"],"location": "Berlin","maxItems": 10,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript (npm install apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('confidential_gnat/xing-jobs-scraper').call({keywords: ['python'],location: 'Berlin',maxItems: 10,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
cURL — start a run and wait for the dataset:
curl -X POST "https://api.apify.com/v2/acts/confidential_gnat~xing-jobs-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \-H "Content-Type: application/json" \-d '{"keywords": ["python"], "location": "Berlin", "maxItems": 10}'
💡 What you can use XING jobs data for
- Job market research: which skills, salaries and employment types are in demand in German cities
- Recruiting and sourcing: spot companies that are hiring for a role and reach out first
- Salary benchmarking with XING's salary estimates and employer-given ranges
- Job aggregators and alerts that list new German postings every day
- Lead generation by finding companies that are growing a team
Recruiters, HR analysts, job boards, researchers and sales teams in the German-speaking market typically use this data.
⚠️ Limitations & known issues
- Hidden results — XING hides roughly a third to a half of the search results from visitors who are not logged in. The actor returns every job it can read and skips the hidden ones, so a page of 20 results can yield fewer jobs.
- Search depth — XING returns at most about 1,000 results per search; use more specific keywords or locations to go deeper.
- Login-required pages — The actor cannot access content behind authentication.
- Salary — Only jobs that show a salary or a XING salary estimate have salary fields.
- Layout changes — XING can change its site, which may affect some fields until the actor is updated.
❓ Frequently asked questions
Can I scrape XING legally?
The actor only collects job postings that are already publicly visible on xing.com, without logging in or accessing private profiles. Scraping publicly available data is generally considered lawful (see hiQ Labs v. LinkedIn), but you are responsible for complying with XING's Terms of Service and applicable laws such as GDPR if you handle personal data.
What data does the XING scraper return?
Every job has its title, company, city, employment type, salary information when shown, dates and apply link. With full job description turned on, you also get the complete description (HTML and plain text), industry, company page and logo, region, country and validity date.
How many jobs can I scrape from one XING search?
maxItems limits the number of jobs per keyword or search URL, not for the whole run. XING returns at most about 1,000 results per search, and some results are hidden from logged-out visitors.
Do I need a proxy to scrape xing.com?
No. The actor works without a proxy by default, which keeps runs cheapest. Turn on Apify Proxy only if you get blocked on very large runs.
How do I scrape XING with Python?
Use the Python example above: call the actor with ApifyClient, then iterate over the dataset items of the finished run.
Can I run this XING scraper on a schedule and avoid paying for repeat jobs?
Yes. Use Apify Schedules and set the same Cache project name on every scheduled run. The actor skips jobs it already saved, so each run returns, and charges for, only new jobs, marked with changeType: new.
What output formats are supported?
JSON, CSV, Excel, XML and RSS, either from the Output tab or through the Apify API.
Why do I get fewer jobs than Max items?
XING hides a share of its results from visitors who are not logged in, and a search is capped at about 1,000 results. The actor reads every visible job and keeps paging until it reaches Max items or the results run out.
🔗 Other actors you may find useful
| Actor | Description |
|---|---|
| 💼 Dice Jobs Scraper | Scrapes tech job listings from Dice by keyword, search URL or job URL. |
| 💼 HiringCafe Jobs Scraper | Scrapes job listings from HiringCafe by keyword, search URL or job URL. |
| 🇩🇪 German Imprint (Impressum) Scraper | Extracts decision makers, address and register data from German Impressum pages. |
| 📧 Decision Maker Email Finder | Finds founders, executives and department heads at any company website. |
| 🏢 BBB Business Info and Emails Scraper | Scrapes Better Business Bureau businesses: contacts, rating and reviews. |
💬 Support & contact
If you encounter any issues or have questions, please open an issue or reach out via the Apify Community Forum.
You can also find more of our actors on the Actor Flow page.