jobup.ch Scraper
Pricing
from $1.30 / 1,000 results
jobup.ch Scraper
[💰 $1.3 / 1K] Extract job listings from jobup.ch, Switzerland's #1 job board — titles, companies, salary clues, workload %, contract type, locations, and full descriptions. Filter by keyword, location, contract, and workload.
Pricing
from $1.30 / 1,000 results
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Pull job listings from jobup.ch — Switzerland's #1 job board — at scale, with full descriptions, direct apply links, employer details, workload percentages, and contract types for every posting across the country. jobup.ch is trilingual, so titles and descriptions come back in the language the employer published them (German, French, or English). Built for Swiss recruiters, HR-tech and job-aggregator teams, and labor-market researchers who need fresh, structured jobup.ch data without rebuilding their pipeline every time the site ships a new layout.
Why This Scraper?
- Workload-percentage range filtering (0–100%) — set a minimum and maximum workload to isolate Swiss part-time roles (e.g. 60–80%) or full-time only (90–100%). This is the facet that defines the Swiss job market, and it is sent straight to jobup.ch's own search.
- Five contract types, server-side filtered — permanent, temporary/fixed-term, internship, freelance/contract, and apprenticeship. The filter runs on jobup.ch, so you only collect — and only pay for — jobs that match.
- Full job descriptions plus direct apply URLs — every detail-enriched posting returns the complete description as clean plain text and HTML, alongside the employer's real external application link.
- Trilingual output (German / French / English) — jobup.ch serves all of Switzerland, and each posting comes back in the language the employer wrote it, with localized labels honoring your chosen site language.
- Employer identity on every row — company name, employer ID, and logo URL, so you can group postings by company or enrich an existing employer database.
- Publication-date windows down to 24 hours — limit to the last 1, 3, 7, 14, or 30 days to capture only fresh openings and skip stale reposts.
- Canton and region tagging — each job carries its city, canton/region code, and postal code, ready for geographic roll-ups across all 26 Swiss cantons.
- Newest-first or relevance sorting — order by publication date for monitoring pipelines, or by relevance for keyword discovery.
- Up to ~100,000 jobs per run — paste any jobup.ch search or job-detail link as a Start URL, or just type a keyword and location; pagination runs automatically to the cap.
Use Cases
Recruitment & Sourcing
- Build live talent-pipeline feeds for specific roles and cantons
- Monitor competitor job postings to track hiring momentum
- Pull direct apply URLs in bulk for outreach and ATS import
- Spot newly posted roles within the last 24 hours
HR-Tech & Job Aggregators
- Power a job board or meta-search with structured Swiss listings
- Keep an aggregator index fresh with newest-first daily pulls
- Normalize trilingual postings into one clean schema
Labor-Market Research
- Track Swiss hiring trends by canton, contract type, and workload
- Quantify the part-time vs. full-time split using workload percentages
- Analyze posting volume over publication-date windows
Relocation & Talent Mobility
- Surface roles open to international candidates across Switzerland
- Compare opportunity density between Zürich, Geneva, and other regions
- Filter by workload for candidates seeking part-time or flexible roles
Competitive Salary & Demand Intelligence
- Map which employers are hiring most aggressively by category
- Measure demand for specific skills via keyword volume over time
- Benchmark contract-type mix across industries
Getting Started
Simple Keyword Search
Just a keyword and a location:
{"searchTerm": "software engineer","location": "Zürich","maxResults": 50}
Filtered Part-Time Search
Permanent and temporary roles between 60% and 80% workload, posted in the last week, newest first:
{"searchTerm": "marketing","location": "Genève","employmentType": ["permanent", "temporary"],"workloadMin": 60,"workloadMax": 80,"publishedSince": "7","sortBy": "date","maxResults": 200}
Using jobup.ch URLs
Paste any jobup.ch search page or individual job posting — these override the keyword and location fields:
{"startUrls": ["https://www.jobup.ch/en/jobs/?term=infirmier&location=Lausanne","https://www.jobup.ch/en/jobs/detail/abc123-def456/"],"includeDescription": true,"maxResults": 100}
Input Reference
Search
| Parameter | Type | Default | Description |
|---|---|---|---|
searchTerm | string | "software engineer" | Job title, skill or keyword. Leave empty to browse all jobs. Ignored when Start URLs are provided. |
location | string | "Zürich" | City, canton or region, e.g. "Zürich", "Genève" or "Lausanne". Leave empty to search all of Switzerland. Ignored when Start URLs are provided. |
startUrls | array | [] | One or more jobup.ch URLs — search result pages or individual job postings. When provided, these override Search Keywords and Location. |
language | select | English | Site language for titles and labels: English, German (Deutsch), or French (Français). |
Filters
| Parameter | Type | Default | Description |
|---|---|---|---|
employmentType | array | [] | Contract types to collect: Permanent position, Temporary / fixed-term, Internship, Freelance / contract, Apprenticeship. Leave empty to include all. |
workloadMin | integer | null | Minimum workload percentage (0–100). For example, 80 keeps roles of 80% and up. Leave empty for no minimum. |
workloadMax | integer | null | Maximum workload percentage (0–100). For example, 60 keeps part-time roles up to 60%. Leave empty for no maximum. |
publishedSince | select | Any time | Only collect jobs published within this window: Any time, Last 24 hours, Last 3 days, Last week, Last 2 weeks, Last 30 days. |
sortBy | select | Most relevant | Result order: Most relevant or Newest first. |
Output Options
| Parameter | Type | Default | Description |
|---|---|---|---|
includeDescription | boolean | true | Fetch the complete job description, requirements, and contact details from each posting. Turn off for a faster, lighter run that returns only the summary fields. |
maxResults | integer | 200 | Maximum number of jobs to collect. Set to 0 to collect every matching job (a broad search collects up to about 100,000 jobs, after which the run stops automatically). You are charged per job returned. |
Output
Here's a representative result with full descriptions enabled:
{"jobId": "abc123-def456","title": "Senior Software Engineer","company": "Example AG","companyId": "78421","companyLogo": "https://www.jobup.ch/logos/example-ag.png","location": "Zürich","region": "ZH","zipcode": "8005","street": "Bahnhofstrasse 1","workload": "80 – 100%","workloadMin": 80,"workloadMax": 100,"employmentType": "permanent","categories": ["IT / Telecommunication", "Software Development"],"languageSkills": ["German", "English"],"description": "We are looking for a Senior Software Engineer to join our team in Zürich...","descriptionHtml": "<p>We are looking for a Senior Software Engineer...</p>","contactName": "Maria Müller","contactPhone": "+41 44 123 45 67","applyUrl": "https://careers.example.ag/apply/senior-software-engineer","isPaid": true,"publicationDate": "2026-05-28T08:00:00Z","initialPublicationDate": "2026-05-20T08:00:00Z","publicationEndDate": "2026-06-28T08:00:00Z","scrapedAt": "2026-06-02T14:30:00Z","url": "https://www.jobup.ch/en/jobs/detail/abc123-def456/"}
Core Fields
| Field | Type | Description |
|---|---|---|
jobId | string | jobup.ch internal job identifier |
title | string | Job title |
categories | string[] | Job categories / industry |
languageSkills | string[] | Required language skills, when listed |
description | string | Full job description as plain text (when descriptions are enabled) |
descriptionHtml | string | Job description as HTML (when available) |
isPaid | boolean | Whether the posting is a paid/promoted listing |
scrapedAt | string | ISO 8601 timestamp the row was collected |
url | string | Canonical jobup.ch job URL |
Company
| Field | Type | Description |
|---|---|---|
company | string | Hiring company / employer name |
companyId | string | Employer identifier |
companyLogo | string | Employer logo URL |
Location
| Field | Type | Description |
|---|---|---|
location | string | Place of work (city) |
region | string | Canton / region code |
zipcode | string | Postal code, when present |
street | string | Street address, when the employer lists one |
Workload & Contract
| Field | Type | Description |
|---|---|---|
workload | string | Workload range as displayed, e.g. "80 – 100%" |
workloadMin | integer | Parsed minimum workload percentage |
workloadMax | integer | Parsed maximum workload percentage |
employmentType | string | Contract type label. A job can carry more than one, in which case they are joined with commas (e.g. "permanent, temporary"). |
Contact & Dates
| Field | Type | Description |
|---|---|---|
contactName | string | Listed contact person, when present |
contactPhone | string | Contact phone, when present |
applyUrl | string | Direct application URL (when descriptions are enabled) |
publicationDate | string | ISO 8601 date the listing was most recently published |
initialPublicationDate | string | ISO 8601 date the job was first ever posted (often earlier than publicationDate for re-posted roles) |
publicationEndDate | string | ISO 8601 listing expiry, when present |
Tips for Best Results
- Use workload filtering for Swiss part-time roles —
workloadMinandworkloadMaxare the most powerful facet on jobup.ch. Set 60–80% to find genuine part-time positions, or 90–100% to drop job-shares and reduced-hours roles. Most Swiss boards can't filter this way. - Mirror a saved jobup.ch search with Start URLs — build the exact search you want in your browser, copy the URL, and paste it into
startUrls. Every filter in the link is honored, no manual rebuild needed. - Turn off descriptions for fast counts — when you only need titles, companies, locations, and publication dates, set
includeDescriptionto false for a much faster, lighter run; turn it on for full text, apply URLs, and contacts. - Sort by Newest first for monitoring — pair
sortBy: "date"withpublishedSince: "1"to capture only jobs posted in the last 24 hours — ideal for a daily alerting pipeline. - Start small, then scale — set
maxResultsto 25–50 on your first run to confirm the data fits your needs, then raise it. - Pick the language that matches your audience — set
languageto German or French to get localized labels; the description text always reflects what the employer originally wrote. - Leave fields empty to widen the net — clearing
searchTermandlocationbrowses the newest jobs across all of Switzerland, useful for a complete market snapshot.
Pricing
From $1.30 per 1,000 results — among the most affordable jobup.ch extractors on the platform, with no compute charges; you only pay per result returned. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.
| Results | No discount | Bronze | Silver | Gold |
|---|---|---|---|---|
| 100 | $0.155 | $0.145 | $0.140 | $0.130 |
| 1,000 | $1.55 | $1.45 | $1.40 | $1.30 |
| 10,000 | $15.50 | $14.50 | $14.00 | $13.00 |
| 100,000 | $155.00 | $145.00 | $140.00 | $130.00 |
A "result" is any job row in the output dataset. No compute charges — you only pay per result returned. Platform fees depend on your Apify plan.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n — Workflow automation
- Google Sheets — Direct spreadsheet export
- Slack / Email — Notifications on new results
- Webhooks — Trigger custom APIs on run completion
- Apify API — Full programmatic access
Legal & Ethical Use
This actor is designed for legitimate recruitment research, labor-market analysis, and job-aggregation use cases. Users are responsible for complying with applicable laws and jobup.ch's Terms of Service. Collect only publicly available listing data, handle any personal data (such as listed contact details) in line with Swiss and EU data-protection rules, and do not use extracted data for spam, harassment, or any unlawful purpose.