Ams Job Search Extractor
Pricing
from $1.99 / 1,000 results
Ams Job Search Extractor
AMS job scraper that searches jobs.ams.at by keyword and returns every matching Austrian vacancy as structured data, with company, location, and full description, so recruiters and job boards can collect listings without hitting the portal token wall.
Pricing
from $1.99 / 1,000 results
Rating
0.0
(0)
Developer
Kawsar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
AMS Job Search Extractor: Scrape Austrian Job Listings from jobs.ams.at
AMS Job Search Extractor pulls job listings from Austria's public employment service portal, jobs.ams.at, and returns them as clean, structured data. Give it a keyword and it collects every matching vacancy, along with the company, working location, working hours, education requirements, and the full job description. It is a practical way to scrape AMS Austria jobs for recruitment, market research, and job board data without copying anything by hand.
The AMS search API is guarded by short-lived signed tokens, so a plain HTTP request just returns a 401. This actor loads the real search page in a headless browser and lets the site sign its own API calls, so you get the same job data a normal visitor sees, page after page.
Use cases
- Job board aggregation: pull fresh Austrian vacancies into your own job board or listings app
- Recruitment sourcing: find candidates' target roles by keyword, region, and offer type
- Labor market research: track which roles, skills, and employers are hiring across Austria
- Salary and skills analysis: mine full job descriptions for required qualifications and benefits
- Lead generation: build a list of companies actively hiring in a given field
- Green jobs tracking: filter for listings AMS flags as green jobs
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
query | string | Engineer | Keyword to search for, such as a job title, skill, or field. Required. |
jobOfferTypes | array | all types | Offer sources to include, one code per line: BA, BZ, IJ, SB_WKO, TN. Leave empty for all. |
sortOrder | string | desc | Sort direction, descending or ascending. |
sortField | string | _SCORE | Portal sort field. Keep as _SCORE (relevance) unless you know the internal codes. |
maxItems | integer | 100 | Maximum listings to collect per run, from 1 to 1000. |
includeDescriptionHtml | boolean | false | Also keep the original HTML of each description. |
timeoutSecs | integer | 300 | Time budget before the run stops with whatever it has collected. |
proxyConfiguration | object | Datacenter (Anywhere) | Proxy type and location for requests. Supports Datacenter, Residential, Special, and custom proxies. Optional. |
Example input
{"query": "Engineer","jobOfferTypes": ["BA", "BZ", "IJ", "SB_WKO", "TN"],"sortOrder": "desc","maxItems": 100,"includeDescriptionHtml": false,"proxyConfiguration": { "useApifyProxy": true }}
What data does this actor extract?
The actor stores results in a dataset. Each entry is one job listing:
{"jobId": 22090383,"uuid": "57146a03-f614-3a87-8942-e91a3a7b32f7","jobTitle": "COMPLIANCE ENGINEER / CE ENGINEER","companyName": "Felder KG","companyWebsite": null,"jobOfferType": "Arbeitsmarktservice","jobOfferTypeCode": "AMS","workingTime": "Vollzeit","employmentRelationship": "ArbeiterInnen/Angestellte","educationLevels": ["Fachhochschule/Universität/pädagogische Hochschule"],"occupations": ["MaschinenbautechnikerIn", "ElektroenergietechnikerIn"],"countryCode": "AT","federalState": "Tirol","zipCode": "6060","town": "Hall in Tirol","street": "KR-Felder-Straße 1","latitude": 47.27813351,"longitude": 11.478667903,"isGreenJob": true,"lastUpdatedAt": "2026-07-30T00:00:00Z","applicationUrl": "https://felder-group.jobs/de/jobs/compliance_engineer__ce_engineer_mwd_j4746836","descriptionText": "Deine Aufgaben: Sicherstellung der Konformität unserer Maschinen ...","scrapedAt": "2026-08-11T09:00:00Z"}
| Field | Type | Description |
|---|---|---|
jobId | integer | AMS internal numeric ID for the listing. |
uuid | string | Stable UUID of the job offer. |
jobTitle | string | Title of the job listing. |
companyName | string | Hiring company or organization. |
companyWebsite | string | Company home page. AMS rarely fills this field, so the actor falls back to the company link found in the job description when one is present. |
jobOfferType | string | Readable source of the offer, such as Arbeitsmarktservice. |
jobOfferTypeCode | string | Short source code (AMS, BA, BZ, IJ, SB_WKO, TN). |
workingTime | string | Working time model, such as Vollzeit or Teilzeit. |
employmentRelationship | string | Type of employment relationship. |
educationLevels | array | Required or preferred education levels. |
occupations | array | AMS occupation categories for the role. |
countryCode | string | ISO country code of the working location (usually AT). |
federalState | string | Austrian federal state of the working location. |
zipCode | string | Postal code of the working location. |
town | string | Town or municipality. |
street | string | Street address, when provided. |
latitude | number | Latitude of the working location. |
longitude | number | Longitude of the working location. |
isGreenJob | boolean | Whether AMS flags the role as a green job. |
lastUpdatedAt | string | Date the listing was last updated. |
applicationUrl | string | External company or application link found in the description. |
descriptionText | string | Full description as clean plain text. |
descriptionHtml | string | Original HTML of the description (only with the HTML option on). |
scrapedAt | string | UTC time the listing was collected. |
How it works
- You enter a search keyword and, optionally, which offer types to include.
- The actor opens the AMS search page for that query in a headless browser, one time.
- The AMS app signs and sends its own search request, and the actor captures the JSON response.
- It moves through the result pages by clicking next, so the app stays loaded and each page comes back in about a second, until it reaches your
maxItemslimit or the last page. - Each listing is cleaned into a flat record and saved to the dataset.
FAQ
Why does the actor use a browser instead of calling the API directly? The AMS search API rejects unsigned requests with a 401. The token that unlocks it is generated in the browser and tied to each exact request, so the reliable way to get data is to let the real page do the signing. That is what this actor does.
Do I need to provide any tokens or API keys? No. There are no keys, tokens, or logins to set up. You enter a keyword and run it.
Can it search in German?
Yes. AMS is an Austrian portal, so most listings are in German. Search with German keywords like Softwareentwickler or Pflege for the best coverage, and English terms like Engineer also return results.
How many jobs can it collect per run?
Up to 1000 per run via maxItems. Raise or lower it to balance coverage against run time and cost.
Why is companyWebsite sometimes empty?
AMS itself rarely stores a company website, on both its search and detail data. When it is missing, the actor looks for the company link inside the job description and uses that. If the description has no company link either, the field stays empty, and you can still use applicationUrl to reach the role.
Are the job descriptions cleaned up?
Yes. Each listing includes a plain-text description with the HTML removed. Turn on includeDescriptionHtml if you also want the original markup.
Integrations
Connect AMS Job Search Extractor with other apps and services using Apify integrations. You can integrate with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and many more. You can also use webhooks to trigger actions whenever results are available.
Ready to scrape AMS Austria jobs by keyword? Set a query, pick your offer types, and run the actor to get structured Austrian job listings you can filter, analyze, or feed into your own product.