Xing Jobs Scraper avatar

Xing Jobs Scraper

Pricing

from $0.31 / 1,000 job saveds

Go to Apify Store
Xing Jobs Scraper

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

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

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?

FieldDescription
jobIdXING job identifier parsed from the job URL.
jobUrlCanonical public XING job URL.
titleJob title.
companyNameHiring company name.
companyUrlPublic company URL when XING exposes one.
locationJob location text.
remoteOrHybridRemote, hybrid, or on-site hint when visible.
postedAtStructured posting date when available.
postedTextHuman-readable posting freshness text when visible.
employmentTypeEmployment type such as full-time or part-time.
salaryTextSalary text when shown publicly.
descriptionTextPlain-text public job description from the detail page.
skillsTags, labels, or skills visible on the listing/detail page.
applyUrlApplication URL when exposed publicly.
sourceSearchUrlSearch page where the listing was found.
sourceTypesearch or detail.
scrapedAtTimestamp when the record was saved.

Input configuration

SettingJSON keyUse it forExample
KeywordskeywordsJob titles, skills, or hiring terms to search.["software engineer"]
LocationlocationCity, region, or country for keyword searches."Berlin"
Start URLsstartUrlsXING search URLs or direct XING job URLs.https://www.xing.com/jobs/search?keywords=...
Maximum jobsmaxItemsCap saved rows and control spend.10
Maximum pagesmaxPagesLimit paginated search pages per query.5
Fetch job detail pagesincludeDetailsExtract public description, dates, and structured detail fields.true
Proxy configurationproxyConfigurationOptional 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

EventPriceCharged when
Run start$0.010 per runOnce when the Actor starts.
Job savedfrom $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: 10 and maxPages: 2 to confirm the search returns the expected roles.
  • Use German and English keywords when monitoring DACH markets, for example softwareentwickler, sales manager, or data analyst.
  • Keep location values specific (Berlin, Munich, Hamburg) for focused datasets.
  • Set includeDetails: false when 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 ApifyClient
client = 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.

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.