{
  "openapi": "3.0.1",
  "info": {
    "title": "Hays Jobs Scraper: UK, IE, CA, FR, ES, BE, BR [USD 1.49/1K]",
    "description": "Scrape Hays recruitment jobs on 7 country sites (UK, IE, CA, FR, ES, BE, BR): title, place, pay exactly as the page shows it (no guessed period), contract, working pattern, specialism, industry, full description and dates. USD 1.49 per 1,000 jobs.",
    "version": "1.0",
    "x-build-id": "kffdmLncJUm6ug1d6"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/usefulapi~hays-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-usefulapi-hays-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/usefulapi~hays-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-usefulapi-hays-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/usefulapi~hays-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-usefulapi-hays-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": {
          "country": {
            "title": "Country site",
            "enum": [
              "GB",
              "IE",
              "CA",
              "FR",
              "ES",
              "BE",
              "BR"
            ],
            "type": "string",
            "description": "Which Hays site to read: GB (hays.co.uk), IE, CA (English), FR, ES, BE or BR. France, Spain, Belgium and Brazil ask for 10 seconds between pages, so they are slow.",
            "default": "GB"
          },
          "keywords": {
            "title": "Job title words",
            "type": "array",
            "description": "One search per line. Every word must appear in the job's page address (its title and place), for example 'project manager' or 'accountant'. Leave empty to read the newest jobs of the whole site.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Places",
            "type": "array",
            "description": "One search per line: a town or area as it appears in Hays job addresses (london, manchester, leeds, cork, toronto, paris). Leave empty for everywhere.",
            "items": {
              "type": "string"
            }
          },
          "jobType": {
            "title": "Contract type",
            "enum": [
              "",
              "permanent",
              "temporary",
              "contract"
            ],
            "type": "string",
            "description": "Only permanent, temporary or contract jobs. Checked on the job page, so jobs of other types are read but not saved or charged."
          },
          "onlyWithSalary": {
            "title": "Only jobs that show a pay",
            "type": "boolean",
            "description": "Skip jobs whose pay is 'Competitive', 'Negotiable' and the like. Checked on the job page, so those jobs are read but not saved or charged.",
            "default": false
          },
          "maxJobs": {
            "title": "Maximum jobs",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stop after saving this many jobs (across all searches). You pay only for jobs saved.",
            "default": 50
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Only jobs published in the last N days. 0 = any date.",
            "default": 0
          },
          "onlyNewJobs": {
            "title": "Only new jobs since the last run",
            "type": "boolean",
            "description": "Remembers the jobs already delivered for these searches (in a key-value store on your account) and saves only jobs not seen before. Ideal for daily or hourly schedules and job alerts. The first run delivers everything and remembers it.",
            "default": false
          },
          "stateKey": {
            "title": "Memory name for new-jobs mode (optional)",
            "pattern": "^[A-Za-z0-9_-]{0,60}$",
            "type": "string",
            "description": "Use the same name on several schedules to share one memory, or a new name to start fresh. Letters, digits, - and _. Empty = one memory per set of searches."
          },
          "notifyUrl": {
            "title": "Send new jobs to (optional)",
            "pattern": "^(https://.+)?$",
            "type": "string",
            "description": "Paste a Slack or Discord webhook link, or a Zapier or Make webhook (which can email you). After each run that saved jobs you get one message with the count and up to 10 jobs with their links. With 'Only new jobs' on and a schedule, this is a free job alert. Not billed."
          },
          "descriptionFormat": {
            "title": "Description format",
            "enum": [
              "both",
              "text",
              "html",
              "none"
            ],
            "type": "string",
            "description": "Plain text, HTML, both, or none (smaller datasets).",
            "default": "both"
          },
          "maxJobsPerSearch": {
            "title": "Maximum jobs per search",
            "minimum": 0,
            "type": "integer",
            "description": "Cap for each search line, so one broad search does not use up the whole run. 0 = no cap.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Not needed for Hays in our tests. Apify datacenter proxy or your own proxies only; residential proxy is not supported.",
            "default": {
              "useApifyProxy": 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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}