{
  "openapi": "3.0.1",
  "info": {
    "title": "Arbeitnow Jobs Scraper: Germany & EU, Visa, Salary",
    "description": "Arbeitnow jobs scraper for its whole board, on-site and remote: title, company, real posted date, salary, visa sponsorship, city and country, job types, tags, apply link and full description. Filter by keyword, location, remote, visa, tags, job type and date.",
    "version": "0.1",
    "x-build-id": "7QGcTX6EwF1iqxV2N"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/deepmine~arbeitnow-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-deepmine-arbeitnow-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/deepmine~arbeitnow-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-deepmine-arbeitnow-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/deepmine~arbeitnow-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-deepmine-arbeitnow-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": {
          "keywords": {
            "title": "🔎 Keywords",
            "type": "array",
            "description": "Words to search for, one per line: python, marketing, werkstudent, data analyst. Each is its own search, matched on the job's title, tags and description (role words like design or sales on the title and tags only). Leave empty for the latest jobs of every kind. You pay per job delivered.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "📍 Location",
            "type": "string",
            "description": "Optional. A city or country the job's location must contain: Berlin, München, Zürich, Germany, Switzerland, France, Netherlands, United Kingdom. Leave empty for every place."
          },
          "remoteOnly": {
            "title": "🏠 Remote jobs only",
            "type": "boolean",
            "description": "Off: every job, on-site and remote (most Arbeitnow jobs are on-site in Germany and Europe). On: only the jobs Arbeitnow lists as remote.",
            "default": false
          },
          "visaSponsorship": {
            "title": "🛂 Visa sponsorship only",
            "type": "boolean",
            "description": "Only jobs Arbeitnow lists with visa sponsorship. Arbeitnow marks this on its German site only, so these are jobs in Germany (75 on 2026-10-23).",
            "default": false
          },
          "postedWithinDays": {
            "title": "📅 Posted within (days)",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep only jobs posted in the last N days; older ones cost nothing. By Arbeitnow's listing date, or by the job page's own posted date with Accurate posted date on (Advanced). 0 means any date. Handy for a daily or weekly scheduled run.",
            "default": 0
          },
          "maxJobsPerKeyword": {
            "title": "💯 Max jobs per keyword",
            "minimum": 0,
            "type": "integer",
            "description": "The jobs to keep per keyword (or in all, with no keyword): the best matches (title matches first), newest first. You pay per job, so this caps the cost per keyword. 0 means every job. Default 100.",
            "default": 100
          },
          "tags": {
            "title": "🏷️ Tags",
            "type": "array",
            "description": "Optional. Keep only jobs that carry at least one of these Arbeitnow tags: Software Development, Marketing, IT, Finance, Sales. Leave empty for every tag.",
            "items": {
              "type": "string"
            }
          },
          "jobTypes": {
            "title": "🧾 Job type words",
            "type": "array",
            "description": "Optional. Keep only jobs whose own Arbeitnow job-type labels contain one of these words: werkstudent, praktikum, internship, freelance, part time, befristet. Leave empty for every job.",
            "items": {
              "type": "string"
            }
          },
          "employmentTypes": {
            "title": "Job types",
            "type": "array",
            "description": "Optional. Keep only these job types, read from Arbeitnow's own labels in German, English and French (Unbefristeter arbeitsvertrag = Full-time, Werkstudent = Part-time, Praktikum = Internship). Leave empty for every type.",
            "items": {
              "type": "string",
              "enum": [
                "Full-time",
                "Part-time",
                "Contract",
                "Temporary",
                "Internship"
              ]
            }
          },
          "seniority": {
            "title": "Seniority",
            "type": "array",
            "description": "Optional. Keep only these levels, read from Arbeitnow's labels (berufserfahren, berufseinstieg, teamleitung...) or a clear title word (Senior, Junior, Director); jobs with none are left out. Leave empty for every level.",
            "items": {
              "type": "string",
              "enum": [
                "Entry-level",
                "Mid-level",
                "Senior",
                "Manager",
                "Director",
                "Executive"
              ]
            }
          },
          "categories": {
            "title": "🗂️ Categories",
            "type": "array",
            "description": "Optional. Keep only jobs in these categories (the boards' own categories, in common words). Leave empty for every category.",
            "items": {
              "type": "string",
              "enum": [
                "Software Development",
                "Data & AI",
                "DevOps & IT",
                "Design",
                "Product",
                "Marketing",
                "Sales",
                "Customer Support",
                "Finance & Legal",
                "HR & Recruiting",
                "Writing & Content",
                "Operations",
                "Other"
              ]
            }
          },
          "country": {
            "title": "Open to candidates in",
            "type": "string",
            "description": "Hidden in the form: 📍 Location does this. A country name: keeps the jobs in that country."
          },
          "minSalary": {
            "title": "Minimum salary (USD per year)",
            "minimum": 0,
            "type": "integer",
            "description": "Hidden in the form: Arbeitnow's salaries are mostly in euros, and this filter reads US dollars a year.",
            "default": 0
          },
          "timezone": {
            "title": "Time zone",
            "type": "string",
            "description": "Optional UTC offset you work in, e.g. UTC-5, UTC+1, UTC+5:30. Keeps Himalayas jobs that accept it (the only board that lists time zones) and, from the other boards, only jobs open worldwide."
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many jobs in total. You pay per job, so this caps the run's cost.",
            "default": 1000
          },
          "accuratePostedDate": {
            "title": "Accurate posted date",
            "type": "boolean",
            "description": "Read each job's own page for its real posting date (arbeitnow refreshes listings, so the feed date can be weeks late). Slightly slower. Also adds what only the job page has: salary, city, region, postal code, expiry, logo, company page and benefits.",
            "default": false
          },
          "includeDescription": {
            "title": "Include job descriptions",
            "type": "boolean",
            "description": "The full job description as plain text. Same price either way; turn it off for smaller rows.",
            "default": true
          },
          "includeDescriptionHtml": {
            "title": "Include descriptions as HTML",
            "type": "boolean",
            "description": "Also the board's description as HTML (links and lists kept), in descriptionHtml. Same price; rows get about twice as big.",
            "default": false
          },
          "findContactEmails": {
            "title": "Find contact emails on company websites ($)",
            "type": "boolean",
            "description": "For jobs whose description gives no email, look for one on the company's own website (confirmed from the company's name). Charged per job that gets an email this way ($); emails a description gives are always free. Slower.",
            "default": false
          },
          "webhookUrl": {
            "title": "🔗 Webhook URL",
            "type": "string",
            "description": "Optional. At the end of the run, every job row is POSTed to this URL as JSON, 50 rows a request ({\"runId\", \"batch\", \"batches\", \"items\": [...]}). A receiver that fails is reported in the run summary; the jobs stay in the dataset."
          },
          "webhookSecret": {
            "title": "🔑 Webhook secret",
            "type": "string",
            "description": "Optional. Sent with each webhook request in the X-Scraper-Secret header."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy (datacenter) by default; the boards' feeds are public, so it only spreads the requests over several IPs. Residential and SERP proxies are replaced with datacenter. Turn it off to connect directly.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}