Skip to content

Latest commit

Β 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 

Repository files navigation

Xing Jobs Scraper 🎯

Xing Jobs Scraper lets you automatically collect rich, structured job postings from Xing.com using your own search URLs and filters. It solves the pain of manually copying listings, giving you clean data for recruitment analytics, job market research, and opportunity tracking. With configurable limits and structured JSON output, this Xing jobs scraper is ideal for dashboards, reports, and data pipelines.

Bitbash Banner

Telegram Β  WhatsApp Β  Gmail Β  Website

Created by Bitbash, built to showcase our approach to Scraping and Automation!
If you are looking for xing-jobs-scraper you've just found your team β€” Let’s Chat. πŸ‘†πŸ‘†

Introduction

Xing Jobs Scraper is a dedicated tool for extracting job listings and associated company data from Xing.com job search result pages. By turning your search URLs into structured records, it helps you understand job availability, hiring trends, and employer signals in German-speaking markets and beyond.

It is designed for:

  • Recruiters who want to track fresh roles and target companies.
  • Analysts who monitor labor market trends and demand for specific skills.
  • Job seekers and career platforms that need programmatic access to listings.

Intelligent Job Market Data Collection

  • Uses your Xing job search URLs (with filters and keywords applied) to discover relevant listings.
  • Extracts detailed metadata, including titles, locations, employment types, and activation timestamps.
  • Enriches job records with company information, logos, and Kununu rating data where available.
  • Outputs consistent JSON objects suitable for databases, BI tools, and ML pipelines.
  • Lets you cap the number of results via maxItems for faster, more efficient runs.

Features

Feature Description
Keyword & filter-based job search Accepts full Xing job search URLs so you can use any combination of keywords, locations, and filters already supported by the site.
Detailed job metadata extraction Captures titles, URLs, slugs, IDs, activation dates, refresh timestamps, locations, and employment types.
Company & branding signals Gathers company identifiers, logo URLs, and Kununu rating averages to support employer reputation analysis.
Configurable result limits maxItems lets you control how many job records to fetch, balancing depth with speed and cost.
Anti-blocking behavior Built-in delays and throttling patterns reduce the risk of being rate-limited while collecting data.
Clean JSON output Produces well-structured JSON arrays that are easy to post-process, store, or feed into analytics tools.
Multi-URL support Accepts an array of search URLs so you can run multiple queries (e.g., different cities or roles) in one execution.
Usage guidance & tips Clear configuration examples make it easy to get started, even if you’re new to job data scraping.

What Data This Scraper Extracts

Field Name Field Description
searchUrl The original Xing job search URL from which this job listing was discovered.
__typename Internal type label for the returned job entity (e.g., VisibleJob).
id Unique identifier of the job posting within the source system.
slug Human-readable slug used to construct the job detail URL.
url Direct URL to the job detail page on Xing.
title Full job title as displayed in the listing.
activatedAt ISO timestamp when the job was first activated/published.
refreshedAt ISO timestamp when the job was last refreshed or updated.
globalId Global unique identifier for the job posting record.
location.city City or primary locality where the role is based.
employmentType.localizationValue Localized employment type label (e.g., Full-time, Part-time).
companyInfo.id Unique identifier of the company associated with the job.
companyInfo.logos.logo96px URL of a 96Γ—96 company logo image, useful for UI or branding.
companyInfo.kununuData.ratingAverage Average Kununu rating for the company, providing reputation context.
salary Salary information if present; often null when not disclosed.
userInteractions.bookmark.state Bookmark state for the job (e.g., NOT_BOOKMARKED).
timestamp The time at which the data was collected (can be derived at runtime for auditing).
source The logical source label (e.g., xing) to help differentiate from other job feeds.

Example Output

Example:

[
  {
    "searchUrl": "https://www.xing.com/jobs/search?sc_o=losp_jobs_search_button_click&sc_o_PropActionOrigin=losp_job_search&keywords=AI%20Engineer&id=a68641afc57ee06112317babd32bb9bb&employmentType=FULL_TIME.ef2fe9",
    "__typename": "VisibleJob",
    "id": "129410640.0cc77c",
    "slug": "muenchen-junior-machine-learning-engineer-ai-forge-129410640",
    "url": "https://www.xing.com/jobs/muenchen-junior-machine-learning-engineer-ai-forge-129410640",
    "title": "(Junior) Machine Learning Engineer (m/w/d) AI Forge",
    "activatedAt": "2025-01-02T08:17:33Z",
    "refreshedAt": "2025-01-02T08:17:33Z",
    "globalId": "surn:x-xing:jobs:posting:129410640.0cc77c",
    "location": {
      "__typename": "JobLocation",
      "city": "MΓΌnchen"
    },
    "employmentType": {
      "__typename": "EmploymentType",
      "localizationValue": "Full-time"
    },
    "companyInfo": {
      "__typename": "Company",
      "id": "50390.ec2c0e",
      "logos": {
        "__typename": "CompanyLogos",
        "logo96px": "https://www.xing.com/imagecache/public/scaled_original_image/eyJ1dWlkIjoiYzQ0NjIwNmUtY2E1YS00MDliLTg4NzktMjhjNWNlMWJiNmNmIiwiYXBwX2NvbnRleHQiOiJlbnRpdHktcGFnZXMiLCJtYXhfd2lkdGgiOjk2LCJtYXhfaGVpZ2h0Ijo5Nn0?signature=a0fc3b6d5d23af2cb7c8dcdf8c101328a078cbef0f7c2dd63748676d1481eab2"
      },
      "kununuData": {
        "__typename": "CompanyKununuData",
        "ratingAverage": 4
      }
    },
    "salary": null,
    "userInteractions": {
      "__typename": "JobUserInteractions",
      "bookmark": {
        "__typename": "JobBookmark",
        "state": "NOT_BOOKMARKED"
      }
    }
  }
]

