Job Room Jobs Search Scraper avatar

Job Room Jobs Search Scraper

Pricing

Pay per usage

Go to Apify Store
Job Room Jobs Search Scraper

Job Room Jobs Search Scraper

Scrape job listings from Job-Room.ch, Switzerland's official job search platform. Extract 23+ fields including job IDs, government registration numbers, status, publication details, and more — perfect for labor market research, recruitment analytics, and employment data aggregation.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Soft Alexist

Soft Alexist

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Job-Room.ch Jobs Search Scraper: Swiss Employment Data at Scale


About Job-Room.ch

Job-Room.ch is Switzerland's premier public employment portal, operated by the Swiss State Secretariat for Economic Affairs (SECO). It centralizes job postings from across the country and integrates with government employment systems (EGOV and AVAM). For researchers, policy analysts, recruiters, and HR professionals, accessing Job-Room data programmatically is invaluable for understanding Swiss labor market trends. The Job-Room.ch Jobs Search Scraper automates this process, delivering structured employment data with government-level fields and reporting metadata.


Overview

The Job-Room.ch Jobs Search Scraper collects job listings from Job-Room.ch's search results and detail pages, extracting 23+ fields per posting. It is designed for:

  • Labor market researchers analyzing employment trends in Switzerland
  • Policy analysts monitoring job market health and sectoral demand
  • Recruitment agencies building proprietary job databases
  • Academic institutions conducting employment studies
  • HR consultants benchmarking Swiss hiring activity
  • Data aggregators feeding multiple job sources into unified platforms

Key strengths include support for large-scale scraping (up to 200 items per URL), automatic error handling via ignore_url_failures, and comprehensive government and administrative metadata fields.


Input Format

The scraper accepts a JSON configuration object specifying which Job-Room pages to scrape:

{
"urls": [
"https://www.job-room.ch/job-search"
],
"ignore_url_failures": true,
"max_items_per_url": 200
}
ParameterTypeDescriptionExample
urlsArrayDirect links to Job-Room.ch search results or filtered pages["https://www.job-room.ch/job-search"]
ignore_url_failuresBooleanIf true, the scraper continues even if some URLs fail; if false, stops on errorstrue
max_items_per_urlIntegerMaximum number of job postings to extract per URL (range: 1–200)200

Best practices:

  • Use search result URLs (e.g., /job-search) or filtered pages (e.g., with region or keyword filters) to target specific subsets
  • Set max_items_per_url to 200 to capture maximum data per run
  • Enable ignore_url_failures: true for robust batch operations

Output Format

Sample output

