{
  "openapi": "3.0.1",
  "info": {
    "title": "Randstad.nl Vacatures Scraper",
    "description": "Extract job listings from Randstad.nl — the largest Dutch staffing agency. Thousands of temp, flex and permanent vacancies with salary, location and contract filters. Full descriptions in HTML, text and Markdown. Repost detection. No API key required.",
    "version": "0.0",
    "x-build-id": "0ybEmjOLprPaCFxOm"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/unfenced-group~randstad-nl-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-unfenced-group-randstad-nl-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/unfenced-group~randstad-nl-scraper/runs": {
      "post": {
        "operationId": "runs-sync-unfenced-group-randstad-nl-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/unfenced-group~randstad-nl-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-unfenced-group-randstad-nl-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": {
          "searchQuery": {
            "title": "Zoekterm",
            "type": "string",
            "description": "Zoekterm voor vacatures, bijv. 'developer', 'verpleegkundige'. Leeg laten = alle vacatures in heel Nederland.",
            "default": ""
          },
          "city": {
            "title": "Stad / Locatie",
            "type": "string",
            "description": "Stad voor locatiefilter, bijv. 'Amsterdam', 'Rotterdam', 'Utrecht'. Leeg laten = heel Nederland.",
            "default": ""
          },
          "radius": {
            "title": "Zoekstraal (km)",
            "enum": [
              "5",
              "10",
              "20",
              "30",
              "40",
              "50",
              "75",
              "100"
            ],
            "type": "string",
            "description": "Zoekstraal rondom de opgegeven stad in kilometer. Alleen van toepassing als een stad is opgegeven.",
            "default": "40"
          },
          "employmentType": {
            "title": "Soort dienstverband",
            "enum": [
              "",
              "vast",
              "tijdelijk",
              "detachering",
              "uitzicht"
            ],
            "type": "string",
            "description": "Filter op type dienstverband. Waarden zijn geverifieerd via de Randstad.nl API op 20 maart 2026.",
            "default": ""
          },
          "educationLevel": {
            "title": "Opleidingsniveau",
            "enum": [
              "",
              "basisonderwijs",
              "vmbo",
              "mbo",
              "hbo",
              "wo"
            ],
            "type": "string",
            "description": "Filter op vereist opleidingsniveau. Waarden zijn geverifieerd via de Randstad.nl API op 20 maart 2026.",
            "default": ""
          },
          "sector": {
            "title": "Vakgebied",
            "enum": [
              "",
              "ict",
              "engineering",
              "financieel",
              "logistiek",
              "zorg",
              "overheid",
              "marketing",
              "hr",
              "juridisch",
              "techniek",
              "onderwijs",
              "horeca",
              "administratief",
              "commercieel",
              "management",
              "medisch",
              "bouw",
              "schoonmaak",
              "beveiliging",
              "secretarieel",
              "transport"
            ],
            "type": "string",
            "description": "Filter op vakgebied. 26 geverifieerde waarden uit de Randstad.nl API filters op 20 maart 2026.",
            "default": ""
          },
          "maxResults": {
            "title": "Maximaal aantal vacatures",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum aantal vacatures om op te halen. Randstad toont 30 resultaten per pagina, dus 100 = 4 pagina's.",
            "default": 100
          },
          "useProxy": {
            "title": "Proxy gebruiken",
            "type": "boolean",
            "description": "Gebruik Apify AUTO proxy. Normaal niet nodig — Randstad.nl blokkeert Apify datacenter IP-adressen niet.",
            "default": false
          },
          "debugMode": {
            "title": "Debug modus",
            "type": "boolean",
            "description": "Sla de ruwe JSON-response van de eerste API-pagina op als 'debug-api-p1' in de key-value store voor inspectie.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}