{
  "openapi": "3.0.1",
  "info": {
    "title": "ATS Jobs API — 1.3M Jobs from 24,000+ Companies, One Search",
    "description": "One search over 1.3M open jobs from 24,000+ company career sites on Workday, Greenhouse, Lever, Ashby, SmartRecruiters, Workable and 4 more ATS, with full descriptions. No company list needed: the index is rebuilt daily. Or track named companies with only-new alerts. $2 per 1,000 jobs.",
    "version": "0.2",
    "x-build-id": "p8P4TFUd52hdC7BsQ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/suitable_sunspot~keyless-ats-jobs-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-suitable_sunspot-keyless-ats-jobs-api",
        "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/suitable_sunspot~keyless-ats-jobs-api/runs": {
      "post": {
        "operationId": "runs-sync-suitable_sunspot-keyless-ats-jobs-api",
        "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/suitable_sunspot~keyless-ats-jobs-api/run-sync": {
      "post": {
        "operationId": "run-sync-suitable_sunspot-keyless-ats-jobs-api",
        "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": {
          "keywords": {
            "title": "Job title keywords",
            "type": "array",
            "description": "Keep jobs whose title contains any of these words (matched at word start: 'engineer' matches 'Engineering Manager', 'AI' does not match 'maintain'). Leave companies empty to search every company in the daily index of ~20,000 live Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable, Recruitee, Teamtailor, Breezy and Personio boards. Filtered-out jobs are free.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude title keywords",
            "type": "array",
            "description": "Drop jobs whose title contains any of these, e.g. senior, intern, sales.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Keep jobs whose location contains any of these (city, region or country as written in the posting, e.g. Berlin, London, Germany, United States). Use 'remote' to also accept remote roles.",
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Keep only jobs the ATS flags as remote or whose title/location says remote, anywhere or work from home.",
            "default": false
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Only jobs first published in the last N days. Jobs without a publish date are dropped when this is set."
          },
          "atsPlatforms": {
            "title": "ATS platforms",
            "type": "array",
            "description": "Only jobs from these applicant tracking systems. Empty = all ten.",
            "items": {
              "type": "string",
              "enum": [
                "greenhouse",
                "lever",
                "ashby",
                "workday",
                "smartrecruiters",
                "workable",
                "recruitee",
                "teamtailor",
                "breezy",
                "personio"
              ]
            }
          },
          "companies": {
            "title": "Companies (names, ATS boards or careers URLs)",
            "type": "array",
            "description": "Optional. Company names (Stripe, Notion, NVIDIA — looked up in a directory of ~35,000 ATS boards), 'vendor:board' strings (greenhouse:gitlab, lever:palantir, ashby:openai) or careers-page URLs (https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite). Fetched live. Leave empty to search the whole index with the filters above.",
            "items": {
              "type": "string"
            }
          },
          "companyWebsites": {
            "title": "Company websites (auto-detect ATS)",
            "type": "array",
            "description": "Optional. Company websites (stripe.com) or careers-page URLs; the Actor finds which ATS each company uses. Companies it cannot match are listed in the coverage report as not_detected and cost nothing.",
            "items": {
              "type": "string"
            }
          },
          "onlyNewJobs": {
            "title": "Only new jobs since the last run (hiring signals)",
            "type": "boolean",
            "description": "Turn this on for scheduled monitoring. The Actor remembers which jobs it already delivered (in a named key-value store in your own Apify account) and returns only postings that appeared since your previous run. You pay only for the new rows. The first run returns all current jobs as the baseline.",
            "default": false
          },
          "stateKey": {
            "title": "Monitor name",
            "type": "string",
            "description": "Used with 'Only new jobs'. Keep one name per watch-list (e.g. 'sales-targets', 'competitors') so different schedules keep separate memories.",
            "default": "default"
          },
          "maxJobsPerCompany": {
            "title": "Max jobs per company",
            "minimum": 1,
            "type": "integer",
            "description": "Cap per company. Hitting it is reported as coverageStatus=capped with a reason, never a silent truncation. Default 200; raise it for big employers.",
            "default": 200
          },
          "maxItems": {
            "title": "Max items (run-wide)",
            "minimum": 1,
            "type": "integer",
            "description": "Hard ceiling on delivered rows across all companies in one run (and therefore on cost).",
            "default": 1000
          },
          "includeDescriptions": {
            "title": "Include descriptions",
            "type": "boolean",
            "description": "Fetch the full job description for every delivered job, in search mode and company mode (an extra request per job for Workday, Greenhouse, Lever, SmartRecruiters and Breezy; one per company for the rest). Turn off for a faster, title-only result.",
            "default": true
          },
          "maxRetries": {
            "title": "Max HTTP retries",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Retries per request for retryable failures (429, 5xx, network).",
            "default": 4
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy settings. Public ATS APIs rarely need a proxy; enable only if a source blocks.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}