{
  "openapi": "3.0.1",
  "info": {
    "title": "karriere.at Jobs Scraper - Austria Salaries & Apply URLs",
    "description": "Scrape every job on karriere.at, Austria's leading job board. Search by keyword, city or federal state and filter by employment type, career level, job field and home office. Each row carries the published EUR salary, employer, location, posted date and the direct apply URL.",
    "version": "1.0",
    "x-build-id": "T58TwgclpR9wazdYO"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~karriere-at-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-karriere-at-jobs-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/sian.agency~karriere-at-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-karriere-at-jobs-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/sian.agency~karriere-at-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-karriere-at-jobs-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "operation": {
            "title": "🎯 What do you want to scrape?",
            "enum": [
              "search",
              "detail"
            ],
            "type": "string",
            "description": "Pick one per run. Job Search returns rows from a keyword, city or federal-state search with filters; Job Detail takes karriere.at job URLs and returns the full text, exact salary and apply link.",
            "default": "search"
          },
          "keywords": {
            "title": "🔑 Search keywords",
            "type": "array",
            "description": "Job titles or skills to search for, one per line. Each keyword runs its own search, so three keywords return roughly three times the rows. Leave empty to take every current opening in the locations you picked.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "📍 Cities or federal states",
            "type": "array",
            "description": "Where to search, one per line. Takes a city (Wien, Graz, Linz, Salzburg, Innsbruck, Klagenfurt) or a whole federal state (niederoesterreich, oberoesterreich, steiermark, tirol, kaernten, vorarlberg, burgenland). Leave empty to search all of Austria.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "radiusKm": {
            "title": "📏 Search radius",
            "enum": [
              "0",
              "10",
              "20",
              "30",
              "50"
            ],
            "type": "string",
            "description": "How far around each city to look. Only applies to city names — a federal state is already an area, so the radius is ignored there.",
            "default": "0"
          },
          "employmentType": {
            "title": "💼 Employment type",
            "enum": [
              "any",
              "vollzeit",
              "teilzeit",
              "geringfuegig",
              "praktika",
              "lehre",
              "diplomarbeit",
              "freelancer"
            ],
            "type": "string",
            "description": "Restrict to one contract shape. Austrian postings often carry two at once, so 'Full time' also returns adverts open to both full and part time.",
            "default": "any"
          },
          "jobField": {
            "title": "🗂️ Job field",
            "enum": [
              "any",
              "it",
              "technik",
              "finanzen",
              "rechnungswesen",
              "marketing",
              "verkauf",
              "einkauf-logistik",
              "fuehrung",
              "beratung",
              "personalwesen",
              "gesundheit",
              "produktion",
              "assistenz",
              "gastronomie",
              "grafik-design",
              "coaching",
              "rechtswesen",
              "sachbearbeitung",
              "wissenschaft",
              "sonstige"
            ],
            "type": "string",
            "description": "karriere.at's own industry taxonomy. Pick one to keep a broad keyword such as 'manager' inside a single sector.",
            "default": "any"
          },
          "jobLevel": {
            "title": "📈 Career level",
            "enum": [
              "any",
              "berufseinstieg",
              "berufserfahrung",
              "bereichsleitung",
              "unternehmensfuehrung",
              "selbstaendigkeit"
            ],
            "type": "string",
            "description": "Seniority as karriere.at classifies it. Useful for separating graduate hiring from senior roles in the same keyword.",
            "default": "any"
          },
          "homeOfficeOnly": {
            "title": "🏠 Home office only",
            "type": "boolean",
            "description": "Keep only postings karriere.at flags as offering home office.",
            "default": false
          },
          "minMonthlySalaryEur": {
            "title": "💶 Minimum monthly gross salary",
            "minimum": 0,
            "maximum": 30000,
            "type": "integer",
            "description": "Drop postings below this gross monthly figure in euro. Annual salaries are converted at 14 payments a year, the Austrian norm, so a 42,000 EUR advert compares as 3,000 EUR a month. 0 turns the filter off. Postings that publish no salary are kept — set the next option to drop them.",
            "default": 0
          },
          "requireSalary": {
            "title": "🔎 Only postings that state a salary",
            "type": "boolean",
            "description": "Austrian law makes employers publish a minimum salary, and about nine in ten karriere.at adverts do. Turn this on to drop the rest instead of exporting blank salary columns.",
            "default": false
          },
          "postedWithinDays": {
            "title": "🗓️ Posted within the last N days",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "Keep only adverts published in the last N days. 0 means no date limit. This is the cheap way to run the actor on a schedule and pay for new postings only.",
            "default": 0
          },
          "maxResults": {
            "title": "🔢 Max jobs",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Stop after this many jobs across every keyword and location in the run. Each search request returns 15 postings, so the run stops on the first page that crosses your limit.",
            "default": 100
          },
          "includeDetails": {
            "title": "📄 Fetch full advert text",
            "type": "boolean",
            "description": "Open each posting to add the full advert text, the direct apply URL, the career level, the employer website and the exact numeric salary. Costs one extra request per job and bills the Job Detail event on top of the search row.",
            "default": false
          },
          "searchUrls": {
            "title": "🌐 Search URLs",
            "type": "array",
            "description": "Paste karriere.at search URLs instead of filling the fields above. Keyword, location and every filter in the URL are read straight off it, so a search you built in the browser runs here unchanged.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "jobUrls": {
            "title": "🔗 Job URLs",
            "type": "array",
            "description": "Used by the Job Detail operation: karriere.at job URLs to expand, one per line, e.g. https://www.karriere.at/jobs/10026488. Paste the address straight from your browser — Apify checks this box holds real URLs, so a bare job number is rejected before the run starts.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}