Ats Job Scraper
Pricing
from $3.00 / 1,000 results
Go to Apify Store
You can access the Ats Job Scraper programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "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 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for Ats Job Scraper from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: