{
  "openapi": "3.0.1",
  "info": {
    "title": "Career Site Job Board Scraper: Greenhouse, Lever, Ashby +4 ATS",
    "description": "Live jobs scraper for 7 public ATS and career-site boards: Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Personio and Recruitee. Paste company slugs or careers URLs and get every open role with title, location, remote, department, salary, apply URL and posting age, plus hiring momentum.",
    "version": "1.0",
    "x-build-id": "qietWZORpTxSmmjkd"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ntriqpro~ats-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ntriqpro-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/ntriqpro~ats-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-ntriqpro-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/ntriqpro~ats-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-ntriqpro-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",
        "required": [
          "disclaimerAck"
        ],
        "properties": {
          "companies": {
            "title": "Companies",
            "type": "array",
            "description": "Company slugs or careers-page URLs. Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee and Personio are detected automatically — paste https://boards.greenhouse.io/dropbox, https://jobs.lever.co/binance, https://jobs.ashbyhq.com/linear, https://apply.workable.com/blueground, https://jobs.smartrecruiters.com/Bosch, https://teeturtle.recruitee.com or https://personio.jobs.personio.de. A bare name like \"dropbox\" is probed across all seven boards; a URL is always faster and unambiguous.",
            "items": {
              "type": "string"
            }
          },
          "company": {
            "title": "Company (single)",
            "type": "string",
            "description": "Alternative to the list above — one company slug or careers-page URL."
          },
          "keywords": {
            "title": "Job title keywords",
            "type": "array",
            "description": "Keep only roles whose title contains one of these words, e.g. engineer, designer, sales. Leave empty to get every open role. Matching is case-insensitive.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Keep only roles whose location mentions one of these, e.g. London, Remote, United States. Leave empty for every location.",
            "items": {
              "type": "string"
            }
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only roles first published within this many days. 0 or empty means no date filter. Roles whose board publishes no posting date are always kept."
          },
          "maxJobsPerCompany": {
            "title": "Max jobs per company",
            "minimum": 0,
            "type": "integer",
            "description": "Ceiling on rows returned per company. 0 means unlimited — this Actor reads the whole board live and has no 5,000-job cap."
          },
          "includeDescription": {
            "title": "Include full job description",
            "type": "boolean",
            "description": "Add the full job description as plain text to every row. Off by default because descriptions make the dataset much larger.",
            "default": false
          },
          "monitorMode": {
            "title": "Monitor mode (weekly change alerts)",
            "type": "boolean",
            "description": "Compare this run with your previous run and return only what changed — roles posted since last time, roles whose title or location moved, and roles that are no longer listed (filled, withdrawn or expired). Every row gets a changeType of new / changed / removed / unchanged. Schedule this Actor weekly to get only what changed. The first run saves a baseline and returns every open role.",
            "default": false
          },
          "monitorKey": {
            "title": "Monitor key (optional)",
            "type": "string",
            "description": "Name this watch, e.g. \"competitor-hiring-weekly\". Runs sharing a key are compared with each other, so you can keep several independent watches. Leave empty and the key is derived from your input automatically — which is what you want when one schedule always sends the same companies and filters."
          },
          "includeUnchanged": {
            "title": "Include unchanged roles",
            "type": "boolean",
            "description": "Monitor mode only. Off by default, so a quiet week returns just the change report. Turn on to also receive every role that is still open and unchanged (each one is a result row and is charged).",
            "default": false
          },
          "previousDatasetIds": {
            "title": "Compare with previous runs (dataset IDs)",
            "type": "array",
            "description": "Paste the dataset ID of one or more earlier runs of this Actor. Every job row then says whether it is new since that baseline, and every company summary gets open roles now vs then, the change, how many roles opened and which ones are no longer listed. Leave empty and comparisonStatus is no_baseline with the change fields null — one reading is not a trend. Closures are only reported when the run reads whole boards, because a role removed by your own filters is not a closed role.",
            "items": {
              "type": "string"
            }
          },
          "disclaimerAck": {
            "title": "I understand how this Actor sources data",
            "type": "boolean",
            "description": "This Actor reads only the public, unauthenticated job-board endpoints that each ATS serves to a company's own careers page. It is unofficial and not affiliated with Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Personio, Recruitee or any employer; those names are used only to say which boards are read. You are responsible for complying with each ATS's and each employer's terms of service, and you are the data controller for everything you collect.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}