{
  "openapi": "3.0.1",
  "info": {
    "title": "Jobbird Jobs Scraper",
    "description": "Scrape job listings from Jobbird.com (Netherlands) by keyword, location, category, and contract type. Get titles, employers, salaries, hours, descriptions, and incremental change monitoring. Export as JSON, CSV, or Excel.",
    "version": "1.0",
    "x-build-id": "LMDpNtoSnIFetKnuS"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parsebird~jobbird-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parsebird-jobbird-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/parsebird~jobbird-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parsebird-jobbird-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/parsebird~jobbird-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parsebird-jobbird-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": {
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Public Jobbird search URLs (`https://www.jobbird.com/nl/vacature?s=...`) or single-vacancy URLs (`https://www.jobbird.com/nl/vacature/12345678-...`). When set, these take precedence over the keyword and filters below.",
            "items": {
              "type": "string"
            }
          },
          "query": {
            "title": "Search keyword",
            "type": "string",
            "description": "Job title, role, or skill to search for on Jobbird, for example `software engineer`, `verpleegkundige`, or `magazijnmedewerker`."
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City or region in the Netherlands, for example `Amsterdam`, `Rotterdam`, or `Utrecht`."
          },
          "radius": {
            "title": "Search radius (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Search radius around the location in kilometres. Only applies when a location is set.",
            "default": 30
          },
          "category": {
            "title": "Categories",
            "type": "array",
            "description": "Filter by one or more Jobbird category slugs.",
            "items": {
              "type": "string",
              "enum": [
                "administratief-secretarieel",
                "agrarisch-natuur",
                "beauty-wellness",
                "bouw",
                "communicatie-journalistiek",
                "cultureel-creatief",
                "detailhandel",
                "dieren",
                "entertainment-toerisme",
                "facilitair",
                "financieel-accountancy",
                "handhaving-beveiliging",
                "horeca-catering",
                "hr",
                "ict",
                "juridisch",
                "klantenservice-callcenter",
                "laboratorium-wetenschap",
                "logistiek",
                "maatschappelijk-werk",
                "management",
                "marketing",
                "onderwijs",
                "online-marketing",
                "overheid",
                "overige",
                "productie",
                "sales",
                "schoonmaak",
                "sport-recreatie",
                "techniek",
                "vastgoed",
                "zorg-medisch"
              ],
              "enumTitles": [
                "Administratief en secretarieel",
                "Agrarisch en natuur",
                "Beauty en wellness",
                "Bouw",
                "Communicatie en journalistiek",
                "Cultureel en creatief",
                "Detailhandel",
                "Dieren",
                "Entertainment en toerisme",
                "Facilitair",
                "Financieel en accountancy",
                "Handhaving en beveiliging",
                "Horeca en catering",
                "HR",
                "ICT",
                "Juridisch",
                "Klantenservice en callcenter",
                "Laboratorium en wetenschap",
                "Logistiek",
                "Maatschappelijk werk",
                "Management",
                "Marketing",
                "Onderwijs",
                "Online marketing",
                "Overheid",
                "Overige",
                "Productie",
                "Sales",
                "Schoonmaak",
                "Sport en recreatie",
                "Techniek",
                "Vastgoed",
                "Zorg en medisch"
              ]
            },
            "default": []
          },
          "contractType": {
            "title": "Contract types",
            "type": "array",
            "description": "Filter by contract type.",
            "items": {
              "type": "string",
              "enum": [
                "fulltime",
                "parttime",
                "tijdelijk-werk",
                "stage",
                "vrijwilligerswerk",
                "freelance-zzp",
                "bijbaan",
                "niet-vermeld",
                "onbekend"
              ],
              "enumTitles": [
                "Fulltime",
                "Parttime",
                "Temporary work",
                "Internship",
                "Volunteer work",
                "Freelance / ZZP",
                "Side job",
                "Not specified",
                "Unknown"
              ]
            },
            "default": []
          },
          "recruitmentType": {
            "title": "Advertiser types",
            "type": "array",
            "description": "Filter by who posted the vacancy.",
            "items": {
              "type": "string",
              "enum": [
                "intern",
                "uitzendwerk",
                "detachering",
                "werving-selectie"
              ],
              "enumTitles": [
                "Direct employer",
                "Temp agency",
                "Secondment",
                "Recruitment agency"
              ]
            },
            "default": []
          },
          "workHours": {
            "title": "Weekly hours",
            "type": "array",
            "description": "Filter by weekly working-hours band.",
            "items": {
              "type": "string",
              "enum": [
                "0-8",
                "9-16",
                "17-24",
                "25-32",
                "33-36",
                "37-*",
                "missing"
              ],
              "enumTitles": [
                "0–8 hours",
                "9–16 hours",
                "17–24 hours",
                "25–32 hours",
                "33–36 hours",
                "37+ hours",
                "Not specified"
              ]
            },
            "default": []
          },
          "educationLevel": {
            "title": "Education levels",
            "type": "array",
            "description": "Filter by required education level.",
            "items": {
              "type": "string",
              "enum": [
                "basisonderwijs",
                "middelbare-school",
                "lbo",
                "mbo",
                "hbo",
                "wo",
                "phd",
                "overig"
              ],
              "enumTitles": [
                "Primary education",
                "Secondary school",
                "LBO",
                "MBO",
                "HBO",
                "WO / University",
                "PhD",
                "Other / not specified"
              ]
            },
            "default": []
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "date",
              "relevance"
            ],
            "type": "string",
            "description": "Order results are returned in.",
            "default": "date"
          },
          "postedWithinDays": {
            "title": "Posted within",
            "enum": [
              "0",
              "1",
              "7",
              "30"
            ],
            "type": "string",
            "description": "Only return vacancies posted within this window.",
            "default": "0"
          },
          "includeDetails": {
            "title": "Fetch full job details",
            "type": "boolean",
            "description": "Fetch each vacancy's full detail record (description, skills, benefits, salary, hours, education). Turn off for a faster listing-only run.",
            "default": true
          },
          "descriptionFormat": {
            "title": "Description format",
            "enum": [
              "all",
              "text",
              "html",
              "markdown"
            ],
            "type": "string",
            "description": "`all` keeps HTML, text, and markdown variants. `text` / `html` / `markdown` keep only that one.",
            "default": "all"
          },
          "descriptionMaxLength": {
            "title": "Description max length",
            "minimum": 0,
            "type": "integer",
            "description": "Truncate the description to N characters. 0 = no truncation.",
            "default": 0
          },
          "compact": {
            "title": "Compact output",
            "type": "boolean",
            "description": "Return only core fields (title, company, location, salary, category, URL, dates) — ideal for AI-agent and MCP workflows.",
            "default": false
          },
          "excludeEmptyFields": {
            "title": "Exclude empty fields",
            "type": "boolean",
            "description": "Drop null, empty-string, and empty-array fields from each record before it is saved. Smaller payloads for AI agents and dashboards.",
            "default": false
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of vacancies to return (0 = unlimited). This is the number of billed rows. Start small and raise it after checking the search.",
            "default": 25
          },
          "incrementalMode": {
            "title": "Incremental / monitoring mode",
            "type": "boolean",
            "description": "Compare this run against previous runs with the same state key and return only vacancies that are new, updated, or reappeared. The first run records a baseline.",
            "default": false
          },
          "stateKey": {
            "title": "State key",
            "type": "string",
            "description": "A stable name that separates one watchlist or schedule from another.",
            "default": "default"
          },
          "emitUnchanged": {
            "title": "Include unchanged jobs",
            "type": "boolean",
            "description": "Also return vacancies whose tracked content did not change since the last run.",
            "default": false
          },
          "emitExpired": {
            "title": "Include expired jobs",
            "type": "boolean",
            "description": "Also return a record for vacancies that were present before but have now disappeared from the search.",
            "default": false
          },
          "skipReposts": {
            "title": "Skip detected reposts",
            "type": "boolean",
            "description": "Drop new listings that match the tracked content of a previously expired vacancy.",
            "default": false
          },
          "notificationWebhookUrl": {
            "title": "Notification webhook URL",
            "type": "string",
            "description": "Optional HTTPS endpoint that receives a compact JSON summary after a monitoring run."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy routing. The default (automatic) works well for Jobbird.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}