{
"id": "0d5b6183-5d3f-453c-8e0a-bddb069125f0",
"created_time": "2026-07-09T06:15:24.423",
"updated_time": "2026-07-09T06:15:24.425",
"status": "PUBLISHED_PUBLIC",
"source_system": "API",
"external_reference": "JRQ$677-1247",
"stellennummer_egov": "242461596",
"stellennummer_avam": null,
"fingerprint": null,
"reporting_obligation": false,
"reporting_obligation_end_date": null,
"report_to_avam": false,
"job_center_code": null,
"job_center_user_id": null,
"approval_date": null,
"rejection_date": null,
"rejection_code": null,
"rejection_reason": null,
"cancellation_date": null,
"cancellation_code": null,
"job_content": {
"external_url": "https://ohws.prospective.ch/public/v1/jobs/815aefde-3ba6-4e45-bc71-e0ff22522b95",
"number_of_jobs": "1",
"job_descriptions": [
{
"language_iso_code": "de",
"title": "Technische:r Einkäufer:in",
"description": "100%\n\nunbefristet\n\nStadler bietet vielseitige Möglichkeiten für eine internationale Karriere. Bei Stadler bekommst du die Chance, über dich hinaus zu wachsen, Verantwortung zu übernehmen und grossartige Leistungen im Team zu erbringen. Wir sind auf der Suche nach motivierten Talenten, die mit uns die Zukunft der Mobilität gestalten möchten. Bist du bereit, um mit uns grossartige Dinge zu erreichen?\n\n**DEINE AUFGABENBEREICHE**\n\n<br />\n\n* Beschaffung von fahrwerksspezifischen Komponenten -- effizient und kostenbewusst\n* Steuerung des gesamten Beschaffungsprozesses von der Anfrage bis zur Rechnungsfreigabe\n* Du behältst die Lagerbestände, Liefertermine und KPIs stets im Blick\n* Selbständige Verhandlung von Einzelkomponenten und Verträgen mit unseren Zulieferpartnern\n* Stringentes Reporting in die einzelnen Projekte\n\n<br />\n\n**DEINE BERUFLICHEN ERFAHRUNGEN**\n\n<br />\n\n* Technische Grundausbildung mit kaufmännischer Weiterbildung\n* Mindestens 5 Jahre Erfahrung im Einkauf, idealerweise im Industrieumfeld\n* Verhandlungssicher in Deutsch und Englisch (mündlich \\& schriftlich)\n* Zuverlässig, durchsetzungsstark, verhandlungsgewandt und voller Tatendrang\n* Du bist ein Macher und pflegst einen proaktiven Austausch\n* Kenntnisse in der Materialdisposition sind von Vorteil\n\n<br />\n\n**UNSER VERSPRECHEN AN DICH**\n\n<br />\n\n* Ein kollegiales Arbeitsumfeld und die Zusammenarbeit in qualifizierten und leidenschaftlichen Teams\n* Einen Handlungs- und Gestaltungsspielraum, in welchem Du die Erwartungen an Deine Arbeit umsetzen kannst\n* Eine wertschätzende Kultur für Deine Leistungen\n* Du arbeitest für ein führendes Unternehmen, welches die Zukunft der globalen Mobilität täglich prägt\n\n<br />\n\n**DEINE BENEFITS**\n\nBei Stadler bekommst Du eine Vielfalt an Benefits, wie zum Beispiel\n\n* Finanzielle Zuschüsse für ZVV- oder SBB --Abo und Fitness-Abo\n* Unterstützung von Weiterbildungsmöglichkeiten (finanziell oder mit Teilzeitmöglichkeiten)\n* Verpflegungsmöglichkeiten in der Migros Kantine\n\n<br />\n\nDEIN STANDORT\n\nWerde Teil unseres Teams von Stadler in Bussnang, das als Kompetenzzentrum für verschiedene Produkttypen dient und der Division Schweiz angehört.\n\nDEINE ANSPRECHPERSON\n\n**Borhan Bas**\nHR Business Partner\n+41 79 581 03 55\n"
}
],
"company": {
"name": "Stadler Bussnang AG",
"street": "Ernst-Stadler-Strasse 4",
"house_number": null,
"postal_code": "9565",
"city": "Bussnang",
"country_iso_code": "CH",
"post_office_box_number": null,
"post_office_box_postal_code": null,
"post_office_box_city": null,
"phone": null,
"email": null,
"website": null,
"surrogate": false
},
"employment": {
"start_date": null,
"end_date": null,
"short_employment": false,
"immediately": true,
"permanent": true,
"workload_percentage_min": "100",
"workload_percentage_max": "100",
"work_forms": []
},
"location": {
"id": null,
"remarks": null,
"city": "Bussnang",
"postal_code": "9565",
"communal_code": "4921",
"region_code": "TG08",
"canton_code": "TG",
"country_iso_code": "CH",
"coordinates": {
"lon": "9.082",
"lat": "47.558"
}
},
"occupations": [
{
"avam_occupation_code": "101686",
"work_experience": "NO_EXPERIENCE",
"education_code": null,
"qualification_code": null
}
],
"language_skills": [],
"apply_channel": {
"raw_post_address": null,
"post_address": null,
"email_address": null,
"phone_number": null,
"form_url": "https://ohws.prospective.ch/public/v1/redirect/815aefde-3ba6-4e45-bc71-e0ff22522b95/ats",
"additional_info": null
},
"public_contact": null
},
"publication": {
"start_date": "2026-07-09",
"end_date": "2026-08-07",
"eures_display": false,
"eures_anonymous": false,
"public_display": true,
"restricted_display": true,
"company_anonymous": false
},
"owner": null,
"from_url": "https://www.job-room.ch/job-search"
}

Each scraped job returns 23 fields spanning job content, administrative metadata, and government tracking information:

