{
  "openapi": "3.0.1",
  "info": {
    "title": "Ats Jobs API",
    "description": "ATS Jobs API extracts job listings from Applicant Tracking Systems (ATS), including titles, companies, locations, descriptions, requirements, and application links. Ideal for job aggregation, recruitment, talent sourcing, market research, and hiring analytics.",
    "version": "1.0",
    "x-build-id": "GiEaNvHzrhXVbSZPr"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scraper-engine~ats-jobs-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scraper-engine-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/scraper-engine~ats-jobs-api/runs": {
      "post": {
        "operationId": "runs-sync-scraper-engine-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/scraper-engine~ats-jobs-api/run-sync": {
      "post": {
        "operationId": "run-sync-scraper-engine-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": {
          "queries": {
            "title": "🔍 Search Queries",
            "maxItems": 5,
            "type": "array",
            "description": "Job titles or keywords to filter for, OR'd together (up to 5). Prefix a term with \"-\" to exclude it (e.g. \"-staff\"). Leave empty to keep every job found for the companies above.",
            "items": {
              "type": "string"
            }
          },
          "companies_include": {
            "title": "🏢 Companies to Search",
            "type": "array",
            "description": "🌍 Works for ANY company that's on Greenhouse, Lever, Ashby, Workable, or SmartRecruiters. Bulk input supported — paste as many as you like. Each entry can be just the company's bare name (e.g. \"notion\" — the actor auto-detects the platform for you), a board token in \"source:token\" form (e.g. \"greenhouse:your-company\", for a guaranteed exact match), or a careers page URL / the company's own website (its page is scanned live for an embedded ATS link).",
            "items": {
              "type": "string"
            }
          },
          "search_description": {
            "title": "📄 Search Descriptions & Skills",
            "type": "boolean",
            "description": "ON (default): queries match the job title AND the full description. OFF: queries match the title only.",
            "default": true
          },
          "sources": {
            "title": "🧩 ATS Platforms",
            "type": "array",
            "description": "Restrict company resolution to specific ATS platforms — type freely, one per line. This actor supports: greenhouse, lever, ashby, workable, smartrecruiters. An unsupported or misspelled platform name isn't an error — it's just dropped with a warning in the run log. Leave empty to try all 5 supported platforms.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "📍 Locations",
            "type": "array",
            "description": "Cities, regions, or countries to filter by (matched against each job's own posted location text).",
            "items": {
              "type": "string"
            }
          },
          "work_models": {
            "title": "🏠 Work Model",
            "type": "array",
            "description": "Filter by where the work is performed.",
            "items": {
              "type": "string",
              "enum": [
                "remote",
                "hybrid",
                "onsite"
              ],
              "enumTitles": [
                "🌍 Remote",
                "🏢🏡 Hybrid",
                "🏢 On-site"
              ]
            }
          },
          "employment_types": {
            "title": "📋 Employment Type",
            "type": "array",
            "description": "Filter by employment type.",
            "items": {
              "type": "string",
              "enum": [
                "full-time",
                "part-time",
                "contract",
                "internship",
                "freelance",
                "temporary"
              ],
              "enumTitles": [
                "🕐 Full-time",
                "🕐 Part-time",
                "📝 Contract",
                "🎓 Internship",
                "🧑‍💻 Freelance",
                "⏳ Temporary"
              ]
            }
          },
          "experience_levels": {
            "title": "🎯 Experience Level",
            "type": "array",
            "description": "Filter by seniority. ⚠️ Not reliably exposed by these ATS platforms' list endpoints — this filter can drop nearly everything. Consider leaving it empty.",
            "items": {
              "type": "string",
              "enum": [
                "intern",
                "entry",
                "mid",
                "senior",
                "lead",
                "executive"
              ],
              "enumTitles": [
                "🎓 Intern",
                "🌱 Entry",
                "📈 Mid",
                "⭐ Senior",
                "🚀 Lead",
                "👑 Executive"
              ]
            }
          },
          "skills_include": {
            "title": "🛠️ Skills (Include)",
            "type": "array",
            "description": "Only return jobs whose description mentions ANY of these skills.",
            "items": {
              "type": "string"
            }
          },
          "skills_exclude": {
            "title": "🚫 Skills (Exclude)",
            "type": "array",
            "description": "Exclude jobs whose description mentions ANY of these skills.",
            "items": {
              "type": "string"
            }
          },
          "companies_exclude": {
            "title": "🙅 Companies to Exclude",
            "type": "array",
            "description": "Skip these entries even if they also appear in 'Companies to Search' — same accepted forms (board token, URL, or name).",
            "items": {
              "type": "string"
            }
          },
          "min_salary_usd": {
            "title": "💵 Minimum Salary (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "⚠️ None of these ATS platforms reliably expose salary on their list endpoints — this filter is accepted for input compatibility but not currently applied."
          },
          "max_salary_usd": {
            "title": "💰 Maximum Salary (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "⚠️ Same limitation as Minimum Salary above — accepted but not currently applied."
          },
          "posted_after": {
            "title": "📅 Posted After",
            "type": "string",
            "description": "Only jobs posted on/after this date. ISO 8601 (e.g. 2026-01-01) or relative (e.g. \"7 days ago\")."
          },
          "posted_before": {
            "title": "📅 Posted Before",
            "type": "string",
            "description": "Only jobs posted on/before this date. ISO 8601 or relative."
          },
          "page": {
            "title": "📄 Page Number",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Which page of the filtered, combined result set to return.",
            "default": 1
          },
          "page_size": {
            "title": "📦 Page Size",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Results per page.",
            "default": 50
          },
          "include_company_details": {
            "title": "🏗️ Include Full Company Details",
            "type": "boolean",
            "description": "⚠️ Not available in this direct-ATS actor (no third-party company-enrichment source is used) — accepted for input compatibility but ignored.",
            "default": false
          },
          "concurrency": {
            "title": "🧵 Concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many companies/requests to resolve in parallel.",
            "default": 5
          },
          "maxRetries": {
            "title": "🔁 Max Retries per Request",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many times to retry a single request after a transient network error before giving up on it.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy Configuration",
            "type": "object",
            "description": "By default the actor connects DIRECTLY (no proxy) for maximum speed 🏎️. If a request gets blocked, it automatically escalates: Direct ❌ → Datacenter Proxy 🖥️ → Residential Proxy 🏠 (retried up to 3×) — then stays on the Residential Proxy for the rest of the run. Every fallback is logged clearly. Turn on Apify Proxy with the RESIDENTIAL group here only if you want to skip straight to a residential proxy from the very first request.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}