karriere.at Jobs Scraper (Austria: karriere.at, jobs.at) avatar

karriere.at Jobs Scraper (Austria: karriere.at, jobs.at)

Pricing

$3.00 / 1,000 job listings

Go to Apify Store
karriere.at Jobs Scraper (Austria: karriere.at, jobs.at)

karriere.at Jobs Scraper (Austria: karriere.at, jobs.at)

Scrapes job postings for a keyword and location from karriere.at and jobs.at into one common schema.

Pricing

$3.00 / 1,000 job listings

Rating

0.0

(0)

Developer

WebAlpine Studio

WebAlpine Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Share

Search Austria's two largest job boards, karriere.at and jobs.at, with one keyword and one location, and get every matching posting back as a clean, deduplicated JSON record.

Why this actor

  • Public data only: the JSON search endpoints and public job pages of karriere.at and jobs.at, the two largest Austrian job boards.
  • No login, no cookies, no browser and no proxy. Plain HTTP with polite delays.
  • Structured, deduplicated fields with one schema for both boards: title, company, location, Bundesland, employment type, salary text, date, description and URL.

What it does

You give it a search term such as "Softwareentwickler" or "Pflege" and an optional town or region such as "Wien" or "Graz". The actor runs that search on karriere.at and on jobs.at, walks through all result pages, removes postings that appear on both boards (jobs.at republishes many karriere.at ads) and pushes one flat record per job to the dataset.

For each job you get the title, company, location, Austrian Bundesland (state), employment type, salary text, publish date and a short teaser. With the optional fetchDetails switch the actor also opens each job's own page and adds the full plain-text description, the exact publish timestamp and the state as declared by the employer.

The actor reads the same JSON responses the two sites use for their own "load more" buttons and the schema.org JobPosting data on detail pages, so the fields are taken straight from structured data rather than guessed from layout.

Why use it

Comparing openings across Austrian job boards normally means repeating the same search on every site and copying results by hand. This actor runs the search once and returns one table that you can filter, export to Excel or CSV, feed into a spreadsheet, a CRM, a salary study or a job alert of your own. Typical uses:

  • Recruiters and staffing agencies tracking which companies are hiring for a role in a region.
  • Job seekers who want a daily list of new postings without visiting each site.
  • Analysts studying salary ranges, employment types or demand for a skill across the Bundesländer.
  • Companies watching competitor hiring.

Input

FieldTypeDescription
querystring, requiredJob title or keyword, for example "Softwareentwickler", "Pflege", "Buchhaltung".
locationstringTown, district or region, for example "Wien", "Graz", "Tirol". Leave empty to search all of Austria.
sourcesarrayWhich boards to scrape: karriere_at, jobs_at. Both by default.
fetchDetailsbooleanAlso open every job page for the full description, exact publish timestamp and exact state. Slower, roughly one extra request per job with a polite delay. Off by default.
maxItemsintegerMaximum number of records in total, default 100, up to 5000. The limit is split evenly across the selected boards; if one board has fewer results the other fills the rest.

Example input:

{
"query": "Pflege",
"location": "Graz",
"sources": ["karriere_at", "jobs_at"],
"fetchDetails": false,
"maxItems": 100
}

Output example

One record from a real run without fetchDetails:

{
"source": "karriere_at",
"job_id": "10028680",
"url": "https://www.karriere.at/jobs/10028680",
"apply_url": null,
"title": "Senior Database Developer (m/w/d) SQL Server · T-SQL · Performance Engineering",
"company": "Sportsbook Software GmbH",
"location": "Wien 22. Bezirk (Donaustadt)",
"state": "Wien",
"employment_type": "Vollzeit",
"workload": null,
"salary": "ab 68.000 € jährlich",
"published_at": "2026-09-13",
"home_office": true,
"snippet": null,
"description": null,
"scraped_at": "2026-09-22T20:37:20.359941+00:00"
}

A jobs.at record with fetchDetails enabled:

