JobScout24.ch Jobs Scraper
Pricing
from $1.19 / 1,000 job scrapeds
JobScout24.ch Jobs Scraper
Scrape job listings from JobScout24.ch by keyword, region, category, and contract type. Get title, company, location, canton, workload, employment type, full description, and more. Export as JSON, CSV, or Excel.
Pricing
from $1.19 / 1,000 job scrapeds
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
JobScout24.ch Jobs Scraper
Scrape job listings from JobScout24.ch — a Swiss job board — into clean, structured JSON. The JobScout24.ch Jobs Scraper pulls the title, company, location, canton, workload, employment type, full description, and publication date for any keyword, category, or contract-type search, with no login and no JobScout24 API.
| Search JobScout24.ch by keyword, professional category, contract type, and workload — or paste a JobScout24.ch URL — and get a structured record per job, with full descriptions, canton, and company details from the listing's own detail page. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Actor: parsebird/jobscout24-ch-jobs-scraper (Apify). Scrapes job listings from jobscout24.ch (Switzerland). Call with ApifyClient.Input JSON fields:searchQueries: string[] — job titles/keywords, each run as a separate search and merged+de-duplicated (default ["Software Engineer"])location: string — Swiss city/town, matched against each job's own location after fetchingregion: string — named Swiss region code (canton group), matched against each job's canton (needs includeJobDetails)category: string — Berufsgruppe code, e.g. "8" = IT (see input schema for the full list)employmentType: string[] — "permanent"|"temporary"|"internship"|"freelance"|"part-time"|"apprenticeship"workloadMin/workloadMax: int (0-100) — Pensum % range, applied after fetchingpublishedSince: "1"|"3"|"7"|"30" — last 24h/3 days/week/30 dayslanguage: "en"|"de"|"fr" (default "en")maxResults: int (default 100, 0 = unlimited) — per keyword; billed rowsincludeJobDetails: bool (default true) — fetch full description, canton, employment type, exact workload, company logo/URLstartUrls: string[] — jobscout24.ch search or single-job URLs; overrides keyword/location/regionOutput: one dataset item per job — title, company, location, canton, workload, workloadMin, workloadMax, employmentType,descriptionSnippet, description, publicationDate, companyLogo, companyUrl, jobId, jobUrl, language, searchQuery, scrapedAt.Example: { "searchQueries": ["Software Engineer"], "maxResults": 50 }API: https://api.apify.com/v2/acts/parsebird~jobscout24-ch-jobs-scraper · Token: https://console.apify.com/account/integrations
What does JobScout24.ch Jobs Scraper do?
JobScout24.ch is a Swiss job board with vacancies across every canton and industry. There is no public JobScout24 API — this JobScout24 scraper reads the site's own search and job-detail pages instead. For every job it extracts:
- 💼 Job — title, employment type (permanent, temporary, internship, freelance, part-time, apprenticeship), and workload (Pensum) range.
- 🏢 Employer — company name, logo, and company profile URL.
- 📍 Location — city and Swiss canton code.
- 📄 Description — the full job description, plus a short snippet.
- 📅 Freshness — the publication date and a direct link to the job.
Common uses: Swiss job-market research, building a jobs board or alert service, canton- and category-level hiring analysis, and monitoring specific employers.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| searchQueries | array | No | ["Software Engineer"] | Job titles or keywords. Each runs a separate search; results are merged and de-duplicated. Up to 50. |
| location | string | No | — | Swiss city or town. Matched against each job's own location after fetching. |
| region | string | No | Any region | Named Swiss region (canton group). Matched against each job's canton — requires includeJobDetails. |
| startUrls | array | No | — | JobScout24.ch search-result or job URLs. Overrides searchQueries, location, and region. |
| category | string | No | Any category | One professional category (Berufsgruppe), e.g. IT, Management, Sales. |
| employmentType | array | No | — | permanent, temporary, internship, freelance, part-time, apprenticeship. Leave empty for all. |
| workloadMin / workloadMax | integer | No | — | Workload percentage range (Pensum), 0–100. Applied after fetching. |
| publishedSince | string | No | Any time | 1 (24h), 3 (3 days), 7 (week), 30 (30 days). |
| language | string | No | en | en, de, or fr — site language for titles and descriptions. |
| maxResults | integer | No | 100 | Maximum jobs per search keyword (0 = unlimited). Billed rows. |
| includeJobDetails | boolean | No | true | Fetch the full description and detail-page fields. Turn off for a faster, lighter scan. |
locationandregionare applied after fetching — JobScout24.ch's own location filter fields render but do not narrow results server-side, so this actor matches them itself against each job's real location and canton for reliability.
Example inputs
Simple keyword search:
{ "searchQueries": ["Software Engineer"], "maxResults": 50 }
Region and category filter:
{"searchQueries": ["Projektleiter"],"region": "2","category": "8","publishedSince": "7","language": "de"}
Part-time permanent roles up to 60% workload, with full descriptions:
{"searchQueries": ["Sachbearbeiter", "Kundenberater"],"region": "1","employmentType": ["permanent", "part-time"],"workloadMin": 40,"workloadMax": 60,"publishedSince": "30","language": "de","maxResults": 500,"includeJobDetails": true}
What data can you extract from JobScout24.ch?
| Field | Description |
|---|---|
| title | Job title as posted |
| company / companyLogo / companyUrl | Employer name, logo, and company profile URL |
| location / canton | City and Swiss canton code (e.g. ZH, GE, TI) |
| workload / workloadMin / workloadMax | Workload display string and percentage range (Pensum) |
| employmentType | Contract type (Permanent position, Part-time, etc.) |
| descriptionSnippet / description | Short summary and the full job description |
| publicationDate | Date the job was published |
| jobId / jobUrl | Unique JobScout24.ch identifier and direct link |
| language / searchQuery / scrapedAt | Output language, the keyword that found this row, and the extraction timestamp |
Output example
{"title": "Software Engineer (m/w/d)","company": "Beispiel AG","location": "Zürich","canton": "ZH","workload": "80% – 100%","workloadMin": 80,"workloadMax": 100,"employmentType": "Permanent position","descriptionSnippet": "We are looking for an experienced software engineer to join our platform team.","description": "We are looking for an experienced software engineer to join our platform team. You will design and build services, collaborate across teams, and own features end to end...","publicationDate": "2026-06-28","companyLogo": "https://media.jobs.ch/images/example/300x150.png","companyUrl": "https://www.jobscout24.ch/en/company/beispiel-ag/12345/","jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890","jobUrl": "https://www.jobscout24.ch/en/job/a1b2c3d4-e5f6-7890-abcd-ef1234567890/","language": "en","searchQuery": "Software Engineer","scrapedAt": "2026-07-04T09:15:00Z"}
Download the dataset as JSON, CSV, Excel, HTML, or XML from the Storage tab or the Apify API.
Use cases
- Swiss jobs board — feed an aggregator or alert service with live JobScout24.ch vacancies.
- Canton and category analysis — measure hiring volume by canton, professional group, and contract type.
- Employer monitoring — track what a specific company posts via its company profile URL.
- Workload benchmarking — compare part-time vs. full-time availability across roles.
- LLM training data — a structured corpus of Swiss job descriptions in English, German, or French.
How it works
- Search — the scraper queries JobScout24.ch for each of your
searchQueries(orstartUrls), applying category, contract-type, and posted-within filters server-side. - Paginate — it walks through result pages until
maxResultsor the end of the listing. - Filter — location, region (canton), and workload bounds are applied to the fetched data.
- Detail — when
includeJobDetailsis on, each job's detail page is fetched for the full description, canton, employment type, exact workload, and company details. - Rows stream to the dataset, de-duplicated across all keywords.
How much does it cost to scrape JobScout24.ch?
This actor is pay per result — charged once per job saved to the dataset.
| Plan | Price per 1,000 jobs |
|---|---|
| Free | $1.99 |
| Bronze | $1.79 |
| Silver | $1.49 |
| Gold | $1.19 |
A small platform Actor start fee also applies per run. Scraping 1,000 jobs on the Free plan costs about $1.99. Apify's monthly free platform usage covers small runs.
How to scrape JobScout24.ch
- Click Try for free and sign in to Apify.
- Enter one or more search keywords.
- Add filters — category, contract type, workload, or posted-within window.
- Set max results per keyword (start low, e.g. 25).
- Leave Fetch full job details on for complete records, or turn it off for a fast scan.
- Click Start, then watch rows appear in the Output tab.
- Export from Storage, or pull results via the API.
Run it via API
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("parsebird/jobscout24-ch-jobs-scraper").call(run_input={"searchQueries": ["Software Engineer"],"maxResults": 50,})for job in client.dataset(run["defaultDatasetId"]).iterate_items():print(job["title"], "-", job["company"], "-", job.get("canton"))
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('parsebird/jobscout24-ch-jobs-scraper').call({searchQueries: ['Projektleiter'],region: '2',category: '8',maxResults: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Schedule recurring runs, add webhooks, or push results to Google Sheets, Slack, Zapier, and Make with Apify integrations.
FAQ
Do I need a JobScout24 account or API key? No. The scraper reads public JobScout24.ch pages only. JobScout24 has no public API — this actor is the alternative.
How current is the data? Live. Each run reads JobScout24.ch at that moment. Use Apify's scheduler to keep a dataset fresh.
What does turning off includeJobDetails change?
The scraper skips each job's detail page, so you get title, company, location, workload, and the job URL, but not canton, employment type, the full description, or company logo/URL — much faster for large listing-only runs.
Why do location and region sometimes return fewer jobs than expected?
Both are matched against each job's real location and canton after fetching, not sent to JobScout24.ch as a server-side filter (its own location filter UI does not reliably narrow results). region also needs includeJobDetails on, since canton only appears on the detail page — the actor turns this on automatically if you set a region.
Why does maxResults sometimes overshoot slightly?
It caps results per search keyword, and the last page of a search is kept in full rather than cut mid-page.
Something's not working. Open an issue on the Issues tab with your input and the run link — we respond quickly.
Is it legal to scrape JobScout24.ch?
JobScout24.ch job listings are public information that any visitor can see without logging in. Scraping publicly available pages is legal in most jurisdictions, and this actor does not access private data or bypass any login. You are responsible for how you use the data — follow JobScout24's Terms of Use and Swiss data-protection law, and consult a lawyer if you are unsure. See Apify's guide on the legality of web scraping.
Related actors
- Homegate.ch Swiss Real Estate Scraper — property listings from Homegate.ch.
- Job-Room.ch Jobs Scraper — vacancies from Switzerland's official job portal.
- Jobbird Jobs Scraper — vacancies from Jobbird.com (Netherlands).
- Jobs.ie Scraper — job listings from Ireland's Jobs.ie.
Browse all ParseBird actors on Apify Store.