AMS Austria Scraper - Government Job Portal
Pricing
from $5.00 / 1,000 results
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
Actor stats
0
Bookmarked
7
Total users
2
Monthly active users
12 days ago
Last modified
Categories
Share
AMS.at Job Scraper - Austrian Employment Service
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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
searchQueries | string[] | No | [] | One or more search keywords. Each runs as a separate search. Results deduplicated across queries. |
searchQuery | string | No | "" | Single keyword (backward compatible). Use searchQueries for multiple. |
location | string | No | "" | City or region name (e.g., "Wien", "Salzburg") |
bundesland | string | No | "" | Austrian federal state (Wien, Niederoesterreich, Oberoesterreich, etc.) |
employmentType | string | No | "" | Employment type: "Vollzeit", "Teilzeit", or "Geringfuegig" |
sortBy | string | No | "_SCORE" | Sort order: "_SCORE" (relevance) or "_DATE" (newest) |
maxResultsPerQuery | integer | No | 100 | Maximum results per search keyword |
maxResults | integer | No | 0 | Total cap across all queries. 0 = unlimited (each query limited by maxResultsPerQuery) |
includeJobDetails | boolean | No | true | Fetch complete job descriptions and contact info |
startUrls | string[] | No | [] | Direct job URLs to scrape (bypasses search) |
proxyConfiguration | object | No | Apify proxy | Proxy 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
Example 1: Multi-Query Search
{"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:
- GitHub: santamaria-apify-scrapers
- Email: support@santamaria.com
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