XING Jobs Scraper — DACH Job Listings | from $1.09/1K avatar

XING Jobs Scraper — DACH Job Listings | from $1.09/1K

Pricing

from $1.06 / 1,000 job-listings

Go to Apify Store
XING Jobs Scraper — DACH Job Listings | from $1.09/1K

XING Jobs Scraper — DACH Job Listings | from $1.09/1K

Scrape public XING job listings for DACH keyword and location searches. Get structured records with titles, companies, locations, and employment types. Run with searchKeywords and optional location; no login or API key. Pricing: $0.00109 per job-listing item on Free; $0.00005 per Actor Start event.

Pricing

from $1.06 / 1,000 job-listings

Rating

0.0

(0)

Developer

Vitalii Bondarev

Vitalii Bondarev

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

0

Monthly active users

4 days ago

Last modified

Features

Limited permissions

Share

XING Jobs Scraper

Extract public XING job listings from the /jobs/search page for DACH keyword and location searches, including titles, companies, locations, salary data, and employment types. Pricing is $0.00109 per job-listing dataset item on the Free plan, plus $0.00005 per Actor Start event on the Free plan.

  • Search one or more keywords with an optional city or region filter.
  • Deduplicate listings found across multiple keyword searches by job ID.
  • Capture salary ranges, employment types, application links, and listing dates when XING provides them.
  • Use the dataset for recruitment research, salary-range analysis, or DACH job-market monitoring.
  • Run without a XING login or external API key.

What you get

The Actor reads XING’s server-rendered Apollo/GraphQL cache from the public search page rather than relying on frontend HTML classes. Each output record uses the following fields.

FieldTypeWhat it contains
job_idstringXING job listing ID; records without an ID are not returned.
titlestringJob title; null when XING does not provide a title.
companystringCompany display name; null when XING does not provide a company name.
company_idstringXING company entity ID; null when no company entity ID is available.
locationstringListing city; null when XING does not provide a city.
zip_codestringPostal code; null when unavailable.
regionstringRegion or state; null when unavailable.
country_codestringCountry code; null when XING does not include it in the search cache.
employment_typestringLocalized employment type, such as Vollzeit; null when unavailable.
salarystringNormalized range such as 56,500-70,500 EUR/yr; null when salary data is unavailable.
salary_minintegerMinimum salary; null when salary data is unavailable.
salary_maxintegerMaximum salary; null when salary data is unavailable.
salary_currencystringSalary currency, such as EUR or CHF; null when salary data is unavailable.
remote_optionstringRemote-work option such as FULL_REMOTE, PARTIAL_REMOTE, or NO_REMOTE; null when unavailable.
career_levelstringCareer-level value; null when unavailable.
posted_dateISO 8601 stringXING refresh or activation timestamp; null when unavailable.
active_untilISO 8601 stringListing active-until timestamp; null when unavailable.
job_urlstringCanonical XING job URL; null when XING does not provide it.
apply_urlstringDirect application URL, which may be external; null when unavailable.
description_snippetstringPlain-text description snippet taken from the cache's description or summary value; often null, because the search-page cache may not supply it.
source_querystringKeyword that found the listing; may be empty if an empty keyword is supplied.
source_pageintegerPage number within that keyword search; populated for returned records.
scraped_atISO 8601 stringUTC timestamp for the Actor run; populated for returned records.
parse_confidencenumberParse completeness score from 0.0 to 1.0; populated for returned records.
warningsarray of stringsWarning codes associated with the parsed record; empty when no warnings apply.

Fields that XING does not expose for a listing are returned as null. Salary and country code are available only when XING includes them in the search result cache.

Sample output

This is one dataset record from a successful run. The record is compactly line-wrapped; values are unchanged.

{
"job_id": "158813256", "title": "Software Engineer Plattformen Anwendungen (m/w/d)",
"company": "Korsch AG", "company_id": "154681",
"location": "Berlin", "zip_code": null, "region": null,
"country_code": null, "employment_type": "Vollzeit",
"salary": "56,500-70,500 EUR/yr", "salary_min": 56500, "salary_max": 70500,
"salary_currency": "EUR", "remote_option": null, "career_level": null,
"posted_date": "2026-10-26T20:15:25Z", "active_until": "2027-04-27T11:10:01Z",
"job_url": "https://www.xing.com/jobs/berlin-software-engineer-plattformen-anwendungen-158813256",
"apply_url": "https://jobs.maxime-media.de/job/7660725?utm_source=xing.com",
"description_snippet": null, "source_query": "Software Engineer", "source_page": 1,
"scraped_at": "2026-11-08T09:11:36Z", "parse_confidence": 1, "warnings": []
}

Pricing

The billing model is pay per event. The primary dataset item event is one job listing with all fields, and the Actor Start event is charged when the Actor starts.

You pay only for the events listed below. This Actor does not use the Pay per event + usage option, so the platform usage of your runs (compute, proxy traffic and storage) is not billed to you separately.

