{
  "openapi": "3.0.1",
  "info": {
    "title": "Career Site Jobs API: Job Postings from 19,000 Company Sites",
    "description": "Career site jobs API: search job listings on 19,000 company career sites (Workday, Greenhouse, Lever, Ashby, Oracle, iCIMS +8) by keyword, country, date and salary floor. Bench 10-09: 19 of 19 checks vs 11 of 19 for the most-used career site jobs API.",
    "version": "0.11",
    "x-build-id": "RG1Fph8P0SWbd5P2Q"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/hiver~career-site-job-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-hiver-career-site-job-search",
        "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/hiver~career-site-job-search/runs": {
      "post": {
        "operationId": "runs-sync-hiver-career-site-job-search",
        "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/hiver~career-site-job-search/run-sync": {
      "post": {
        "operationId": "run-sync-hiver-career-site-job-search",
        "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 (any of)",
            "type": "array",
            "description": "Jobs whose title (or full text, if you turn on description search) contains at least one of these words or phrases, matched at the start of a word, not case sensitive. Example: \"data engineer\", \"python\".",
            "items": {
              "type": "string"
            }
          },
          "titleTerms": {
            "title": "Job title must contain (any of)",
            "type": "array",
            "description": "Optional stricter filter: the job title itself must contain one of these. Use it together with keywords when keywords search descriptions.",
            "items": {
              "type": "string"
            }
          },
          "excludeTerms": {
            "title": "Job title must not contain",
            "type": "array",
            "description": "Drop jobs whose title contains any of these words, e.g. \"intern\", \"manager\".",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Location (any of)",
            "type": "array",
            "description": "Keep jobs in these places. A country name or code (\"United States\", \"US\", \"USA\", \"United Kingdom\", \"UK\", \"Germany\", \"DE\") matches the job's country, read from the job board's own country field or office list (whole words only: \"US\" never matches inside another word). \"CA\" alone means Canada (California is \"California\" or \"San Francisco, CA\"). Any other term (\"Berlin\", \"Austin\", \"Remote\") matches whole words in the job's location text. Leave empty for anywhere.",
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Keep only jobs the company marks as remote (or whose location says remote).",
            "default": false
          },
          "postedWithinDays": {
            "title": "Posted within the last N days",
            "minimum": 1,
            "type": "integer",
            "description": "Keep only jobs published in the last N days. Jobs without a published date are dropped when this is set. Leave empty for all open jobs.",
            "default": 7
          },
          "minSalary": {
            "title": "Minimum pay (per year)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only jobs whose posted pay range reaches this annual amount (top of the range, or the single figure). Hourly, weekly and monthly pay is converted to a year (hour x 2080, month x 12) for the comparison only; the output keeps the posted numbers. Jobs with no pay stated are dropped unless you turn on the option below. Dropped jobs are never delivered or charged."
          },
          "salaryCurrency": {
            "title": "Pay currency",
            "type": "string",
            "description": "Currency of the minimum pay, e.g. USD, EUR, GBP. Only jobs paying in this currency are compared; no exchange rates are applied.",
            "default": "USD"
          },
          "includeJobsWithoutSalary": {
            "title": "Keep jobs with no pay stated",
            "type": "boolean",
            "description": "With a minimum pay set, also keep jobs that state no pay (marked salaryKnown: false).",
            "default": false
          },
          "jobTypes": {
            "title": "Job types (any of)",
            "type": "array",
            "description": "Keep only jobs of these types (jobType field), applied before maxJobs. Read from the board's employment type, the title ('Intern', 'Co-op') or an explicit statement in the posting text ('Employment type: Full-time', 'this is a contract role'). Leave empty for all jobs.",
            "items": {
              "type": "string",
              "enum": [
                "FULL_TIME",
                "PART_TIME",
                "CONTRACT",
                "TEMPORARY",
                "INTERNSHIP"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Temporary / seasonal",
                "Internship / co-op"
              ]
            }
          },
          "includeUnknownJobType": {
            "title": "Keep jobs with no type stated",
            "type": "boolean",
            "description": "With job types set, also keep jobs whose type is not stated (jobType: null). Off by default: they are left out.",
            "default": false
          },
          "sources": {
            "title": "Job board systems",
            "type": "array",
            "description": "Which applicant-tracking systems to search. The default is every system except Workable (14 systems, about 19,000 boards).",
            "items": {
              "type": "string",
              "enum": [
                "greenhouse",
                "lever",
                "ashby",
                "smartrecruiters",
                "workable",
                "recruitee",
                "workday",
                "oracle",
                "icims",
                "personio",
                "teamtailor",
                "bamboohr",
                "breezy",
                "pinpoint",
                "rippling"
              ],
              "enumTitles": [
                "Greenhouse",
                "Lever",
                "Ashby",
                "SmartRecruiters",
                "Workable",
                "Recruitee",
                "Workday",
                "Oracle Recruiting Cloud",
                "iCIMS",
                "Personio",
                "Teamtailor",
                "BambooHR",
                "Breezy HR",
                "Pinpoint",
                "Rippling"
              ]
            },
            "default": [
              "greenhouse",
              "lever",
              "ashby",
              "smartrecruiters",
              "recruitee",
              "workday",
              "oracle",
              "icims",
              "personio",
              "teamtailor",
              "bamboohr",
              "breezy",
              "pinpoint",
              "rippling"
            ]
          },
          "searchDescriptions": {
            "title": "Also search job descriptions",
            "type": "boolean",
            "description": "Match keywords in the full description, not just the title. Slower (Greenhouse boards are downloaded in full). Not available for SmartRecruiters, which only exposes titles in its list.",
            "default": false
          },
          "includeDescription": {
            "title": "Include full job description",
            "type": "boolean",
            "description": "Adds descriptionText and descriptionHtml to each job. Same price either way; turn off for a smaller dataset.",
            "default": true
          },
          "maxJobs": {
            "title": "Max jobs in total",
            "minimum": 1,
            "type": "integer",
            "description": "Hard cap on jobs delivered (and charged) in this run. The search stops as soon as it is reached.",
            "default": 50
          },
          "maxJobsPerBoard": {
            "title": "Max jobs per company",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many matching jobs from one company board, so one big employer does not fill the result. Leave empty for no limit."
          },
          "maxBoardsPerSource": {
            "title": "Max boards per system",
            "minimum": 1,
            "type": "integer",
            "description": "Scan only the first N boards of each system in the directory (for quick tests). Leave empty to scan every board."
          },
          "extraBoards": {
            "title": "Extra boards to include",
            "type": "array",
            "description": "Company job-board addresses not in the bundled directory, e.g. https://jobs.lever.co/spotify. They are scanned first.",
            "items": {
              "type": "string"
            }
          },
          "onlyNew": {
            "title": "Only jobs new since the last run",
            "type": "boolean",
            "description": "For scheduled alerts. Delivers (and charges) only jobs not delivered before under the same monitor ID. The first run delivers every current match and remembers it.",
            "default": false
          },
          "monitorId": {
            "title": "Monitor ID",
            "type": "string",
            "description": "A name you choose for this search, e.g. \"backend-berlin\". Runs with the same monitor ID share their memory of delivered jobs (stored in your account). Required with onlyNew."
          },
          "maxMinutes": {
            "title": "Max run time (minutes)",
            "minimum": 1,
            "type": "integer",
            "description": "Optional time limit for any live sweeping. Searches answered from the index take about a minute and ignore it; leave empty."
          },
          "useIndex": {
            "title": "Use the index",
            "type": "boolean",
            "description": "Answer from the index of all boards, refreshed on a rotation twice a day, stalest parts first; each run reports the age of the oldest part it used, and stale parts are also read live (about a minute), then re-check each match on the employer's own board. Turn off to read every board live (slow: 15+ minutes for all systems, so combine with maxMinutes or fewer systems).",
            "default": true
          },
          "liveTopUpSeconds": {
            "title": "Live top-up seconds",
            "minimum": 0,
            "type": "integer",
            "description": "After the index answer, seconds spent reading live the boards the index lacks or holds only partly (most outdated first). 0 = index and the live re-check of matches only. Ignored when maxMinutes is set.",
            "default": 5
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}