{
  "openapi": "3.0.1",
  "info": {
    "title": "ATS Jobs Scraper — Workday, Greenhouse, BambooHR | $1.49/1k",
    "description": "Open jobs from company career boards on Workday, Greenhouse, Lever, Ashby, SmartRecruiters, Workable, Recruitee, Personio, Teamtailor, BambooHR and Breezy. Give board URLs or company names; get one normalized row per job: title, location, remote, salary, dates, advert text. No API keys.",
    "version": "0.1",
    "x-build-id": "ocilF8pAwJM4EEEno"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/glasswing~ats-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-glasswing-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/glasswing~ats-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-glasswing-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/glasswing~ats-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-glasswing-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",
            "uniqueItems": true,
            "type": "array",
            "description": "Each entry is one of: a board URL (https://boards.greenhouse.io/stripe, https://jobs.lever.co/palantir, https://jobs.ashbyhq.com/ramp, https://jobs.smartrecruiters.com/BoschGroup, https://apply.workable.com/blueground, https://bunq.recruitee.com, https://holidu.jobs.personio.de, https://career.teamtailor.com, a Workday career site such as https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite (any page under it), https://particle.bamboohr.com/careers, https://brilliant.breezy.hr), an `ats:slug` pair (greenhouse:stripe, lever:palantir, ashby:ramp, smartrecruiters:BoschGroup, workable:blueground, recruitee:bunq, personio:holidu, teamtailor:career.teamtailor.com, lever-eu:slug, workday:nvidia/wd5/NVIDIAExternalCareerSite, bamboohr:particle, breezy:brilliant), or a bare company name (stripe). A bare name is auto-detected by trying ten systems (all but Workday, which needs its career-site URL) in a fixed order until one lists jobs; if none does you get one free `not_found` row for that company.",
            "default": [
              "greenhouse:duolingo",
              "ashby:linear",
              "lever:spotify"
            ],
            "items": {
              "type": "string"
            }
          },
          "titleKeywords": {
            "title": "Title keywords (any of)",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep a job when its title contains at least one of these words or phrases (case-insensitive), e.g. `engineer`, `account executive`. Leave empty for every job. On Workday boards the keywords are also sent to Workday's own search, which saves requests on big boards.",
            "items": {
              "type": "string"
            }
          },
          "locationContains": {
            "title": "Location contains",
            "type": "string",
            "description": "Keep a job when its location, any of its extra locations or its country contains this text (case-insensitive), e.g. `Berlin`, `United States`, `GB`."
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Keep only postings the ATS marks as remote (or, where the ATS has no remote flag, whose location says Remote).",
            "default": false
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep only jobs published in the last N days, e.g. `30` for the last month. Uses the posting's published date, or its updated date when the ATS gives no published date. Leave empty for all."
          },
          "maxItems": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stop after this many rows have been saved. Each saved row with status `ok` is one billable result. The default of 20 keeps a first run cheap; raise it for production runs (a large board has 500 to 5,000 jobs).",
            "default": 20
          },
          "maxItemsPerCompany": {
            "title": "Maximum results per company",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Take at most this many jobs from each company, so one large board cannot use up the whole run. Leave empty for no per-company cap. The prefilled 7 makes the default run show three different systems."
          },
          "includeDescription": {
            "title": "Include job description",
            "type": "boolean",
            "description": "Add the full advert to every row as `descriptionText` (plain text, HTML removed, e-mail addresses and phone numbers masked). Turn off for a lighter, faster run; the price per row does not change. SmartRecruiters, Workday, BambooHR and Breezy need one extra request per job for the text (Workday and BambooHR also give the exact posting date there), made only for jobs that passed your filters and caps.",
            "default": true
          },
          "startUrls": {
            "title": "Start URLs (alias of Companies)",
            "uniqueItems": true,
            "type": "array",
            "description": "Same meaning and same accepted forms as Companies; both lists are merged and de-duplicated. When this list still holds its default while Companies was changed (or the other way round), the default list is ignored.",
            "default": [
              "https://job-boards.greenhouse.io/duolingo",
              "https://jobs.ashbyhq.com/linear",
              "https://jobs.lever.co/spotify"
            ],
            "items": {
              "type": "string"
            }
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional and off by default. The eleven systems answer plain HTTP requests from Apify's datacenter IPs, so no proxy is needed; enable the datacenter group only if you see `error` rows. Residential proxies are not required.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}