{
  "openapi": "3.0.1",
  "info": {
    "title": "Arbeitsagentur Scraper — German Jobs",
    "description": "Scrape arbeitsagentur.de — Germany’s official employment portal with 1M+ listings. Contact data, contract types, and remote work filters. Incremental mode detects new and changed listings. Compact output for AI agents and MCP workflows.",
    "version": "1.0",
    "x-build-id": "1dhZnLiFnYSSpiLuT"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/blackfalcondata~arbeitsagentur-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-blackfalcondata-arbeitsagentur-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/blackfalcondata~arbeitsagentur-scraper/runs": {
      "post": {
        "operationId": "runs-sync-blackfalcondata-arbeitsagentur-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/blackfalcondata~arbeitsagentur-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-blackfalcondata-arbeitsagentur-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": {
          "query": {
            "title": "Search Query",
            "type": "string",
            "description": "Job title or keyword (e.g., 'Software Developer', 'Krankenpfleger')"
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City or region (e.g., 'Berlin', 'München', 'Hamburg')"
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum number of job listings to return",
            "default": 25
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "full",
              "incremental"
            ],
            "type": "string",
            "description": "Full mode returns all matching jobs. Incremental mode returns only new or modified jobs since the last run — ideal for scheduled monitoring.",
            "default": "full"
          },
          "includeContact": {
            "title": "Include Contact Details",
            "type": "boolean",
            "description": "Fetch contact person name, email, phone, and application URL for each listing. Slower due to additional verification per job. Requires CAPSOLVER_API_KEY environment variable.",
            "default": false
          },
          "includeDetails": {
            "title": "Include Full Details",
            "type": "boolean",
            "description": "Fetch full job description, employer profile, and benefits for each listing. Slower but richer data.",
            "default": false
          },
          "radius": {
            "title": "Search Radius (km)",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "Radius around location in km",
            "default": 0
          },
          "contractType": {
            "title": "Contract Type",
            "enum": [
              "",
              "BEFRISTET",
              "UNBEFRISTET"
            ],
            "type": "string",
            "description": "Filter by contract duration",
            "default": ""
          },
          "jobType": {
            "title": "Job Type",
            "enum": [
              "",
              "ARBEIT",
              "AUSBILDUNG",
              "SELBSTAENDIGKEIT",
              "PRAKTIKUM"
            ],
            "type": "string",
            "description": "Filter by listing type",
            "default": ""
          },
          "workType": {
            "title": "Work Type",
            "enum": [
              "",
              "VOLLZEIT",
              "TEILZEIT",
              "HOMEOFFICE",
              "MINIJOB",
              "SCHICHT"
            ],
            "type": "string",
            "description": "Filter by working hours",
            "default": ""
          },
          "bundesland": {
            "title": "Federal State (Bundesland)",
            "enum": [
              "",
              "BADEN_WUERTTEMBERG",
              "BAYERN",
              "BERLIN",
              "BRANDENBURG",
              "BREMEN",
              "HAMBURG",
              "HESSEN",
              "MECKLENBURG_VORPOMMERN",
              "NIEDERSACHSEN",
              "NORDRHEIN_WESTFALEN",
              "RHEINLAND_PFALZ",
              "SAARLAND",
              "SACHSEN",
              "SACHSEN_ANHALT",
              "SCHLESWIG_HOLSTEIN",
              "THUERINGEN"
            ],
            "type": "string",
            "description": "Filter by German federal state (client-side post-fetch — may fetch many result pages for sparse state/broad query combinations; combine with a location for best performance)",
            "default": ""
          },
          "remoteOnly": {
            "title": "Remote Only",
            "type": "boolean",
            "description": "Only show jobs with home office option",
            "default": false
          },
          "publishedSince": {
            "title": "Published Since (days)",
            "minimum": 0,
            "maximum": 30,
            "type": "integer",
            "description": "Only show jobs published within the last N days. 0 = any time, 1 = last 24h, 7 = last week, 30 = last month.",
            "default": 0
          },
          "includeTemporaryWork": {
            "title": "Include Temporary Staffing",
            "type": "boolean",
            "description": "Include jobs from temporary staffing agencies (Zeitarbeitsfirmen)",
            "default": true
          },
          "employer": {
            "title": "Employer",
            "type": "string",
            "description": "Employer name (e.g., 'BMW', 'Deutsche Bahn', 'Robert Bosch GmbH'). Common brand names are resolved to the registered company name where possible. For guaranteed results, use the exact registered name (e.g., 'BMW AG')."
          },
          "compact": {
            "title": "Compact Mode",
            "type": "boolean",
            "description": "When true, each result contains only the 10 most essential fields: referenceId, title, employer, location, region, publishedDate, contractType, isRemote, portalUrl, and description. Use this in AI-agent and MCP workflows where token budgets matter — compact output is significantly smaller than full output, reducing context window consumption and cost.",
            "default": false
          },
          "descriptionMaxLength": {
            "title": "Description Max Length (chars)",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Truncate the description field to this many characters, appending '...' if truncated. 0 means no truncation. Use in AI-agent workflows to control context window usage — 200–500 characters is usually enough for an LLM to classify or summarise a job. Pairs well with compact mode.",
            "default": 0
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}