Directory Structure Tree

Xing Jobs Scraper 🎯/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main.py
β”‚   β”œβ”€β”€ client/
β”‚   β”‚   β”œβ”€β”€ http_client.py
β”‚   β”‚   └── throttling.py
β”‚   β”œβ”€β”€ parsers/
β”‚   β”‚   β”œβ”€β”€ jobs_parser.py
β”‚   β”‚   └── company_parser.py
β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”œβ”€β”€ job_item.py
β”‚   β”‚   └── company_item.py
β”‚   β”œβ”€β”€ utils/
β”‚   β”‚   β”œβ”€β”€ logging_utils.py
β”‚   β”‚   └── time_utils.py
β”‚   └── config/
β”‚       └── settings.example.json
β”œβ”€β”€ data/
β”‚   β”œβ”€β”€ input.example.json
β”‚   └── sample_output.json
β”œβ”€β”€ tests/
β”‚   β”œβ”€β”€ test_parsers.py
β”‚   └── test_integration.py
β”œβ”€β”€ docs/
β”‚   └── usage.md
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ pyproject.toml
└── README.md

Use Cases

  • Recruitment teams use it to monitor fresh Xia job postings for specific skills or locations, so they can reach candidates faster and prioritize outreach based on current demand.
  • HR analytics teams use it to track trends in role titles, locations, and employment types, so they can build data-backed hiring strategies and capacity plans.
  • Market researchers use it to analyze which companies are hiring and how often, so they can infer growth signals and competitive activity in certain sectors.
  • Job boards or aggregators use it to ingest Xing jobs into their own platforms, so they can offer users a richer set of opportunities.
  • Career coaches and consultants use it to monitor demand for target roles across regions, so they can advise clients on realistic expectations and in-demand skills.

FAQs

Q1: What do I need to start using Xing Jobs Scraper? You only need one or more valid Xing job search URLs and a basic runtime environment capable of executing the project (for example, Python with the dependencies listed in requirements.txt). Configure your search URLs and maxItems in an input JSON file, then run the main entrypoint to start collecting data.

Q2: How should I construct the searchUrls parameter? Open the Xing jobs search page in your browser, apply the desired filters (keywords, location, employment type, etc.), and copy the resulting URL from the address bar. Paste that into the searchUrls array. You can provide multiple URLs if you want to combine different role types or regions in a single run.

Q3: What is the purpose of the maxItems setting? maxItems specifies the maximum number of job records to collect across the supplied search URLs. It helps you control runtime and data volume, which is especially useful for quick tests or regular scheduled runs where you only need the latest portion of listings.

Q4: Does this scraper handle changes in page structure? The parser is designed to be resilient to minor structural changes by focusing on core fields like job cards, titles, and metadata containers. However, if Xing significantly modifies their layout or data model, you may need to update the parsing logic in the parsers module to keep the Xing jobs scraper accurate.


Performance Benchmarks and Results

Primary Metric: In a typical environment with residential connectivity, the scraper can process around 300–500 Xing job listings per minute while respecting built-in delays, depending on the complexity of the filters and page size.

Reliability Metric: Under stable network conditions, end-to-end collection success rates of 95–98% per execution are common, with failed requests automatically retried according to the HTTP client and throttling strategy.

Efficiency Metric: A single run with approximately 1,000 job records usually completes within 3–5 minutes and consumes modest CPU and memory, making it suitable for scheduled or containerized workloads.

Quality Metric: Field completeness for core attributes (title, URL, location, employment type, company ID) generally exceeds 97%, while optional fields such as logos or Kununu ratings are captured whenever present, ensuring the dataset is both rich and reliable for downstream analytics.

Book a Call Watch on YouTube

Review 1

"Bitbash is a top-tier automation partner, innovative, reliable, and dedicated to delivering real results every time."

Nathan Pennington
Marketer
β˜…β˜…β˜…β˜…β˜…

Review 2

"Bitbash delivers outstanding quality, speed, and professionalism, truly a team you can rely on."

Eliza
SEO Affiliate Expert
β˜…β˜…β˜…β˜…β˜…

Review 3

"Exceptional results, clear communication, and flawless delivery.
Bitbash nailed it."

Syed
Digital Strategist
β˜…β˜…β˜…β˜…β˜…

Releases

Packages

Contributors