Xing Jobs Scraper
Pricing
from $0.31 / 1,000 job saveds
Xing Jobs Scraper
Scrape public XING job listings by keyword, location, or direct URL. Export job titles, companies, locations, salaries, descriptions, and URLs.
Pricing
from $0.31 / 1,000 job saveds
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share
Scrape public XING job listings by keyword, location, or direct XING job/search URLs. Export structured job data for recruiting, sourcing, labor-market analysis, competitive hiring intelligence, and DACH job monitoring.
Use this Actor when you need repeatable XING job collection with clean dataset rows, detail-page descriptions, salary text when visible, and exports for CSV, JSON, Excel, API, dashboards, and automation workflows.
At a glance
- Primary job: collect public XING job listings for recruiting and market intelligence.
- Input: enter search keywords and a location, or paste XING job/search URLs.
- Output: one dataset row per job with title, company, location, salary, employment type, description, and source URL fields.
- Best for: DACH recruiting teams, sourcing vendors, job aggregators, sales intelligence, and labor-market analysts.
Use cases
- Recruiting market scans: collect active XING postings by role and city to understand demand.
- Sourcing vendor workflows: build lists of hiring companies and open roles for outreach.
- Labor-market analysis: monitor salary signals, employment types, and hiring trends in DACH markets.
- Competitive intelligence: track which companies are hiring for specific functions over time.
Input recipes
Example input: small smoke test
{"keywords": ["software engineer"],"location": "Berlin","maxItems": 10,"maxPages": 2,"includeDetails": true}
Recruiter market scan
{"keywords": ["marketing manager", "sales manager"],"location": "Munich","maxItems": 100,"maxPages": 10,"includeDetails": true}
Direct XING URLs
{"startUrls": [{ "url": "https://www.xing.com/jobs/search?keywords=data%20analyst&location=Hamburg" },{ "url": "https://www.xing.com/jobs/berlin-senior-software-engineer-155853218" }],"maxItems": 50,"includeDetails": true}
What data can you extract?
| Field | Description |
|---|---|
jobId | XING job identifier parsed from the job URL. |
jobUrl | Canonical public XING job URL. |
title | Job title. |
companyName | Hiring company name. |
companyUrl | Public company URL when XING exposes one. |
location | Job location text. |
remoteOrHybrid | Remote, hybrid, or on-site hint when visible. |
postedAt | Structured posting date when available. |
postedText | Human-readable posting freshness text when visible. |
employmentType | Employment type such as full-time or part-time. |
salaryText | Salary text when shown publicly. |
descriptionText | Plain-text public job description from the detail page. |
skills | Tags, labels, or skills visible on the listing/detail page. |
applyUrl | Application URL when exposed publicly. |
sourceSearchUrl | Search page where the listing was found. |
sourceType | search or detail. |
scrapedAt | Timestamp when the record was saved. |
Input configuration
| Setting | JSON key | Use it for | Example |
|---|---|---|---|
| Keywords | keywords | Job titles, skills, or hiring terms to search. | ["software engineer"] |
| Location | location | City, region, or country for keyword searches. | "Berlin" |
| Start URLs | startUrls | XING search URLs or direct XING job URLs. | https://www.xing.com/jobs/search?keywords=... |
| Maximum jobs | maxItems | Cap saved rows and control spend. | 10 |
| Maximum pages | maxPages | Limit paginated search pages per query. | 5 |
| Fetch job detail pages | includeDetails | Extract public description, dates, and structured detail fields. | true |
| Proxy configuration | proxyConfiguration | Optional Apify or custom proxy settings. The default uses Apify Residential proxy in Germany for stable cloud access. | { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "countryCode": "DE" } |
Example output
{"jobId": "155853218","jobUrl": "https://www.xing.com/jobs/berlin-senior-software-engineer-155853218","title": "Senior Software Engineer","companyName": "Nulegal GmbH","companyUrl": null,"location": "Berlin, DE","remoteOrHybrid": null,"postedAt": "2026-07-08","postedText": null,"employmentType": "Full-time","salaryText": "EUR 61,000 - 81,500","descriptionText": "Bureaucracy and legal friction are holding Europe back...","skills": ["Urgently hiring", "Full-time"],"applyUrl": "https://www.xing.com/jobs/berlin-senior-software-engineer-155853218","sourceSearchUrl": "https://www.xing.com/jobs/search?keywords=software+engineer&location=Berlin","sourceType": "search","scrapedAt": "2026-07-09T18:45:00.000Z"}
Pricing
| Event | Price | Charged when |
|---|---|---|
| Run start | $0.010 per run | Once when the Actor starts. |
| Job saved | from $0.00014391 to $0.00059106 per saved job by usage tier ($0.00051397 Bronze) | Each XING job listing saved to the dataset. |
Bronze users pay about $0.514 per 1,000 saved jobs, plus the small run-start fee. Store discount tiers are configured as Free, Bronze, Silver, Gold, Platinum, and Diamond, so high-volume users pay less per saved job.
Tips for best results
- Start with
maxItems: 10andmaxPages: 2to confirm the search returns the expected roles. - Use German and English keywords when monitoring DACH markets, for example
softwareentwickler,sales manager, ordata analyst. - Keep location values specific (
Berlin,Munich,Hamburg) for focused datasets. - Set
includeDetails: falsewhen you only need fast title/company/location/salary listing rows. - Schedule repeat runs to monitor new postings and changing hiring demand over time.
API usage
Node.js:
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor("fetch_cat/xing-jobs-scraper").call({keywords: ["software engineer"],location: "Berlin",maxItems: 10,includeDetails: true});console.log(run.defaultDatasetId);
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("fetch_cat/xing-jobs-scraper").call(run_input={"keywords": ["software engineer"],"location": "Berlin","maxItems": 10,"includeDetails": True,})print(run["defaultDatasetId"])
cURL:
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~xing-jobs-scraper/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"keywords":["software engineer"],"location":"Berlin","maxItems":10,"includeDetails":true}'
MCP and AI agents
Use this Actor from MCP-compatible tools through the official Apify MCP Server.
$claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/xing-jobs-scraper"
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=fetch_cat/xing-jobs-scraper"}}}
Example prompt: "Run Xing Jobs Scraper for software engineer roles in Berlin and summarize the top hiring companies from the dataset."
Limits and caveats
- XING can change public markup or throttle very large/frequent runs.
- Some jobs do not expose salary, remote status, apply URL, or company URL publicly.
- Search results can change between pages while new jobs are posted or removed.
- This Actor reads public job pages only; it does not log in, apply to jobs, or access private XING data.
Legality and responsible use
Process only data you are allowed to access. Follow XING's terms, Apify's terms, and applicable privacy, employment, and data-protection laws. Use the data for legitimate recruiting, analytics, monitoring, and research workflows.
Related actors
FAQ
Can I export results?
Yes. Apify datasets support JSON, CSV, Excel, XML, RSS, and API access.
Why are some fields empty?
XING does not expose every field on every public listing. The Actor leaves unavailable fields empty instead of guessing.
Can I scrape direct job URLs?
Yes. Add direct https://www.xing.com/jobs/... URLs to startUrls. Each direct job URL produces one dataset row when accessible publicly.
Does this need a proxy?
The default uses Apify Residential proxy in Germany because XING can serve different result pages to cloud datacenter traffic. You can override proxyConfiguration if you have a custom proxy setup.
Support
Open an issue from the Actor page if a run fails or output looks wrong. Include the run ID or run URL, input JSON, expected output, actual output, and one reproducible public URL, such as the XING search or job URL that produced the problem.