{
"source": "jobs_at",
"job_id": "7902017",
"url": "https://www.jobs.at/i/7902017",
"apply_url": "https://www.karriere.at/jobs/7875091?utm_source=jobsat&utm_medium=basic_high&utm_campaign=metajobbörse",
"title": "Java SW-Entwickler:in (m/w/d)",
"company": "TECHSEARCH",
"location": "Wien",
"state": "Wien",
"employment_type": "Vollzeit",
"workload": "38.5 Std./Woche",
"salary": "4.500,00 bis 5.500,00 EUR monatlich",
"published_at": "2026-09-11T13:01:28+00:00",
"home_office": true,
"snippet": "Sie entwickeln eine zentrale Serviceplattform mit Java und Spring Boot, arbeiten im Backend, und achten auf sauberen, wartbaren Code sowie die Integration von Backend-Services.",
"description": "Java SW-Entwickler:in\nWir suchen für unseren Kunden eine:n Java SW-Entwickler:in mit mehrjähriger Erfahrung und sehr guten Kenntnissen in Java und Spring Boot, um eine zentrale Serviceplattform weiterzuentwickeln und ...",
"scraped_at": "2026-09-22T20:40:24.174197+00:00"
}

Fields:

FieldMeaning
sourcekarriere_at or jobs_at.
job_idThe id the board uses for the posting.
urlThe posting on the board itself.
apply_urlExternal employer or application page, when the board links to one (jobs.at only).
title, company, locationAs shown on the board. Several locations are comma separated.
stateAustrian Bundesland. Taken from the job page when fetchDetails is on, otherwise looked up from the town name or postal code; null when the town is not known.
employment_typeBoard wording such as "Vollzeit", "Teilzeit", "Vollzeit, Teilzeit".
workloadWeekly hours when jobs.at provides them.
salarySalary as text, exactly as the board shows it, or built from jobs.at's structured salary.
published_atISO 8601 date. For karriere.at listings this is a day-precision date derived from the board's own "Heute", "vor 3 Tagen" or "14.9.2026" label; with fetchDetails it is the exact timestamp from the job page.
home_officeWhether the board flags the job as home office.
snippetShort teaser text from the listing.
descriptionFull plain-text description, only with fetchDetails.
scraped_atWhen the record was collected.

Any field the board does not provide is null. Values are never invented.

Pricing

This Actor uses pay per result. You pay USD 0.003 per job record, which is USD 3.00 per 1,000 results. There is no charge per run or per request, and a run that returns no results produces no result charges.

ResultsPrice
100USD 0.30
1,000USD 3.00
10,000USD 30.00

A daily alert with 50 new jobs costs USD 0.15 per run, about USD 4.50 per month. Set maxItems to cap the cost of a run.

Limitations

  • AMS eJob-Room (jobs.ams.at), the public employment service board, is not included. Its search API sits behind an OAuth2 login and rejects every anonymous request with HTTP 401, so there is no honest way to scrape it without a user account. It is therefore not offered as a source.
  • Postings listed on jobs.at that link to karriere.at are counted once, under karriere_at. jobs.at usually contributes fewer unique records than its own result count suggests.
  • Without fetchDetails, state comes from a lookup of Austrian town names and postal codes and stays null for small or ambiguous places.
  • The actor searches with the boards' own relevance ranking and a default 20 km radius around the location, the same as a visitor on the site.
  • No proxy is used. Runs of several thousand records with fetchDetails on are slow by design (polite delay of up to one second per request).

The actor only reads pages and JSON responses that are publicly accessible without logging in. Job postings can contain personal data such as contact names. How you store and use the data, and whether your use complies with the source sites' terms and with GDPR, is your responsibility.

FAQ

Why is a job missing that I can see on jobs.at? Most likely it is a karriere.at ad republished on jobs.at. It is in your dataset once, with source set to karriere_at.

Can I search without a location? Yes, leave location empty to search all of Austria.

Why is published_at a plain date for karriere.at? The listing only shows a label such as "vor 3 Tagen". The actor converts it to a date and does not pretend to know the time. Enable fetchDetails for the exact timestamp.

Does it need a proxy? No. Both boards served every request during testing without one.

Can you add AMS? Only if AMS opens its API or the actor is given an account, see Limitations.

Changelog

0.1.x (2026-09-25): README with concrete pricing and a short summary of the data sources. No change to the output.

0.1 Initial release with karriere.at and jobs.at, JSON pagination, cross-board deduplication, optional detail fetch.