Core Identification

FieldMeaningExample
IDUnique Job-Room identifier for the posting12345678
FingerprintHash-based job fingerprint for deduplicationa1b2c3d4e5f6
External ReferenceThird-party reference ID (if applicable)EXT-2024-001

Timeline & Status

FieldMeaningExample
Created TimeWhen the job was posted to Job-Room2024-01-15T09:30:00Z
Updated TimeLast update timestamp2024-01-20T14:22:00Z
StatusCurrent posting status (e.g., published, expired, withdrawn)published
Approval DateDate job was approved by moderators2024-01-15T10:00:00Z
Rejection DateIf rejected, the rejection datenull or 2024-01-15
Cancellation DateDate the job was withdrawn or fillednull or 2024-02-15

Swiss Government & Reporting

FieldMeaningExample
Stellennummer EGOVSwiss official employment number (EGOV system) — used for government labor statisticsCH-GEN-2024-5678
Stellennummer AVAMSwiss unemployment insurance registry number (AVAM — "Arbeitslosenversicherung AVAM")AVAM-01-2024-9876
Reporting ObligationWhether this job triggers mandatory reporting to AVAMtrue
Reporting Obligation End DateDeadline for reporting requirements2024-03-15
Report To AVAMConfirmation that the job was reported to AVAMtrue

Administrative & Processing

FieldMeaningExample
Source SystemSystem origin (e.g., "jobroom", "partner_feed")jobroom
Job Center CodeRegional employment center identifierZH-001
Job Center User IDID of the employment center staff member handling the postingstaff-user-456
Rejection CodeStandardized code if job was rejected (e.g., compliance, incomplete)INVALID_DATA
Rejection ReasonHuman-readable rejection explanationMissing required fields
Cancellation CodeReason for withdrawal (e.g., filled, no longer needed)POSITION_FILLED

Job Content & Publication

FieldMeaningExample
Job ContentFull job description, requirements, salary (if provided), and employer detailsLong HTML/text block
PublicationPublication metadata (e.g., visibility settings, featured status){"visible": true, "featured": false}
OwnerEmployer/organization details (name, contact, registration){"name": "Acme Corp", "contact": "hr@acme.ch"}

How to Use

  1. Identify URLs — Browse Job-Room.ch and identify search results or filtered pages (e.g., by region, industry, or keyword). Copy the page URL.
  2. Build the configuration — Add URLs to the urls array and set max_items_per_url (recommend: 200).
  3. Set error handling — Enable ignore_url_failures: true to skip failed URLs without stopping the entire run.
  4. Execute the scraper — Start the run and monitor the log for progress.
  5. Export results — Download scraped data in JSON, CSV, or Excel format.

Troubleshooting:

  • If results are incomplete, verify the URL is a valid Job-Room search page (not a single job detail).
  • Government fields (EGOV, AVAM) may be null for listings that don't trigger reporting obligations.
  • Use status filters to exclude old or expired postings.

Use Cases & Applications

  • Labor market dashboards: Monitor Swiss job creation by region, sector, and qualification level
  • Policy impact analysis: Measure effects of labor market reforms on job supply
  • Talent forecasting: Identify hiring trends and emerging skills demand
  • Academic research: Study employment patterns, wage trends, and sectoral shifts
  • Compliance monitoring: Track reporting obligation compliance for employment centers

The comprehensive government metadata ensures data quality and regulatory compliance, making it ideal for official reporting and academic research.


Important Notes

The output includes government-mandated fields (EGOV, AVAM, reporting obligations) that reflect Switzerland's employment administration framework. These fields are essential for:

  • Official labor statistics compilation
  • Unemployment insurance (AVAM) compliance
  • Regional employment center reporting
  • Legislative employment data tracking

Not all postings include these fields—they are populated only when applicable under Swiss law.


Conclusion

The Job-Room.ch Jobs Search Scraper provides structured access to Switzerland's official employment data, combining public job content with administrative metadata. Whether you're conducting labor market research, building a job aggregator, or analyzing Swiss hiring trends, this scraper delivers reliable, comprehensive data at scale. Start scraping today and unlock insights from one of Europe's most transparent employment platforms.