Jobs.ch Scraper — Swiss Jobs, Workload & Apply URL avatar

Jobs.ch Scraper — Swiss Jobs, Workload & Apply URL

Pricing

from $2.49 / 1,000 job listings

Go to Apify Store
Jobs.ch Scraper — Swiss Jobs, Workload & Apply URL

Jobs.ch Scraper — Swiss Jobs, Workload & Apply URL

Jobs.ch scraper for Swiss job listings. Search by keyword and city, then export title, company, place, workload percent, CHF salary when stated, description, and apply URL as JSON.

Pricing

from $2.49 / 1,000 job listings

Rating

0.0

(0)

Developer

Andrej Kiva

Andrej Kiva

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Disclaimer: Unofficial tool — not affiliated with, sponsored by, or endorsed by JobCloud AG or its affiliates. Data is read from publicly accessible job-search and job-detail pages only. No login. You are responsible for complying with applicable law (including GDPR where personal data appears) and the site’s terms. No warranty on accuracy or availability. Provided for informational and research use.

Jobs.ch scraper for public Swiss job listings. A practical jobs.ch API alternative: search by keyword, city, and workload percent, or paste a search / job URL. Export title, company, place, workload %, a CHF salary when the text states one, the description, and the apply URL as JSON, CSV, or Excel. Fast HTTP, no headless browser, no login. Run it with Python, Node.js, cURL, or Apify MCP.

Use it for Swiss recruiting coverage, workload filters (80–100%), and a daily watch of new job ids.

ActorFocus
Jobs.ch Scraper ◄── you are hereSwiss jobs.ch listings, workload, apply URL
Stepstone Jobs ScraperDACH commercial job board
Arbeitsagentur Jobs ScraperGermany public employment board
LinkedIn Jobs ScraperPublic LinkedIn job listings
France Travail ScraperPublic France Travail offers
InfoJobs Job ScraperSpain job listings

When to use this Actor

  • You need a jobs.ch scraper that returns structured Swiss listings
  • You want keyword + city + workload % without an employer account
  • You need the description and apply URL on the same row as the company and place
  • You run a daily monitor and only want job ids that were not seen last time

When not to use this Actor

Key features

  • Public search JSON plus the public job page (description, apply URL, CHF amount when stated)
  • Workload percent from the listing (80-100%)
  • Place name search. A name that is both a city and a canton matches both on the public index
  • English, German, or French job-page text
  • Monitor mode stores seen job ids and bills only new rows
  • 256 MB HTTP run, proxy off by default

Input

FieldWhat it does
keywordJob title, skill, or words to search
locationCity or region (Zurich, Bern, Genève)
workloadMin / workloadMaxKeep jobs whose percent range overlaps this band
postedWithinDaysKeep jobs published in this window. Sorted by date
companyNameOptional case-insensitive company match
languageen, de, or fr for the job page text
sortByrelevance or date. Monitor mode uses date
startUrlsSearch or job URLs. They replace keyword and location
includeDetailsFetch description, apply URL, and salary text. Default on
maxItems / maxPagesCaps. The search returns 20 jobs per page
monitorModePush only new job ids on later runs
{
"keyword": "developer",
"location": "Zurich",
"workloadMin": 80,
"workloadMax": 100,
"language": "en",
"maxItems": 50,
"includeDetails": true,
"proxyConfiguration": { "useApifyProxy": false }
}

Job URL example inside a run input:

{
"startUrls": [
{ "url": "https://www.jobs.ch/en/vacancies/?term=developer&location=Zurich" }
],
"maxItems": 20
}

Output

One dataset row is one job.

FieldMeaning
jobIdPublic job id
title, company, companyId, placeCard identity
workloadMin, workloadMax, workloadTextStated workload percent
publicationDateWhen the listing was published
descriptionJob text from the public page
salaryText, salaryMin, salaryMax, salaryPeriodCHF amount when the text states one. Period is HOUR, MONTH, or YEAR
applyUrlExternal apply link when the page shows one
urlPublic job page
{
"jobId": "5becfe9b-5978-45d9-92e9-00c07d95e81c",
"title": "System Engineer Cloud Technologies (80 - 100%)",
"company": "BELIMO Automation AG",
"place": "Hinwil",
"workloadText": "80-100%",
"workloadMin": 80,
"workloadMax": 100,
"salaryText": "CHF 90'000 – 110'000 per year",
"salaryMin": 90000,
"salaryMax": 110000,
"salaryPeriod": "YEAR",
"applyUrl": "https://jobs.example/apply/4473",
"url": "https://www.jobs.ch/en/vacancies/detail/5becfe9b-5978-45d9-92e9-00c07d95e81c/"
}

Use cases

  • Build a daily list of new developer or nursing roles around Zurich at 80–100%
  • Collect company, place, workload, and the apply link for a recruiting CRM
  • Read CHF amounts that the job text actually states, next to the description
  • Watch one keyword and skip job ids you already stored

Integration examples

Node.js

import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor("crawloop/jobs-ch-scraper").call({
keyword: "developer",
location: "Zurich",
workloadMin: 80,
maxItems: 30,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient()
run = client.actor("crawloop/jobs-ch-scraper").call(run_input={
"keyword": "developer",
"location": "Zurich",
"maxItems": 30,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(len(items), items[0].get("workloadText"))

cURL

curl "https://api.apify.com/v2/acts/crawloop~jobs-ch-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"keyword\":\"Pflege\",\"location\":\"Bern\",\"maxItems\":20}"

MCP and AI assistants

Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call this Actor by its Store name crawloop/jobs-ch-scraper.

Example prompts:

  • "Run Jobs.ch Scraper for developer in Zurich, workload 80-100, max 20, and return title, company, workload, and apply URL as JSON"
  • "Scrape new Pflege jobs in Bern and summarize place and workload percent"
  • "Chain Jobs.ch Scraper then Stepstone Jobs Scraper for the same keyword across Swiss and DACH boards"

Suite next step

For other DACH commercial listings, run Stepstone Jobs Scraper after this Actor.

FAQ

Does this use an employer API key? No. It reads the public search JSON and the public job page. No login.

Why can Zurich include more than the city? On the public search index, a place name that is both a city and a canton matches both. Winterthur can appear in a Zurich search for that reason.

Where does the CHF salary come from? Only when the job text states an amount. Many listings describe pay without a number. Those rows leave the salary fields empty. Workload percent is separate and comes from the listing itself.

What does monitor mode bill? Only new job rows. A later run that finds nothing new still starts, and it does not charge a job row for ids already stored. If you change the keyword or workload, reset the monitor store.