{
  "openapi": "3.0.1",
  "info": {
    "title": "Ats Jobs API",
    "description": "Hiring data spread across hundreds of career pages? Paste Greenhouse, Lever or Ashby board links and get every open job as clean JSON: title, salary, location, skills, requirements, benefits and company profile. Ready for job boards and AI. No API key.",
    "version": "1.0",
    "x-build-id": "EHOqp5LABHKuHLRu5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawl_craft~ats-jobs-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawl_craft-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/crawl_craft~ats-jobs-api/runs": {
      "post": {
        "operationId": "runs-sync-crawl_craft-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/crawl_craft~ats-jobs-api/run-sync": {
      "post": {
        "operationId": "run-sync-crawl_craft-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",
        "required": [
          "urls"
        ],
        "properties": {
          "urls": {
            "title": "🔗 Job-board links",
            "type": "array",
            "description": "One company job board per line. Supported: Greenhouse (boards.greenhouse.io/stripe or job-boards.greenhouse.io/stripe), Lever (jobs.lever.co/palantir) and Ashby (jobs.ashbyhq.com/ramp). A job link from the board also works, and so does the short form greenhouse:stripe. Optionally add the company name and website after the link, separated by |, for example: https://jobs.ashbyhq.com/ramp | Ramp | ramp.com. Adding the website gives a richer company profile for Lever and Ashby boards. Use Bulk edit to paste many links at once.",
            "items": {
              "type": "string"
            }
          },
          "companies": {
            "title": "🧩 Companies (advanced list)",
            "type": "array",
            "description": "Optional. The same as the links above, as a JSON list of objects with platform (greenhouse, lever or ashby), token (the company slug from the board link), and optional name and website. Example: [{\"name\": \"Linear\", \"platform\": \"ashby\", \"token\": \"linear\", \"website\": \"linear.app\"}]. Entries are added after the links; duplicates are skipped.",
            "items": {
              "type": "string"
            }
          },
          "queries": {
            "title": "🔎 Job titles or keywords",
            "type": "array",
            "description": "Keep only jobs that mention ANY of these words (case-insensitive). By default the title and the full description are searched. Start a word with - to leave out jobs that contain it (for example -intern). Wrap a phrase in double quotes to match it as one phrase. Leave empty to keep every job.",
            "items": {
              "type": "string"
            }
          },
          "search_description": {
            "title": "📝 Search descriptions too",
            "type": "boolean",
            "description": "On (default): your keywords are matched against the job title and the full job description. Off: keywords are matched against the job title only, for tighter results.",
            "default": true
          },
          "locations": {
            "title": "📍 Locations",
            "type": "array",
            "description": "Keep only jobs whose location text contains ANY of these words, for example London, Remote, New York or Germany (case-insensitive).",
            "items": {
              "type": "string"
            }
          },
          "work_models": {
            "title": "🏠 Work model",
            "type": "array",
            "description": "Keep only remote, hybrid or on-site jobs. Jobs whose board does not state a work model are left out when this filter is set. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "remote",
                "hybrid",
                "onsite"
              ],
              "enumTitles": [
                "Remote",
                "Hybrid",
                "On-site"
              ]
            }
          },
          "employment_types": {
            "title": "🕒 Employment type",
            "type": "array",
            "description": "Keep only these employment types. Leave empty for all.",
            "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": "Keep only these seniority levels, read from the job title or the years of experience the posting asks for. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "intern",
                "entry",
                "mid",
                "senior",
                "lead",
                "executive"
              ],
              "enumTitles": [
                "Intern",
                "Entry level",
                "Mid level",
                "Senior",
                "Lead / Staff / Principal",
                "Executive / Director"
              ]
            }
          },
          "skills_include": {
            "title": "🧠 Required skills (any)",
            "type": "array",
            "description": "Keep only jobs whose listed skills include ANY of these, for example Python, React or AWS (case-insensitive, whole skill name).",
            "items": {
              "type": "string"
            }
          },
          "skills_exclude": {
            "title": "🚫 Skills to avoid",
            "type": "array",
            "description": "Leave out jobs whose listed skills include ANY of these.",
            "items": {
              "type": "string"
            }
          },
          "companies_include": {
            "title": "🎯 Only these companies",
            "type": "array",
            "description": "Keep only jobs from these companies. Each entry can be the company name, its board slug or its website domain (for example stripe.com). Whole-name match, case-insensitive.",
            "items": {
              "type": "string"
            }
          },
          "companies_exclude": {
            "title": "🙈 Exclude companies",
            "type": "array",
            "description": "Leave out jobs from these companies (name, board slug or website domain).",
            "items": {
              "type": "string"
            }
          },
          "min_salary_usd": {
            "title": "💰 Minimum salary",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only jobs whose published salary reaches at least this amount. Amounts are compared as published, with no currency or pay-period conversion. Jobs without salary data are left out when a salary filter is set. Salaries are mostly published on Ashby boards."
          },
          "max_salary_usd": {
            "title": "💸 Maximum salary",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only jobs whose published salary starts at or below this amount, compared as published (no currency or pay-period conversion). Can be combined with the minimum for a range."
          },
          "posted_after": {
            "title": "📅 Posted after",
            "type": "string",
            "description": "Keep only jobs first published after this date. Pick a date, or a relative value such as 7 days or 1 month."
          },
          "posted_before": {
            "title": "📆 Posted before",
            "type": "string",
            "description": "Keep only jobs first published before this date. Pick a date, or a relative value such as 1 day."
          },
          "max_items": {
            "title": "📊 Maximum jobs",
            "minimum": 1,
            "type": "integer",
            "description": "Total number of jobs to save, taken in the order of your boards. Free plan users are limited to 10 jobs per run."
          },
          "max_jobs_per_company": {
            "title": "🧮 Maximum jobs per company",
            "minimum": 1,
            "type": "integer",
            "description": "Optional. When set, up to this many jobs are saved from EVERY board and Maximum jobs is ignored (the free-plan cap of 10 jobs per run still applies).",
            "default": 10
          },
          "dedupe_jobs": {
            "title": "🧹 Remove duplicate jobs",
            "type": "boolean",
            "description": "Save each job only once, even when the same board is listed twice.",
            "default": true
          },
          "include_company_details": {
            "title": "🧬 Full company profile",
            "type": "boolean",
            "description": "On (default): every job carries a rich company profile (legal name, founding year, headquarters, size, industries, founders and leadership, investors, stock ticker, social links, logo, tech stack, recent press and H-1B visa filing history where available). Off: only basic company info, which is faster.",
            "default": true
          },
          "enrich_company_website": {
            "title": "💻 Company website facts",
            "type": "boolean",
            "description": "Read the company's own website for its description, social links, logo, phone, email and tech stack.",
            "default": true
          },
          "enrich_company_knowledge": {
            "title": "📚 Public company facts",
            "type": "boolean",
            "description": "Add public facts: legal name, founding year, headquarters, industries, founders, CEO, investors, products, subsidiaries, stock ticker and a short company description.",
            "default": true
          },
          "enrich_company_filings": {
            "title": "🏦 Stock-market filings",
            "type": "boolean",
            "description": "For US-listed companies: ticker, exchange, industry codes, phone and headquarters address from official filings.",
            "default": true
          },
          "enrich_company_press": {
            "title": "📰 Recent press mentions",
            "type": "boolean",
            "description": "Add up to 10 recent news articles that name the company.",
            "default": true
          },
          "enrich_company_h1b": {
            "title": "🛂 H-1B visa filings",
            "type": "boolean",
            "description": "Add the company's H-1B visa filings per year and the most common job titles in them.",
            "default": true
          },
          "geocode_locations": {
            "title": "🌍 Resolve locations",
            "type": "boolean",
            "description": "Turn job and headquarters locations into city, region, country and coordinates.",
            "default": true
          },
          "geocode_delay_seconds": {
            "title": "⏳ Pause between location lookups",
            "minimum": 1,
            "maximum": 10,
            "type": "number",
            "description": "Seconds to wait between two location lookups (at least 1).",
            "default": 1.1
          },
          "contact_email": {
            "title": "📧 Contact email",
            "type": "string",
            "description": "Optional. Some free public data sources ask callers to share a contact address. If you add yours, it is sent with the Actor's requests; leave empty to use a generic one."
          },
          "include_html": {
            "title": "🧾 Keep description HTML",
            "type": "boolean",
            "description": "Off (default): job descriptions are clean plain text. On: descriptions keep the original HTML formatting.",
            "default": false
          },
          "concurrency": {
            "title": "⚡ Parallel requests",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many boards and company lookups run at the same time.",
            "default": 5
          },
          "max_retries": {
            "title": "🔁 Retries per request",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many times a request is tried before it is given up.",
            "default": 3
          },
          "request_delay": {
            "title": "🐢 Pause after each board",
            "minimum": 0,
            "maximum": 30,
            "type": "number",
            "description": "Optional pause in seconds after each job board is read.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy",
            "type": "object",
            "description": "Optional. Choose the proxy settings for your run. Leave the default if you are unsure.",
            "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}