{
  "openapi": "3.0.1",
  "info": {
    "title": "Ats Job Scraper",
    "version": "0.0",
    "x-build-id": "0i7q9Od2Qqn8JEQ6v"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/excellent_mustang~ats-job-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-excellent_mustang-ats-job-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/excellent_mustang~ats-job-scraper/runs": {
      "post": {
        "operationId": "runs-sync-excellent_mustang-ats-job-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/excellent_mustang~ats-job-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-excellent_mustang-ats-job-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 career boards",
            "minItems": 1,
            "maxItems": 500,
            "uniqueItems": true,
            "type": "array",
            "description": "One entry per company. Accepts a careers URL (https://boards.greenhouse.io/monzo, https://jobs.ashbyhq.com/ramp, https://sanofi.wd3.myworkdayjobs.com/en-US/SanofiCareers), a plain domain (monzo.com), a company name (Datadog), or an explicit token (greenhouse:monzo, lever:spotify, ashby:ramp, workday:sanofi:wd3:SanofiCareers). Domains and names are auto-detected and verified against the live board before scraping.",
            "default": [
              "greenhouse:monzo",
              "lever:spotify",
              "ashby:ramp"
            ],
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Maximum jobs",
            "minimum": 1,
            "maximum": 200000,
            "type": "integer",
            "description": "Total number of job postings to return across all boards.",
            "default": 500
          },
          "maxJobsPerBoard": {
            "title": "Maximum jobs per board",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Cap the jobs taken from any single company, so one very large employer cannot consume the whole run. 0 means no per-board cap.",
            "default": 0
          },
          "includeDescription": {
            "title": "Include full job description",
            "type": "boolean",
            "description": "Add the complete job description as plain text. Descriptions are large, so this materially increases dataset size. Recruiter names, emails and phone numbers are always stripped, whether or not this is on.",
            "default": false
          },
          "titleKeywords": {
            "title": "Title must contain any of",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only jobs whose title contains at least one of these (case-insensitive), e.g. engineer, data, product.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeTitleKeywords": {
            "title": "Title must not contain",
            "uniqueItems": true,
            "type": "array",
            "description": "Drop jobs whose title contains any of these, e.g. intern, contract.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only jobs in these countries, as ISO-3166 alpha-2 codes (GB, DE, FR, IE, NL, ES, PL, US...). Leave empty for all countries.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Keep only postings flagged as remote. Hybrid roles are not counted as remote.",
            "default": false
          },
          "withSalaryOnly": {
            "title": "Only jobs with a published salary",
            "type": "boolean",
            "description": "Keep only postings where a salary range could be extracted. Note that most employers do not publish pay, so this filter removes a large share of results.",
            "default": false
          },
          "postedWithinDays": {
            "title": "Posted within the last N days",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep only jobs posted in this window. 0 disables the filter.",
            "default": 0
          },
          "trackHistory": {
            "title": "Track first seen / last seen",
            "type": "boolean",
            "description": "Remember which jobs were seen on previous runs so each posting carries firstSeenAt, lastSeenAt and isNew. History is stored in your own key-value store and persists between runs of this Actor.",
            "default": true
          },
          "newJobsOnly": {
            "title": "Return only newly discovered jobs",
            "type": "boolean",
            "description": "Push only postings never seen on a previous run. Requires history tracking. On the very first run everything is new, so every job is returned.",
            "default": false
          },
          "enableWorkdayDiscovery": {
            "title": "Try to auto-discover Workday tenants",
            "type": "boolean",
            "description": "Workday site names are not derivable from a company domain, so finding one means probing up to ~24 host and site combinations per company. Off by default because it is slow and often fruitless. For Workday, passing the careers URL directly is faster and always works.",
            "default": false
          },
          "workdayJobDetails": {
            "title": "Fetch Workday per-job details",
            "type": "boolean",
            "description": "Workday's list endpoint omits country and description. Enabling this fetches each Workday job individually to fill them in, at one extra request per job.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Maximum concurrency",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Parallel HTTP requests. Raise it for large multi-company runs; lower it if a board starts rate-limiting.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. These ATS APIs are public and reachable without a proxy, so this is off by default. Enable Apify Proxy for very large runs.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}