Ams Job Search Extractor avatar

Ams Job Search Extractor

Pricing

from $1.99 / 1,000 results

Go to Apify Store
Ams Job Search Extractor

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

Kawsar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

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

ParameterTypeDefaultDescription
querystringEngineerKeyword to search for, such as a job title, skill, or field. Required.
jobOfferTypesarrayall typesOffer sources to include, one code per line: BA, BZ, IJ, SB_WKO, TN. Leave empty for all.
sortOrderstringdescSort direction, descending or ascending.
sortFieldstring_SCOREPortal sort field. Keep as _SCORE (relevance) unless you know the internal codes.
maxItemsinteger100Maximum listings to collect per run, from 1 to 1000.
includeDescriptionHtmlbooleanfalseAlso keep the original HTML of each description.
timeoutSecsinteger300Time budget before the run stops with whatever it has collected.
proxyConfigurationobjectDatacenter (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"
}
FieldTypeDescription
jobIdintegerAMS internal numeric ID for the listing.
uuidstringStable UUID of the job offer.
jobTitlestringTitle of the job listing.
companyNamestringHiring company or organization.
companyWebsitestringCompany 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.
jobOfferTypestringReadable source of the offer, such as Arbeitsmarktservice.
jobOfferTypeCodestringShort source code (AMS, BA, BZ, IJ, SB_WKO, TN).
workingTimestringWorking time model, such as Vollzeit or Teilzeit.
employmentRelationshipstringType of employment relationship.
educationLevelsarrayRequired or preferred education levels.
occupationsarrayAMS occupation categories for the role.
countryCodestringISO country code of the working location (usually AT).
federalStatestringAustrian federal state of the working location.
zipCodestringPostal code of the working location.
townstringTown or municipality.
streetstringStreet address, when provided.
latitudenumberLatitude of the working location.
longitudenumberLongitude of the working location.
isGreenJobbooleanWhether AMS flags the role as a green job.
lastUpdatedAtstringDate the listing was last updated.
applicationUrlstringExternal company or application link found in the description.
descriptionTextstringFull description as clean plain text.
descriptionHtmlstringOriginal HTML of the description (only with the HTML option on).
scrapedAtstringUTC time the listing was collected.

How it works

  1. You enter a search keyword and, optionally, which offer types to include.
  2. The actor opens the AMS search page for that query in a headless browser, one time.
  3. The AMS app signs and sends its own search request, and the actor captures the JSON response.
  4. 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 maxItems limit or the last page.
  5. 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.