AMS Austria Scraper - Government Job Portal avatar

AMS Austria Scraper - Government Job Portal

Pricing

from $5.00 / 1,000 results

Go to Apify Store
AMS Austria Scraper - Government Job Portal

AMS Austria Scraper - Government Job Portal

Extract job listings from jobs.AMS.at, Austria's official public employment service with 100,000+ jobs. Get title, company, location, Bundesland, employment type & job details. Ideal for recruiters, HR platforms & job aggregators targeting the Austrian market.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

Alessandro Santamaria

Alessandro Santamaria

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

2

Monthly active users

12 days ago

Last modified

Share

AMS.at Job Scraper - Austrian Employment Service

English | Deutsch


English

Overview

This Apify actor scrapes job listings from the Austrian Public Employment Service (Arbeitsmarktservice Oesterreich - AMS.at). It retrieves job postings from the official AMS JobRoom platform at jobs.ams.at.

HTTP-only -- no browser required. Uses the AMS search and detail APIs directly with HMAC-SHA512 authentication. Runs on 128MB, ~100x lighter than browser-based scrapers.

The scraper supports filtering by:

  • Multiple keywords/professions (Beruf) -- deduplicated across queries
  • Location/city (Arbeitsort)
  • Employment type (Vollzeit, Teilzeit, Geringfuegig)

Features

  • HTTP-Only: No browser needed -- uses AMS search + detail APIs directly
  • Automatic HMAC Key Extraction: Extracts authentication key from JS bundle if hardcoded key becomes stale
  • Multi-Query Search: Run multiple search keywords in a single actor run with cross-query deduplication
  • Direct URL Mode: Check status of specific job listings by URL
  • Full Job Details: Optional detailed scraping including contact information via API
  • Per-Query Limits: Control how many results each keyword produces
  • Proxy Support: Datacenter proxies work fine (no residential needed)
  • Data Validation: Comprehensive schema validation using Zod
  • Deduplication: Automatic removal of duplicate job listings across all queries
  • Pay-Per-Result: Supports Apify monetization events

Input Parameters

{
"searchQueries": ["Software Developer", "Kellner", "Mechaniker"],
"location": "Wien",
"maxResultsPerQuery": 100,
"maxResults": 0,
"includeJobDetails": true,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["BUYPROXIES94952"]
}
}

Parameters

ParameterTypeRequiredDefaultDescription
searchQueriesstring[]No[]One or more search keywords. Each runs as a separate search. Results deduplicated across queries.
searchQuerystringNo""Single keyword (backward compatible). Use searchQueries for multiple.
locationstringNo""City or region name (e.g., "Wien", "Salzburg")
bundeslandstringNo""Austrian federal state (Wien, Niederoesterreich, Oberoesterreich, etc.)
employmentTypestringNo""Employment type: "Vollzeit", "Teilzeit", or "Geringfuegig"
sortBystringNo"_SCORE"Sort order: "_SCORE" (relevance) or "_DATE" (newest)
maxResultsPerQueryintegerNo100Maximum results per search keyword
maxResultsintegerNo0Total cap across all queries. 0 = unlimited (each query limited by maxResultsPerQuery)
includeJobDetailsbooleanNotrueFetch complete job descriptions and contact info
startUrlsstring[]No[]Direct job URLs to scrape (bypasses search)
proxyConfigurationobjectNoApify proxyProxy configuration

Output Schema

Each job listing includes:

{
"id": "8f68a1bd-de9e-3e00-8c17-657654868a92",
"title": "Software Developer (m/w/d)",
"company": "Example GmbH",
"location": "1010 Wien",
"canton": "W",
"country": "AT",
"salary_min": 3000,
"salary_max": 4500,
"salary_currency": "EUR",
"salary_period": "monthly",
"salary_text": "EUR 3.000,00 brutto pro Monat",
"employment_type": "full-time",
"description_snippet": "We are looking for...",
"description_full": "Full job description...",
"requirements": ["Bachelor degree", "3+ years experience"],
"posted_at": "2026-01-15T00:00:00.000Z",
"source_url": "https://jobs.ams.at/public/emps/jobs/uuid/8f68a1bd-de9e-3e00-8c17-657654868a92",
"source_platform": "ams.at",
"contact_email": "jobs@example.at",
"contact_phone": "+43 1 234 5678",
"search_query": "Software Developer",
"scraped_at": "2026-03-18T10:30:00.000Z"
}

Usage Examples

{
"searchQueries": ["Software Engineer", "DevOps", "Data Scientist"],
"location": "Wien",
"maxResultsPerQuery": 50,
"maxResults": 0
}