PlanActor Start eventJob-listing dataset item
Free$0.00005$0.00109
Bronze$0.0000495$0.0010791
Silver$0.000049$0.0010682
Gold$0.0000485$0.0010573
Platinum$0.000048$0.0010464
Diamond$0.0000475$0.0010355

The job-listing event has no price, so you are not charged for it.

On the Free plan, 100 results = $0.10905 on Free: 100 job-listing dataset items at $0.00109 each on Free plus one Actor Start event at $0.00005 on Free.

For 1,000 results, 1,000 job-listing dataset items at $0.00109 each on Free cost $1.09 on Free, plus one Actor Start event at $0.00005 on Free, for $1.09005 on Free.

For 10,000 results, 10,000 job-listing dataset items at $0.00109 each on Free cost $10.90 on Free, plus one Actor Start event at $0.00005 on Free, for $10.90005 on Free.

The Apify Free plan includes $5 of monthly platform usage credit. The $5 credit covers 4,587 job-listing dataset items at the Free-plan prices before the credit is exhausted.

How to use

  1. Choose one or more job-search keywords, such as Software Engineer or Product Manager.
  2. Add a city or region in location, or leave it empty to search across DACH locations.
  3. Set maxItems as the maximum total number of records to return.
  4. Set maxPages for the number of pages to fetch for each keyword.
  5. Run the Actor and inspect the resulting dataset, including parse_confidence and warnings.
  6. Repeat the run through Apify Schedules, starting with a daily or weekly schedule for job-listing monitoring.
{
"searchKeywords": ["Software Engineer"],
"location": "Berlin",
"maxItems": 100,
"maxPages": 5
}

Export the dataset as JSON or CSV, or read it through the Apify dataset API.

Input parameters

ParameterWhat it doesDefault
searchKeywordsArray of job-search keywords. Each keyword runs a separate search; empty input falls back to Software Engineer.["Software Engineer"]
locationCity or region filter. An empty string applies no location filter.""
maxItemsMaximum total job records returned across all keywords. Accepted range: 1 to 1000. XING caps one keyword at about 100 results, so values above 100 need several keywords.100
maxPagesMaximum pages fetched per keyword. Each page returns up to 20 jobs. Accepted range: 1 to 10, but XING caps a keyword at about 5 pages (about 100 results).5
proxyConfigurationProxy settings for requests. The Actor works without a proxy; use Apify residential proxy as a fallback if XING geo-blocks.–
disableUsageStatsSet to true to turn off the run summary described in Usage statistics.false

Limits and edge cases

ConditionWhat you seeWhat to do
XING does not expose a field in its search cacheThe corresponding output field is null, including fields such as salary, country code, remote option, or description snippet.Use the available fields and check warnings and parse_confidence.
Salary is not provided by the employersalary, salary_min, salary_max, and possibly salary_currency are null.Use the non-salary listing fields or collect only records with salary values in your downstream process.
A keyword reaches XING's capXING returns about 100 results (5 pages × 20 jobs) per keyword, so maxItems above 100 returns more only with several keywords.Add more keywords or narrow location.
A page has no new job IDsPagination for that keyword stops, for example when keywords overlap and every job was already seen.Use more distinct keywords.
The search page has no parseable recordsThe Actor stops pagination for that keyword and may return fewer records than requested.Check the keyword and location, then run the search again with a broader or different query.
XING returns a blocked or unexpected pageThe current keyword stops at that page; records already pushed remain in the dataset, and later keywords are attempted.Run the search again.
A network fetch error occursThe current keyword stops at the failed page; records already pushed remain available, and later keywords are attempted.Check the run log and run again if needed.
Full descriptions are neededdescription_snippet is often null, because the search-page cache may not supply it.Use job_url to open the listing if your workflow requires the full description.

FAQ

How much does it cost to scrape XING jobs?

On Free, the Actor costs $0.00109 per job-listing dataset item and $0.00005 per Actor Start event.

Why did the Actor return fewer jobs than requested?

XING caps a keyword at about 100 results (5 pages × 20 jobs), so maxItems above 100 needs several keywords. Pagination for a keyword also stops when a page has no new job IDs, for example when keywords overlap, and a blocked or failed page can reduce the count. Try more distinct keywords and review the run log.

Does the Actor require a XING login or API key?

No. It extracts data from XING's public logged-out job search and does not require a XING login or external API key.

What should I do if a run does not work?

Check that searchKeywords and location describe the intended search. If XING returns a blocked or unexpected page, run the Actor again.

The Actor extracts publicly available job listings from XING's logged-out job search. Whether a particular use is legal or allowed depends on your use case, XING's applicable terms, and applicable law; review those requirements before using the data. This Actor is not affiliated with, endorsed by, or sponsored by XING SE.

Usage statistics

This Actor creates a small, content-free summary at the end of each run, used only to monitor reliability and improve this Actor. No input values, credentials or scraped data are sent.

A copy of the exact record for your run is saved as USAGE_STATS in your own Apify key-value store.

To opt out, set disableUsageStats to true in the input. Nothing is sent then.

Full list of collected fields