{
  "openapi": "3.0.1",
  "info": {
    "title": "ATS Jobs Scraper: Lever, Greenhouse, Ashby, Workday + 8 More",
    "description": "Jobs from any company on 12 ATSs: Lever (US+EU), Greenhouse, Ashby, Workday, Phenom, Workable, Recruitee, BambooHR, Jobvite, Breezy HR, Personio, Rippling. One format: salary, remote/hybrid, country, department, description, apply link. Country filter, company directory, monitor mode. No login.",
    "version": "0.1",
    "x-build-id": "LmKIXRFTgcZefJYEH"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/yugenox~ats-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-yugenox-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/yugenox~ats-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-yugenox-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/yugenox~ats-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-yugenox-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 or job-board URLs",
            "type": "array",
            "description": "One per line. Paste a job-board URL, a single job URL, a company careers page, or just a company name (\"FedEx\", \"TD\", \"Palantir\"). Supported: Lever (jobs.lever.co, jobs.eu.lever.co), Greenhouse (job-boards.greenhouse.io/acme), Ashby (jobs.ashbyhq.com/acme), Workday (acme.wd5.myworkdayjobs.com/External), Workable (apply.workable.com/acme), Recruitee (acme.recruitee.com), BambooHR (acme.bamboohr.com/careers), Jobvite (jobs.jobvite.com/acme), Breezy HR (acme.breezy.hr), Personio (acme.jobs.personio.de) and Rippling (ats.rippling.com/acme/jobs). A company name finds the company's real board(s) on any of these ATSs, Workday included: a built-in directory of ~1,000 large employers first, then its careers page, its name on each ATS and, as a last resort, a web search. If it posts on a platform this actor doesn't read, the run says which one. You can also force the ATS with a prefix: lever:spotify, lever-eu:seb, greenhouse:stripe, ashby:openai, workable:huggingface, recruitee:trafilea, bamboohr:weber, jobvite:nutanix, breezy:navaide, personio:codecentric, rippling:rippling.",
            "items": {
              "type": "string"
            }
          },
          "ats": {
            "title": "ATS to look up company names on",
            "enum": [
              "auto",
              "lever",
              "greenhouse",
              "ashby",
              "workday",
              "phenom",
              "workable",
              "recruitee",
              "bamboohr",
              "breezy",
              "jobvite",
              "personio",
              "rippling"
            ],
            "type": "string",
            "description": "Only used for plain company names and careers pages. Auto finds the company's real board on any supported ATS (directory, careers page, the name on every ATS incl. Workday, then a web search). Pick one ATS to look only there.",
            "default": "auto"
          },
          "maxJobsPerCompany": {
            "title": "Max jobs per company",
            "minimum": 1,
            "type": "integer",
            "description": "Cap for each company. Leave empty to get every open job on the board."
          },
          "maxJobs": {
            "title": "Max jobs in total",
            "minimum": 1,
            "type": "integer",
            "description": "Cap for the whole run. Leave empty for no limit."
          },
          "keywords": {
            "title": "Job title keywords",
            "type": "array",
            "description": "Keep jobs whose title contains any of these words or phrases (case-insensitive). Example: engineer, data, product manager.",
            "items": {
              "type": "string"
            }
          },
          "searchInDescription": {
            "title": "Also search keywords in the description",
            "type": "boolean",
            "description": "Match keywords against the department, team and full job description too, not just the title.",
            "default": false
          },
          "excludeKeywords": {
            "title": "Exclude title keywords",
            "type": "array",
            "description": "Drop jobs whose title contains any of these. Example: intern, senior, sales.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Keep jobs whose location contains any of these (city, state, country or \"remote\"). Example: London, New York, Canada, remote.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Keep only jobs in these countries. Leave empty for every country (the default). 2-letter codes (CA, US, GB, DE) or English names (Canada, United States, Germany), any case. A job with several locations counts when any of them is in one of these countries; a remote job counts when its region covers the country (\"Remote - US\", \"Remote - North America\"). Jobs outside these countries are never saved or charged.",
            "items": {
              "type": "string"
            }
          },
          "includeRemoteAnywhere": {
            "title": "Also include remote jobs open anywhere",
            "type": "boolean",
            "description": "With \"Countries\" set: also keep remote jobs that name no country or region at all (\"Remote\", \"Anywhere\", \"Worldwide\"). Off by default, so a Canada search returns only jobs that are in Canada or remote within a region that covers it.",
            "default": false
          },
          "workplaceTypes": {
            "title": "Workplace type",
            "type": "array",
            "description": "Keep only on-site, hybrid or remote jobs. Jobs whose board does not say are dropped when this is set.",
            "items": {
              "type": "string",
              "enum": [
                "onsite",
                "hybrid",
                "remote"
              ],
              "enumTitles": [
                "On-site",
                "Hybrid",
                "Remote"
              ]
            }
          },
          "departments": {
            "title": "Departments or teams",
            "type": "array",
            "description": "Keep jobs whose department or team contains any of these. Example: Engineering, Sales, Design.",
            "items": {
              "type": "string"
            }
          },
          "employmentTypes": {
            "title": "Employment types",
            "type": "array",
            "description": "Keep jobs whose employment type contains any of these. Example: full-time, part-time, contract, intern.",
            "items": {
              "type": "string"
            }
          },
          "postedWithinDays": {
            "title": "Posted within the last N days",
            "minimum": 1,
            "type": "integer",
            "description": "Only jobs first published in the last N days."
          },
          "salaryOnly": {
            "title": "Only jobs with a salary range",
            "type": "boolean",
            "description": "Keep only jobs that publish a structured salary range.",
            "default": false
          },
          "includeDescription": {
            "title": "Job description",
            "enum": [
              "plain",
              "html",
              "both",
              "none"
            ],
            "type": "string",
            "description": "Plain text is best for search and AI. HTML keeps the formatting. None gives a much smaller dataset and is faster on BambooHR, Rippling and Workday, whose descriptions, posting dates and pay are read job by job (with None and no filters those fields stay empty there).",
            "default": "plain"
          },
          "includeCompanyInfo": {
            "title": "Company name and logo",
            "type": "boolean",
            "description": "Read the company's display name and logo from its job board (website too on Ashby). Adds one small request per company. Most other ATSes include the name for free.",
            "default": false
          },
          "searchDirectory": {
            "title": "Search the company directory",
            "type": "boolean",
            "description": "Also search thousands of companies you did not list: every company in the built-in directory of BambooHR, Recruitee, Jobvite, Workable, Breezy HR, Personio and Rippling job boards that currently has open jobs (biggest boards first). Combine it with Job title keywords, Countries and the other filters to find matching jobs across all of them. \"Companies\" can be left empty.",
            "default": false
          },
          "directoryAts": {
            "title": "Directory: ATSs to include",
            "type": "array",
            "description": "Leave empty for all of them.",
            "items": {
              "type": "string",
              "enum": [
                "bamboohr",
                "recruitee",
                "jobvite",
                "workable",
                "breezy",
                "personio",
                "rippling"
              ],
              "enumTitles": [
                "BambooHR",
                "Recruitee",
                "Jobvite",
                "Workable",
                "Breezy HR",
                "Personio",
                "Rippling"
              ]
            }
          },
          "directoryCompanyKeywords": {
            "title": "Directory: company name contains",
            "type": "array",
            "description": "Only directory companies whose name contains any of these (e.g. health, bank, logistics). Countries set under Filters also narrow the directory to companies hiring there.",
            "items": {
              "type": "string"
            }
          },
          "maxDirectoryCompanies": {
            "title": "Directory: max companies",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "How many directory companies to search, biggest boards first.",
            "default": 200
          },
          "monitorMode": {
            "title": "Only new and removed jobs (monitor mode)",
            "type": "boolean",
            "description": "Remember which jobs each board had last time and save only what changed: new jobs (changeType \"new\") and closed ones (changeType \"removed\"). The first run saves every job as new. Schedule it daily to track hiring. State is kept per set of companies and filters.",
            "default": false
          },
          "monitorKey": {
            "title": "Monitor name",
            "type": "string",
            "description": "Optional. Give each monitored list its own name to keep separate histories. Leave empty and one is derived from your companies and filters."
          },
          "includeUnchanged": {
            "title": "Also save unchanged jobs",
            "type": "boolean",
            "description": "In monitor mode, also save jobs that were already there last time (changeType \"unchanged\").",
            "default": false
          },
          "maxConcurrency": {
            "title": "Companies in parallel",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many job boards to read at the same time.",
            "default": 5
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy is used by default. Failing requests are retried on fresh IPs automatically.",
            "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}