Example 2: Part-time Jobs in Salzburg

{
"searchQueries": ["Teilzeit"],
"location": "Salzburg",
"employmentType": "Teilzeit",
"maxResultsPerQuery": 20
}

Example 3: Check Specific Job URLs

{
"startUrls": [
"https://jobs.ams.at/public/emps/jobs/uuid/8f68a1bd-de9e-3e00-8c17-657654868a92"
]
}

API Information

This scraper uses the AMS JobRoom APIs directly (no browser):

  • Search API: GET /public/emps/api/search?query={q}&page={n}&pageSize=25&sortField=_SCORE
  • Detail API: GET /public/emps/api/joboffer/uuid/{uuid}
  • Authentication: HMAC-SHA512 (x-ams-access-token + x-ams-access-token-random)
  • Key extraction: Automatic from JS bundle if hardcoded key is stale

Performance

  • Speed: ~100-200 jobs per minute
  • Memory: 128 MB (no browser)
  • Proxy: Datacenter proxies work fine

Support

For issues or questions:


Deutsch

Ueberblick

Dieser Apify-Actor sammelt Stellenanzeigen vom Arbeitsmarktservice Oesterreich (AMS.at). Er ruft Stellenangebote von der offiziellen AMS JobRoom-Plattform unter jobs.ams.at ab.

Nur HTTP -- kein Browser erforderlich. Nutzt die AMS Such- und Detail-APIs direkt mit HMAC-SHA512-Authentifizierung. Laeuft mit 128MB, ~100x leichter als browserbasierte Scraper.

Funktionen

  • Nur HTTP: Kein Browser noetig -- nutzt AMS Such- und Detail-APIs direkt
  • Automatische HMAC-Key-Extraktion: Extrahiert Authentifizierungs-Key aus dem JS-Bundle, falls der gespeicherte Key veraltet ist
  • Multi-Query-Suche: Mehrere Suchbegriffe in einem Durchlauf mit query-uebergreifender Deduplizierung
  • Direkt-URL-Modus: Ueberpruefung des Status bestimmter Stellenanzeigen per URL
  • Vollstaendige Jobdetails: Optional detailliertes Scraping inkl. Kontaktinformationen ueber API
  • Pro-Query-Limits: Kontrolle, wie viele Ergebnisse jedes Stichwort liefert
  • Proxy-Unterstuetzung: Datacenter-Proxys funktionieren (kein Residential noetig)
  • Datenvalidierung: Umfassende Schema-Validierung mit Zod
  • Deduplizierung: Automatische Entfernung doppelter Stellenanzeigen

Eingabeparameter

{
"searchQueries": ["Softwareentwickler", "Kellner", "Mechaniker"],
"location": "Wien",
"maxResultsPerQuery": 100,
"maxResults": 0,
"includeJobDetails": true
}

Verwendungsbeispiele

Beispiel 1: Multi-Query-Suche

{
"searchQueries": ["Softwareentwickler", "DevOps", "Data Scientist"],
"location": "Wien",
"maxResultsPerQuery": 50,
"maxResults": 0
}

Beispiel 2: Teilzeitjobs in Salzburg

{
"searchQueries": ["Teilzeit"],
"location": "Salzburg",
"employmentType": "Teilzeit",
"maxResultsPerQuery": 20
}

License

MIT License - Copyright (c) 2024 Santamaria

Version History

  • 2.0.0 (2026-03-18): HTTP-only rewrite
    • Replaced Playwright browser with pure HTTP API calls (got-scraping)
    • Search uses AMS search API directly (no browser form filling)
    • HMAC-SHA512 authentication for all API endpoints
    • Automatic key extraction from JS bundle if hardcoded key fails
    • Docker image: actor-node (~100MB) instead of playwright-chrome (~2GB)
    • Memory: 128MB instead of 512MB
    • Speed: ~100-200 jobs/min instead of ~10-30 jobs/min
    • Added safeCharge() for pay-per-result pricing
    • Datacenter proxy works (no residential needed)
  • 1.2.0 (2026-03-17): Multi-query upgrade
    • Added searchQueries[] for multiple keywords with deduplication
    • Added maxResultsPerQuery per-keyword cap
    • Added sortBy parameter
    • Added search_query field to output
    • maxResults 0 = unlimited
    • Backward compatible with searchQuery (singular)
  • 1.1.0 (2026-01-22): Added job details API fetching, email/website parsing
  • 1.0.0 (2024-12-22): Initial release