job APIjob.at ↗
Access job listings, search facets, autocomplete, categories, and featured jobs from job.at — Austria's StepStone-powered job platform — via 8 structured endpoints.
What is the job API?
The job.at API exposes 8 endpoints covering job search, listing details, filter facets, autocomplete, categories, and featured positions from Austria's job.at platform. The search_jobs endpoint returns paginated results including job ID, title, company, location, posting date, description snippet, and listing URL, making it straightforward to build job aggregators or monitor Austrian labor market activity.
curl -X GET 'https://api.parse.bot/scraper/da55def2-da19-4f11-8a9d-9f3f53205695/search_jobs?page=1&query=developer&location=Wien' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace job-at-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.job.at_scraper_api import JobAt, Job, Category, Suggestion, SearchFilter, RelatedTitle, JobNotFound
client = JobAt()
# Search for developer jobs in Wien
for job in client.jobs.search(query="developer", location="Wien", limit=5):
print(job.title, job.company, job.location, job.url)
# Get details for a specific job by ID
detail = client.jobs.get(id="20992363")
print(detail.title, detail.company, detail.date, detail.description_snippet)
# Browse featured/promoted positions
for featured in client.jobs.featured(limit=3):
print(featured.title, featured.company, featured.location)
# Get location autocomplete suggestions
for suggestion in client.suggestions.locations(query="Wien"):
print(suggestion.text, suggestion.value)
# Get keyword autocomplete suggestions
for kw in client.suggestions.keywords(query="Python"):
print(kw.text, kw.value)
# Browse job categories
for cat in client.categories.list():
print(cat.category, cat.url)
for sub in cat.subcategories:
print(sub.name, sub.url)
# Get search facets/filters
filters = client.searchfilters.get(query="developer", location="Wien")
for category_name, options in filters.facets.items():
for opt in options:
print(opt.label, opt.count)
# Discover related job titles
for related in client.relatedtitles.list(query="developer"):
print(related.text, related.url)
Full-text search over job listings on job.at by keyword and/or location. Returns paginated results with job summaries. Pagination via integer page parameter. Each result includes an ID usable with get_job_detail. total_hits may be null if the site does not display it for the given query.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination |
| query | string | Job title or keyword to search for (e.g. 'developer', 'Python') |
| location | string | Location to search in (e.g. 'Wien', 'Graz') |
{
"type": "object",
"fields": {
"jobs": "array of job objects with id, title, company, location, date, description_snippet, and url",
"page": "current page number (integer)",
"total_hits": "total number of matching jobs, or null if not displayed"
},
"sample": {
"data": {
"jobs": [
{
"id": "20992363",
"url": "https://www.job.at/result?id=20992363",
"date": null,
"title": "Senior Fullstack Developer – Laravel (m/w/d)",
"company": "Curawel GmbH",
"location": "Wien",
"description_snippet": "vor 8 Stunden Wien Senior Fullstack Developer..."
}
],
"page": 1,
"total_hits": null
},
"status": "success"
}
}About the job API
Search and Listing Data
The search_jobs endpoint accepts optional query and location parameters (e.g. 'developer', 'Wien') and returns an array of job objects — each with id, title, company, location, date, description_snippet, and url — alongside page and total_hits. Pagination is controlled by the page parameter. When total result count is not displayed by the platform, total_hits returns null. The get_job_detail endpoint takes a numeric job id from search results and returns the same core fields for that specific listing.
Filters, Facets, and Autocomplete
get_search_result_facets accepts the same query and location inputs as search and returns available filter dimensions — employment type, industry, working hours, and others — each as an array of label/count pairs. This lets you build dynamic filter UIs or analyze the distribution of job types for a given query. The get_location_suggestions and get_keyword_suggestions endpoints provide autocomplete arrays (text and value fields) for location and job title inputs respectively, useful for search-as-you-type implementations.
Categories, Featured Jobs, and Related Titles
get_job_categories requires no inputs and returns all homepage categories, each with a category name, a url, and a subcategories array of name/url objects representing popular job title groupings. get_featured_jobs returns currently promoted listings with id, title, company, location, and url. get_related_job_titles takes a query (and optional location) and returns alternative job titles with direct search URLs — useful for expanding coverage when building job recommendation or alerting systems.
The job API is a managed, monitored endpoint for job.at — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when job.at changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official job.at API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Aggregate Austrian job postings by querying
search_jobswith keyword and location filters for a niche job board - Build a dynamic job filter UI using
get_search_result_facetsto show employment type and industry breakdowns - Implement search-as-you-type location fields using
get_location_suggestionsautocomplete results - Monitor featured/promoted positions on job.at over time using
get_featured_jobs - Map the Austrian job market taxonomy by extracting all categories and subcategories from
get_job_categories - Expand job alert coverage by finding synonymous titles via
get_related_job_titlesfor a given role - Track job posting volume per category or keyword using
total_hitsfromsearch_jobsover time
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does job.at have an official developer API?+
What does `get_job_detail` return compared to `search_jobs`?+
get_job_detail returns the same core fields as a search result entry — id, url, date, title, company, location, and description_snippet — for a single listing looked up by its numeric ID. It does not return a full job description body or salary data; it reflects what is available from the listing summary page.Does the API return full job description text or salary information?+
description_snippet (a short excerpt) rather than the full job description body, and salary fields are not exposed. You can fork this API on Parse and revise it to add an endpoint that retrieves the full job detail page content.What facet categories does `get_search_result_facets` return?+
label string and an integer count (or null if the count is not displayed). Facets are scoped to the query and location you provide.Is there a way to retrieve job listings by company name or filter by date?+
search_jobs filters by query keyword and location only; there is no dedicated company or date-range filter parameter exposed. You can fork this API on Parse and revise it to add company-scoped or date-filtered search endpoints.