Karriere.at Austrian Jobs Scraper
Pricing
from $0.89 / 1,000 job scrapeds
Karriere.at Austrian Jobs Scraper
Scrape jobs from karriere.at: titles, salaries, companies, locations, remote flags, and full descriptions. Search by keyword, location, or paste a search URL.
Pricing
from $0.89 / 1,000 job scrapeds
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Karriere.at Austrian Jobs Scraper
Extract job listings from karriere.at, Austria's largest job platform, without writing a single line of scraping code. The Karriere.at Austrian Jobs Scraper searches by keyword, location, or a pasted search URL, and returns clean, structured job data — titles, salaries, companies, locations, remote flags, and full descriptions — ready for analysis, monitoring, or integration into your own job board or ATS.
| Search by keyword, location, and radius, pull structured salary and apply-URL data from every listing, track a search over time with incremental mode, and get new jobs pushed straight to Telegram, Slack, Discord, WhatsApp, or your own webhook. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Apify Actor: parsebird/karriere-at-jobs-scraper. Scrapes job listings from karriere.at (Austria's largest job platform). Call via ApifyClient: client.actor("parsebird/karriere-at-jobs-scraper").call(run_input={"query": "software engineer", "location": "wien", "maxResults": 50, "includeDetails": true}). Also accepts startUrls (paste a karriere.at /jobs search URL directly), radius, remoteOnly, compact (core fields only), descriptionFormat ("all"/"text"/"html"/"markdown"), incrementalMode + stateKey (emit only NEW/CHANGED/EXPIRED jobs across runs), skipReposts, and notification channels (telegramToken/telegramChatId, discordWebhookUrl, slackWebhookUrl, whatsappPhoneNumberId/whatsappAccessToken/whatsappTo, webhookUrl). Returns per job: jobId, title, company, companySlug, companyUrl, companyEmployees, companyLogoUrl, location, addressRegion, isRemote, salaryText, salaryMin, salaryMax, salaryCurrency, salaryPeriod, employmentType, jobLevel, description (or descriptionText/descriptionHtml/descriptionMarkdown), url, applyUrl, directApply, postedDate, portalUrl, scrapedAt, source. Full API spec: https://apify.com/parsebird/karriere-at-jobs-scraper/api. Get your token: https://console.apify.com/settings/integrations.
What does Karriere.at Austrian Jobs Scraper do?
This actor queries karriere.at's own job search endpoint directly — no browser rendering, no fragile CSS selectors. You give it a search term, a location, or a karriere.at search URL, and it returns every matching job with salary, employment type, remote-work flag, company details, and (optionally) the full job description and apply link.
- 🔍 Keyword, location, and radius search — search by job title or free text, narrow to a city or region, and set a search radius in kilometers.
- 🔗 Paste-a-URL mode — copy a search URL straight from your browser (with filters already applied) and the actor parses
keywords,locations,radius, andhomeofficefrom it automatically. - 📋 Full job details on request — structured salary (min/max/currency/period), employment type, job level, address region, apply URL, and direct-apply detection, sourced from karriere.at's own structured job-posting data.
- ✂️ Flexible description output — plain text, HTML, Markdown, or all three, with optional character-length truncation for LLM token budgets.
- 📦 Compact mode — a lean, core-fields-only shape built for AI-agent and MCP workflows.
- ♻️ Incremental tracking — re-run the same search on a schedule and only get NEW, CHANGED, REAPPEARED, or EXPIRED listings back, keyed by a stable state per search.
- 🚫 Repost detection — flags and optionally excludes listings that look like a repost of a job you've already seen (same title, company, and location under a new job ID).
- 🔔 Built-in alerts — send new/changed jobs to Telegram, Discord, Slack, WhatsApp, or a generic webhook for n8n/Make/Zapier, with no extra automation needed.
What data can you extract from karriere.at?
| Field | Description |
|---|---|
title | Job title as posted |
company / companySlug / companyUrl / companyEmployees / companyLogoUrl | Hiring company details |
location / addressRegion | City/region and Austrian federal state |
isRemote | Whether the listing offers a home-office option |
salaryText / salaryMin / salaryMax / salaryCurrency / salaryPeriod | Salary as displayed and as structured data, where disclosed |
employmentType / jobLevel | e.g. Vollzeit, Teilzeit; Berufseinstieg, Berufserfahrung |
description / descriptionText / descriptionHtml / descriptionMarkdown | Full job description, in the format(s) you choose |
applyUrl / directApply | Where to apply and whether it's a direct/smart-apply listing |
postedDate / postedDateRelative | ISO publish date (from full details) and karriere.at's own relative label |
url | Canonical karriere.at job URL |
changeStatus | NEW / CHANGED / UNCHANGED / REAPPEARED / EXPIRED — only present when Incremental Mode is on |
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | No | — | Search term (e.g. "developer"). Aliases: searchQuery, keyword, or keywords as a string/array — array entries each run as a separate search and are merged/deduplicated |
startUrls | array | No | — | karriere.at search URLs to parse directly instead of/alongside query — either a query-string search or a /jobs/<location> URL |
location | string | No | — | City or region, e.g. "wien", "graz", "salzburg" |
radius | string | No | — | Search radius in km: 0, 10, 20, 30, 50 |
remoteOnly | boolean | No | false | Only return jobs with a home-office option |
maxResults | integer | No | 25 | Maximum total results (0 = unlimited, capped at 5000) |
includeDetails | boolean | No | true | Fetch full details (description, structured salary, apply URL) per job |
descriptionFormat | string | No | all | all, text, html, or markdown |
descriptionMaxLength | integer | No | 0 | Truncate description to N characters (0 = no truncation) |
compact | boolean | No | false | Core fields only, for AI-agent/MCP workflows |
excludeEmptyFields | boolean | No | false | Drop null/empty fields from each record before push |
incrementalMode | boolean | No | false | Only emit new/changed jobs since the last run with this stateKey |
stateKey | string | No | auto-derived | Stable identifier for the tracked search; auto-derived from your search inputs if left empty |
skipReposts | boolean | No | false | Exclude listings detected as reposts of previously seen jobs |
emitUnchanged / emitExpired | boolean | No | false | Also emit UNCHANGED / EXPIRED listings in incremental mode |
telegramToken / telegramChatId | string | No | — | Telegram bot alerts |
discordWebhookUrl | string | No | — | Discord webhook alerts |
slackWebhookUrl | string | No | — | Slack webhook alerts |
whatsappPhoneNumberId / whatsappAccessToken / whatsappTo | string | No | — | WhatsApp Cloud API alerts |
webhookUrl / webhookHeaders | string / object | No | — | Generic webhook receiving the full job payload + run metadata |
notificationLimit | integer | No | 5 | Max jobs listed per notification message (1–20) |
notifyOnlyChanges | boolean | No | false | With Incremental Mode, only notify on NEW/CHANGED/REAPPEARED jobs |
appConnector / mcpIssueTeam | string | No | — | Send a run summary to a connected app (e.g. Notion) via Apify integrations |
Output example
{"jobId": "10010591","title": "IT-Support (m/w/d)","company": "Aichelin GesmbH","companySlug": "aichelin","companyUrl": "http://www.aichelin.at","companyEmployees": "51 - 100","companyLogoUrl": "https://kcdn.at/company/8281/3387884/aichelin-ifs-logo-farbig-ppt_web.companysquare.png","location": "Mödling","addressRegion": "Niederösterreich","isRemote": true,"salaryText": "ab 3.396,21 € monatlich","salaryMin": 3396.21,"salaryCurrency": "EUR","salaryPeriod": "MONTH","employmentType": "Vollzeit","jobLevel": "Berufserfahrung","description": "<p>Als Technologieführer mit hoher Wärmebehandlungskompetenz haben wir uns...</p>","url": "https://www.karriere.at/jobs/10010591","applyUrl": "https://bewerben.karriere.at/9dKs2qV3","directApply": true,"postedDate": "2026-03-29T00:00:00+01:00","portalUrl": "https://www.karriere.at","scrapedAt": "2026-04-04T10:59:55.809Z","source": "karriere.at"}
Download results as JSON, CSV, Excel, HTML, or XML directly from the Apify Console, or fetch them via the Apify API / dataset endpoint.
Use cases
- Job board aggregation — feed a niche job board, newsletter, or Slack/Discord bot with fresh Austrian listings filtered by keyword and location.
- Job alerts — pair
incrementalModewith a schedule and Telegram/Slack/Discord notifications to get pinged the moment a matching role goes live. - Talent sourcing pipelines — pair
webhookUrlwith your ATS or CRM to ingest new roles automatically. - Salary benchmarking — collect structured compensation data by role, location, and employment type across the Austrian market.
- Market research — track which companies are hiring, where, and how listing volume shifts over time for a given keyword or region.
How to scrape karriere.at jobs
- Set your search — enter a Search Term, a Location (e.g.
"wien"), or paste a karriere.at search URL into Start URLs. - Choose filters — set a Radius, toggle Remote Only, and set Max Results.
- Choose output shape — toggle Include Full Details, pick a Description Format, and enable Compact Output if you're feeding an LLM.
- (Optional) track changes — turn on Incremental Mode to only get new/changed jobs on repeat runs, and connect a notification channel to get alerted automatically.
- Run the actor — click Start in the Apify Console, or trigger it via the API or on a schedule.
- Get your data — download the dataset as JSON/CSV/Excel, pull it via the API, or have it delivered straight to your notification channels.
How much does it cost to scrape karriere.at?
This actor uses Pay-Per-Event (PPE) pricing — you're charged per job listing extracted, not per compute unit.
| Event | Price per event | Price per 1,000 |
|---|---|---|
job-scraped (Free plan) | $0.00099 | $0.99 |
job-scraped (Bronze / Silver / Gold plans) | $0.00089 | $0.89 |
A run collecting 500 jobs costs roughly $0.45–$0.50 depending on your Apify plan. All Apify accounts include a free trial with credits to try the actor before committing to a paid plan.
FAQ
Why are some salaryMin/salaryMax fields null?
Not every karriere.at listing discloses a salary range (Austrian law only requires a minimum for the specific collective-bargaining agreement to be shown). When compensation data isn't published, the salary fields are returned as null.
What's the difference between postedDate and postedDateRelative?
postedDate is an ISO 8601 timestamp available only when includeDetails is on. postedDateRelative is karriere.at's own relative label (e.g. "vor 5 Tagen veröffentlicht") and is always available, even without full details.
How does repost detection work?
skipReposts fingerprints each job by its normalized title, company, and location. If a new job ID appears with the same fingerprint as one you've already seen (tracked via stateKey), it's treated as a repost and excluded.
Can I run this on a schedule and only get new jobs?
Yes — turn on incrementalMode, set a stateKey (or let it auto-derive from your search), and each run will tag jobs as NEW, CHANGED, UNCHANGED, REAPPEARED, or EXPIRED against the previous run.
Does this actor support scheduling and integrations? Yes. Use Apify Schedules to run it daily or weekly, connect it to Zapier, Make, or Slack, or call it through the Apify API from your own backend.
What are the limitations of this actor? ⚠️
maxResultsis capped at 5000 per run- Job-detail URLs (
/jobs/<id>/<slug>) pasted into Start URLs aren't supported yet — use Search Term to find a job via search instead - Results reflect karriere.at's public listings only
Is it legal to scrape karriere.at?
Yes. This actor only accesses publicly available job listings that karriere.at and its customers have made visible for the purpose of recruitment. It does not bypass login walls, access private accounts, or collect personal data about individuals. Scraping publicly available data is generally considered legal — see Apify's overview of web scraping legality for more detail. Users are responsible for ensuring their use of the collected data complies with applicable laws and karriere.at's Terms of Service.
Python and JavaScript usage
Python (apify-client):
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run_input = {"query": "software engineer","location": "wien","maxResults": 50,"includeDetails": True,}run = client.actor("parsebird/karriere-at-jobs-scraper").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["company"])
JavaScript (apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const input = {query: 'software engineer',location: 'wien',maxResults: 50,includeDetails: true,};const run = await client.actor('parsebird/karriere-at-jobs-scraper').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Related Actors
- Arbeitnow Jobs Scraper — German and remote-friendly job listings
- Xing Jobs Scraper — jobs from Xing, the DACH-region professional network
- Arbeitsagentur Scraper — listings from Germany's federal job agency
- Hiring.cafe Jobs Scraper — 2.8M+ aggregated postings across 46 ATS platforms
- Himalayas Remote Jobs Scraper — worldwide remote-only job listings
Browse the full catalog on the ParseBird Apify Store page.