{
  "openapi": "3.0.1",
  "info": {
    "title": "ATS Jobs Scraper: Greenhouse, Lever, Ashby, Workday & 7 More",
    "description": "Open jobs straight from company career sites: Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable, Recruitee, Personio, Teamtailor, Breezy HR and Pinpoint. Paste career URLs or just company names. Salary, remote/hybrid, filters and only-new-jobs mode.",
    "version": "0.2",
    "x-build-id": "VnMw36faNBPXiiOjU"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sports-odds-lab~ats-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sports-odds-lab-ats-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/sports-odds-lab~ats-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sports-odds-lab-ats-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/sports-odds-lab~ats-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sports-odds-lab-ats-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": {
          "companies": {
            "title": "Companies",
            "type": "array",
            "description": "One company per line, in any of these forms:\n• a job board URL — boards.greenhouse.io/stripe, jobs.lever.co/palantir, jobs.ashbyhq.com/openai, nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite, jobs.smartrecruiters.com/BoschGroup, apply.workable.com/…, ….recruitee.com, ….jobs.personio.de, ….teamtailor.com, ….breezy.hr, ….pinpointhq.com\n• the company's own careers page or website (figma.com/careers) — the Actor finds the job board it uses\n• just the name (OpenAI, Databricks, Notion) — the Actor tries it on every ATS and picks the board with most jobs\n• 'ats:slug' to be explicit (greenhouse:stripe, lever:palantir, smartrecruiters:BoschGroup)\nWorkday sites always need their URL.\nLeave it empty when you use 'Search all companies'.",
            "items": {
              "type": "string"
            }
          },
          "searchAllCompanies": {
            "title": "Search all companies",
            "type": "boolean",
            "description": "Search every company in the built-in directory — thousands of companies on Greenhouse, Lever, Ashby, Workday and more — instead of (or besides) your list. Needs at least one filter below, e.g. job title words or a location. Workday, SmartRecruiters and Workable sites are included when you give job title words.",
            "default": false
          },
          "directoryAts": {
            "title": "Directory: only these systems",
            "type": "array",
            "description": "Optional: search only the directory companies on these systems. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "greenhouse",
                "lever",
                "ashby",
                "workday",
                "smartrecruiters",
                "workable",
                "recruitee",
                "personio",
                "teamtailor",
                "breezy",
                "pinpoint"
              ],
              "enumTitles": [
                "Greenhouse",
                "Lever",
                "Ashby",
                "Workday",
                "SmartRecruiters",
                "Workable",
                "Recruitee",
                "Personio",
                "Teamtailor",
                "Breezy HR",
                "Pinpoint"
              ]
            }
          },
          "keywords": {
            "title": "Job title contains",
            "type": "array",
            "description": "Keep jobs whose title contains any of these words or phrases (case-insensitive), e.g. 'data engineer', 'product manager', 'ML'. Short words like 'AI' or 'QA' match whole words only. Empty = all jobs.",
            "items": {
              "type": "string"
            }
          },
          "searchInDescription": {
            "title": "Also search job descriptions",
            "type": "boolean",
            "description": "Match the keywords in the description too, not only the title (e.g. a skill like 'Kubernetes').",
            "default": false
          },
          "excludeKeywords": {
            "title": "Job title does not contain",
            "type": "array",
            "description": "Drop jobs whose title contains any of these, e.g. 'senior', 'intern', 'manager'.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Keep jobs in any of these places: a city, region or country ('Berlin', 'California', 'Germany', 'US', 'UK'), or 'Remote'. Matched against every location of the job. Empty = anywhere.",
            "items": {
              "type": "string"
            }
          },
          "workplace": {
            "title": "Remote / hybrid / on-site",
            "enum": [
              "any",
              "remote",
              "hybrid",
              "onsite",
              "remoteOrHybrid"
            ],
            "type": "string",
            "description": "Keep only remote, hybrid or on-site jobs. Jobs whose board says nothing about it count as unknown and are dropped by this filter.",
            "default": "any"
          },
          "employmentTypes": {
            "title": "Employment type",
            "type": "array",
            "description": "Keep only these types. Jobs whose board does not state a type are kept.",
            "items": {
              "type": "string",
              "enum": [
                "full-time",
                "part-time",
                "contract",
                "temporary",
                "internship",
                "apprenticeship",
                "volunteer",
                "other"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract / freelance",
                "Temporary",
                "Internship",
                "Apprenticeship",
                "Volunteer",
                "Other"
              ]
            }
          },
          "departments": {
            "title": "Departments",
            "type": "array",
            "description": "Keep jobs whose department or team contains any of these, e.g. 'Engineering', 'Sales'. Jobs without a department are kept.",
            "items": {
              "type": "string"
            }
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 0,
            "type": "integer",
            "description": "Only jobs posted in the last N days. 0 = any time. Jobs on boards that show no posting date (Pinpoint) are dropped by this filter.",
            "default": 0
          },
          "onlyNew": {
            "title": "Only new jobs since the previous run",
            "type": "boolean",
            "description": "For schedules: skip jobs that an earlier run with the same companies and filters already delivered, so you get — and pay for — new postings only. The first run returns all current jobs. The memory is kept in the key-value store 'ats-jobs-incremental' in your account.",
            "default": false
          },
          "incrementalName": {
            "title": "Memory name (only new jobs)",
            "type": "string",
            "description": "Optional: your own name for the 'only new jobs' memory, e.g. to share it between tasks or start over with a fresh name. Empty = one memory per combination of companies and filters."
          },
          "descriptionFormat": {
            "title": "Job description",
            "enum": [
              "text",
              "html",
              "both",
              "none"
            ],
            "type": "string",
            "description": "Plain text, HTML, both, or none. 'None' is fastest on Workday, SmartRecruiters, Workable and Breezy HR, which need one extra request per job for the description and exact posting date.",
            "default": "text"
          },
          "maxJobsPerCompany": {
            "title": "Max jobs per company",
            "minimum": 0,
            "type": "integer",
            "description": "Newest first. 0 = no limit.",
            "default": 0
          },
          "maxItems": {
            "title": "Max jobs in total",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many saved jobs. 0 = no limit.",
            "default": 0
          },
          "concurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "type": "integer",
            "description": "How many requests run at once (up to 8 per job board and 3 boards at a time; more when searching all companies).",
            "default": 24
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}