JobScout24 Scraper: Stellenanzeigen als CSV oder Excel exportieren
Du suchst Stellenanzeigen von JobScout24.ch und willst sie in Excel oder in eine eigene Auswertung bekommen? Der JobScout24.ch Scraper holt die Anzeigen zu deinen Suchbegriffen und deiner Region und liefert sie als Tabelle: Titel, Firma, Ort, Kanton, Pensum, Datum und Link zur Anzeige. Ohne Code, in wenigen Minuten.
In diesem Tutorial
Das bekommst du
Auf JobScout24.ch gibt es keine Export-Funktion für Stellenanzeigen. Der JobScout24-Scraper holt die Anzeigen zu deinen Suchbegriffen und legt sie als Tabelle ab, die du als CSV, Excel oder JSON herunterladen kannst. Jede Zeile ist eine Anzeige, hier gekürzt und mit Platzhaltern zur Veranschaulichung der Struktur:
{
"id": "...",
"title": "...",
"company": "...",
"location": "...",
"canton": "BE",
"employment_type": "...",
"workload_min": 80,
"workload_max": 100,
"salary_text": "...",
"posted_at": "...",
"source_url": "https://www.jobscout24.ch/...",
"source_platform": "jobscout24.ch",
"search_query": "..."
}Die Werte hängen von der einzelnen Anzeige ab. Ein echter Lauf mit Zahlen steht weiter unten im Beispiel.
Alle Felder im Überblick
So sind die Felder laut Ausgabe-Schema des Actors aufgebaut. Ohne includeJobDetails fehlen die Felder, die nur auf der Detailseite stehen (zum Beispiel der volle Anzeigentext und die Kontaktangaben).
| Feld | Typ | Inhalt |
|---|---|---|
id | Text | Eindeutige Anzeigen-ID |
title | Text | Titel der Anzeige |
company | Text | Arbeitgeber oder inserierende Firma |
location / canton / country | Text | Ort, Kanton als Kürzel (BE, ZH ...) und Land |
employment_type | Text | Beschäftigungsart, zum Beispiel full-time oder part-time |
workload_min / workload_max | Zahl | Pensum in Prozent |
remote_option | Text | Home-Office-Angabe, falls vorhanden |
salary_text | Text | Gehaltsangabe als Text, falls die Anzeige eine nennt |
description_snippet / description_full / description_md | Text | Kurzbeschreibung und voller Anzeigentext (nur mit Detailseite) |
requirements | Liste | Genannte Anforderungen, falls erkannt |
posted_at / expires_at | Text | Veröffentlichungs- und Ablaufdatum |
contact_salutation, contact_firstname, contact_lastname, contact_email, contact_phone, contact_position, contact_raw | Text | Kontaktangaben, falls die Anzeige sie nennt |
apply_url / apply_email | Text | Bewerbungslink und Bewerbungs-E-Mail, falls angegeben |
company_url | Text | Firmenprofil auf JobScout24 |
company_description, company_rating, company_review_count, company_social_urls, company_benefits | Text / Zahl / Liste | Firmenangaben, soweit auf JobScout24 vorhanden |
top_listing / job_status | Wahrheitswert / Text | Ob die Anzeige als Top-Inserat markiert ist, und ihr Status |
source_url / source_platform | Text | Link zur Originalanzeige und Plattform (jobscout24.ch) |
search_query / scraped_at | Text | Suchbegriff, der die Anzeige gefunden hat, und Zeitpunkt des Abrufs |
Beispiel: Informatik-Stellen in Bern
Du suchst Informatik-Stellen rund um Bern und willst wissen, wer inseriert und wie viele Stellen es gibt. Wir haben die Suche einmal lokal laufen lassen (21.10.2026): Suchbegriff „Informatiker“, Region Bern, neueste zuerst, mit Detailseiten, begrenzt auf 300 Anzeigen. Das Ergebnis:
- 298 Anzeigen in der Tabelle, von 138 Firmen. Der Actor las 15 Trefferseiten mit je 24 Anzeigen und nahm die ersten 300; 2 davon waren beim Abruf offline und wurden übersprungen.
- 65 Anzeigen sind im Kanton Bern, 59 in Zürich. Die Anzeigen verteilen sich auf 23 Kantons- und Regionsangaben. Die Region Bern ist also keine strenge Kantonsgrenze.
- Eine einzelne inserierende Firma, yellowshark, hat 81 Anzeigen (27,2 Prozent). Ohne sie bleiben 217 Anzeigen von 137 Firmen.
- 255 Anzeigen nennen ein Pensum. Bei 132 ist es genau 100 Prozent, bei 123 beginnt es unter 100 Prozent, meist als Spanne wie 80 bis 100. Nur 4 Anzeigen sind als
part-timemarkiert, das Feldemployment_typetaugt dafür also nicht. Nimmworkload_min. - 83 Anzeigen nennen ein Jahresgehalt in CHF. Der Median der Untergrenze liegt bei 90 000, der der Obergrenze bei 105 000.
- 101 Anzeigen sind höchstens 7 Tage alt (ab 14.10.2026), 24 stammen vom Lauftag. Einige ältere Anzeigen stehen trotzdem dabei, 14 sind vor dem 1. Juli 2026 erschienen.
Das war der Input:
{
"searchQueries": [
"Informatiker"
],
"region": "bern",
"sortBy": "newest",
"maxResultsPerQuery": 300,
"includeJobDetails": true
}searchQueries: ein oder mehrere Suchbegriffe, jeder läuft als eigene Suche.region: eine der Regionen des Actors, hierbern.sortBy:newestsortiert die neuesten Anzeigen nach oben.maxResultsPerQuery: Obergrenze pro Suchbegriff. Hier war sie mit 300 erreicht, die Suche hätte also mehr Treffer geliefert.includeJobDetails:trueholt zusätzlich die Detailseite jeder Anzeige.
Die Kosten dieses Laufs: 0,00005 $ + 298 x 0,003 $ = 0,89405 $, also etwa 0,89 $ (Preise live aus dem Apify Store, Stand 21.10.2026). Mehr dazu im Abschnitt Kosten.
Die Auswertung kannst du in Excel machen. Oder du lässt Claude das über den Apify-MCP-Server erledigen (mehr dazu in den weiterführenden Links). Ein Prompt dafür:
Nutze den Actor santamaria-automations/jobscout24-ch-scraper über den Apify MCP Server.
Bevor du den Lauf startest, sag mir, was er kostet, und warte auf mein OK.
Input:
{"searchQueries": ["Informatiker"], "region": "bern", "sortBy": "newest", "maxResultsPerQuery": 300, "includeJobDetails": true}
Hole alle Anzeigen, die der Lauf liefert (bis 300). Dann:
1. Zähle die Anzeigen und die verschiedenen Firmen (Feld company).
2. Zeige die 10 Firmen mit den meisten Anzeigen.
3. Zähle die Anzeigen pro Kanton (Feld canton) und nenne die Zahl für BE.
4. Zähle, wie viele Anzeigen ein Pensum haben (workload_min gefüllt) und wie viele davon unter 100 Prozent beginnen.
5. Zähle die Anzeigen mit salary_text und nenne den Median von Untergrenze und Obergrenze.
Rechne nur mit den gelieferten Daten und nenne die Zahlen als Tabelle.Apify-Konto anlegen
- Öffne die Seite des JobScout24-Scrapers auf Apify.
- Klicke auf Try for free und registriere dich mit Google oder E-Mail.
- Du landest in der Apify Console im Tab Input des Actors. Für kleine Läufe reicht das monatliche Gratis-Guthaben des Free-Plans.
Suche und Region eintragen
Im Feld searchQueries trägst du ein oder mehrere Suchbegriffe ein. Jeder Begriff läuft als eigene Suche, doppelte Anzeigen werden über alle Begriffe hinweg entfernt. Die Region wählst du bei region aus. Ein kleiner Testlauf sieht so aus:
{
"searchQueries": ["Informatiker"],
"region": "bern",
"maxResultsPerQuery": 20,
"sortBy": "newest",
"includeJobDetails": true
}maxResultsPerQuery: Obergrenze pro Suchbegriff (Standard 100, 0 heisst unbegrenzt).maxResults: Obergrenze über alle Suchbegriffe zusammen (0 heisst unbegrenzt).sortBy:newest(Standard) sortiert nach Datum, die neuesten zuerst. Weitere Werte sindrelevance,title,companyundlocation.includeJobDetails:true(Standard) holt zusätzlich die Detailseite jeder Anzeige.falseist schneller, liefert aber weniger Felder.
maxResultsPerQuery auf 10 bis 30. So siehst du in kurzer Zeit, ob die Treffer zu deinem Suchbegriff passen, und zahlst nur wenige Cent.Actor starten und Ergebnis ansehen
Klicke unten auf Save and Run. Auf der Lauf-Seite siehst du im Tab Log den Fortschritt, im Tab Dataset die Ergebnisse als Tabelle. Mehrere Suchbegriffe in einem Lauf sehen so aus:
{
"searchQueries": ["Informatiker", "Software Engineer", "System Engineer"],
"region": "bern",
"maxResultsPerQuery": 50,
"includeJobDetails": false
}Daten exportieren
- Öffne im Lauf den Tab Dataset.
- Klicke auf Export.
- Wähle das Format: CSV, Excel, JSON und weitere stehen zur Auswahl. Mit der Feld-Auswahl exportierst du nur die Spalten, die du brauchst, zum Beispiel
title,company,location,workload_minundsource_url.
Welche Filter es gibt
Der Actor filtert bei der Suche nach diesen Angaben:
- Suchbegriff (
searchQueries) und Region (region): Zürich, Bern, Basel, Aargau, Ostschweiz, Zentralschweiz, Romandie, Tessin, Graubünden, Wallis oder Remote. - Kategorie (
category): zum Beispiel IT, Finanzen, Verkauf, Gesundheit oder Bau. - Beschäftigungsart (
employmentType): full-time, part-time, temporary, apprenticeship oder internship. - Alter der Anzeige (
postedWithinDaysodermaxAgeHours): nur Anzeigen der letzten N Tage oder Stunden. JobScout24 zeigt das Alter nur in ganzen Tagen, ohne Detailseiten giltmaxAgeHoursdeshalb pro Kalendertag. - Titel (
titleFilter): kommagetrennte Begriffe, zum Beispiel „Engineer, Entwickler“. Behalten wird, wessen Titel einen Begriff enthält. Aussortierte Anzeigen werden vor dem Abruf der Detailseite entfernt, du zahlst dafür keine Details. - Sortierung (
sortBy). - Einzelne Anzeigen (
directUrls): zum Beispiel um zu prüfen, ob eine Stelle noch online ist.
Per API und automatisch abrufen
Du kannst den Actor auch aus eigenen Skripten, n8n oder Make aufrufen. Dieser Aufruf startet einen Lauf und gibt die Ergebnisse direkt zurück (Apify-Endpunkt run-sync-get-dataset-items):
curl -X POST "https://api.apify.com/v2/acts/santamaria-automations~jobscout24-ch-scraper/run-sync-get-dataset-items?token=DEIN_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchQueries": ["Informatiker"], "region": "bern", "sortBy": "newest", "maxResultsPerQuery": 100}'Deinen API-Token findest du in der Apify Console unter Settings → API & Integrations. Für Abrufe, die regelmässig laufen sollen, legst du in der Console unter Schedules einen Zeitplan an. Setze sortBy auf newest, postedWithinDays auf die Länge deines Intervalls und vergleiche die Ergebnisse mit dem letzten Abruf (Feld id), damit du nur neue Anzeigen weiterverarbeitest.
Was das kostet
Der Actor rechnet pro Ergebnis ab (Preise live aus dem Apify Store, Stand 21.10.2026):
- Start: 0,00005 $ pro Lauf.
- Ergebnis im Dataset: 0,003 $ pro Anzeige. Der Preis ist derselbe mit und ohne Detailseiten.
Rechenbeispiel für die Suche oben mit 298 Anzeigen: 0,00005 $ + 298 x 0,003 $ = 0,89405 $, also etwa 0,89 $. Annahmen: jede Anzeige wird einmal berechnet, ein Startereignis pro Lauf. Die aktuellen Preise findest du immer auf der Apify-Seite des Actors.
Wofür Leute die Daten nutzen
Recruiting
Sieh, welche Firmen in deiner Region für ein Berufsbild Leute suchen, wie viele Stellen offen sind und welche Pensen sie anbieten. Die Spalte company zeigt auch, wenn eine Firma viele Anzeigen auf einmal schaltet, wie im Beispiel.
Marktbeobachtung
Lass den Lauf regelmässig laufen und zähle, wie viele Stellen pro Woche und Kanton dazukommen. Wenn eine Anzeige ein Gehalt nennt, steht es als Text in salary_text.
Stellen-Überwachung
Mit directUrls prüfst du eine Liste von Anzeigen-Links und siehst, welche noch online sind. Offline Anzeigen werden übersprungen.
Häufige Fragen
Brauche ich Programmierkenntnisse für den JobScout24-Scraper?
Nein. In der Apify Console füllst du ein Formular aus, klickst auf Save and Run und lädst die Tabelle herunter. Code brauchst du nur, wenn du den Actor per API in ein eigenes System einbauen willst.
Wie viele Anzeigen kann ich pro Lauf holen?
Der Actor holt die Trefferliste seitenweise, im Beispiellauf mit 24 Anzeigen pro Seite, und hört bei höchstens 100 Seiten auf. Mit maxResultsPerQuery begrenzt du jeden Suchbegriff, mit maxResults den ganzen Lauf. Der Standard ist 100 pro Suchbegriff, 0 heisst unbegrenzt.
Warum stehen in der Tabelle auch Stellen aus anderen Kantonen?
Der Filter region schränkt die Suche auf JobScout24 ein, ist aber keine strenge Kantonsgrenze. Im Beispiellauf mit region bern waren 65 von 298 Anzeigen im Kanton Bern, die übrigen verteilten sich auf 22 weitere Kantone und Regionen. Filtere nach dem Lauf auf die Spalte canton, wenn du nur einen Kanton brauchst.
Sind Kontaktpersonen in der Tabelle enthalten?
Der Actor kann Kontaktangaben von der Detailseite lesen, wenn eine Anzeige sie nennt. Im Beispiellauf war bei keiner der 298 Anzeigen eine Kontakt-E-Mail oder Telefonnummer gefüllt, 5 Anzeigen hatten eine Bewerbungs-E-Mail und 11 einen Bewerbungslink. Prüfe die Datenlage für deine Suche selbst.
Was kostet der JobScout24-Scraper?
Pay-per-Event: 0,00005 $ für den Start und 0,003 $ pro Ergebnis im Dataset. Der Beispiellauf mit 298 Anzeigen kostet damit 0,00005 $ + 298 x 0,003 $ = 0,89405 $, also etwa 0,89 $.
Darf ich die Daten verwenden?
Das hängt von deinem Anwendungsfall ab, besonders bei Angaben zu Kontaktpersonen. In der Schweiz gelten das nDSG und das UWG, im EU-Raum die DSGVO. Das ist keine Rechtsberatung. Prüfe das für deinen Fall, bevor du Daten speicherst oder weiterverwendest.
Weiterführende Links
- JobScout24.ch Scraper, Actor-Seite: Eingabefelder, Ausgabefelder und Preise im Überblick.
- JobScout24.ch Scraper auf Apify: Der Actor mit Dokumentation und allen Parametern.
- jobs.ch Scraper: Stellenanzeigen exportieren: Das gleiche Vorgehen für jobs.ch.
- Arbeit.Swiss Scraper, Actor-Seite: Stellen von arbeit.swiss, der Schweizer Stellenplattform des Bundes.
- How to Scrape Every Job Online (Englisch): Stellenanzeigen von 110+ Jobbörsen mit einem Aufruf.