{
  "openapi": "3.0.1",
  "info": {
    "title": "ATS Jobs API: Greenhouse, Lever, Workday, SmartRecruiters +7",
    "description": "Job listings API for 11 ATS career sites: Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable, Personio, Recruitee, Teamtailor, BambooHR, Rippling.",
    "version": "0.2",
    "x-build-id": "Lg5ssOVxr4pM6Y1k2"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ocius-data~ats-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ocius-data-ats-jobs-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/ocius-data~ats-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-ocius-data-ats-jobs-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/ocius-data~ats-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-ocius-data-ats-jobs-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",
        "required": [
          "companies"
        ],
        "properties": {
          "companies": {
            "title": "Companies",
            "minItems": 1,
            "type": "array",
            "description": "One company per line. Accepted: a board URL (https://boards.greenhouse.io/stripe, https://jobs.lever.co/spotify, https://jobs.ashbyhq.com/ramp, https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite, https://jobs.smartrecruiters.com/BoschGroup, https://apply.workable.com/huggingface, https://tado.jobs.personio.de, https://bunq.recruitee.com, https://career.teamtailor.com, https://hubstaff.bamboohr.com/careers, https://ats.rippling.com/rippling/jobs), a company career page that links to one of these systems (https://www.figma.com/careers/), the form ats:name (greenhouse:stripe, lever:spotify, ashby:ramp, smartrecruiters:BoschGroup, workable:huggingface, personio:tado, recruitee:bunq, teamtailor:career, bamboohr:hubstaff, rippling:rippling), or a bare board name (stripe), which is looked up on Greenhouse, Lever and Ashby only. Workday always needs the full career site URL.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Keep jobs that contain at least one of these words or phrases in the title, department or team (case-insensitive). Terms of 3 letters or fewer, such as AI or QA, must match a whole word. Leave empty to keep all jobs.",
            "items": {
              "type": "string"
            }
          },
          "keywordScope": {
            "title": "Keyword scope",
            "enum": [
              "title",
              "titleAndDescription"
            ],
            "type": "string",
            "description": "Where keywords are searched. Searching the description finds more jobs but also more false matches.",
            "default": "title"
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop jobs whose title contains any of these words or phrases, for example intern or senior.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Keep jobs with at least one location containing one of these texts, or whose country code matches, for example London, Germany, US or Remote.",
            "items": {
              "type": "string"
            }
          },
          "departments": {
            "title": "Departments",
            "type": "array",
            "description": "Keep jobs whose department or team contains one of these texts, for example Engineering or Sales.",
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Keep only jobs that can be done fully remote from at least one location (workplace type Remote, or a location that says Remote).",
            "default": false
          },
          "employmentTypes": {
            "title": "Employment types",
            "type": "array",
            "description": "Keep only these employment types. Jobs whose ATS does not publish a recognizable type are dropped when this filter is set. Leave empty to keep all.",
            "items": {
              "type": "string",
              "enum": [
                "FULL_TIME",
                "PART_TIME",
                "CONTRACT",
                "TEMPORARY",
                "INTERNSHIP"
              ],
              "enumTitles": [
                "Full time",
                "Part time",
                "Contract",
                "Temporary",
                "Internship"
              ]
            }
          },
          "seniorityLevels": {
            "title": "Seniority levels",
            "type": "array",
            "description": "Keep only these seniority levels, inferred from the job title. Jobs whose title has no clear level are dropped when this filter is set. Leave empty to keep all.",
            "items": {
              "type": "string",
              "enum": [
                "INTERN",
                "ENTRY",
                "MID",
                "SENIOR",
                "PRINCIPAL",
                "DIRECTOR",
                "EXECUTIVE"
              ],
              "enumTitles": [
                "Intern",
                "Entry level (junior, graduate, level I)",
                "Mid level (level II)",
                "Senior (senior, lead, level III)",
                "Principal or staff",
                "Director or head of",
                "Executive (VP, chief)"
              ]
            }
          },
          "visaSponsorshipOnly": {
            "title": "Visa sponsorship stated",
            "type": "boolean",
            "description": "Keep only jobs whose description states that visa sponsorship is offered. Most job posts do not mention it, so this filter returns few jobs.",
            "default": false
          },
          "postedSince": {
            "title": "Posted since",
            "pattern": "^$|^\\s*\\d{4}-\\d{2}-\\d{2}.*$|^\\s*\\d+\\s*(h|hour|hours|d|day|days|w|week|weeks|m|month|months)\\s*$",
            "type": "string",
            "description": "Keep jobs published on or after this point. Use a date (2026-10-01) or a period (24 hours, 7 days, 2 weeks, 3 months). The filter is checked again on every job right before it is saved. Jobs without a publication date are dropped when this filter is set."
          },
          "onlyNewSinceLastRun": {
            "title": "Only new jobs since last run",
            "type": "boolean",
            "description": "For scheduled or API runs. Remembers, per company, the jobs already delivered in a named key-value store that is kept between runs, and returns and charges only jobs not delivered before. The first monitored run for a company returns all matching jobs.",
            "default": false
          },
          "reportClosedJobs": {
            "title": "Report closed jobs",
            "type": "boolean",
            "description": "Requires Only new jobs since last run. Each run also reports, once, every job delivered in an earlier run that is no longer listed on the company board (filled, expired or removed). Closed jobs are saved as rows with recordType closed and are charged with the job-closed event (see Pricing in the README).",
            "default": false
          },
          "monitoringStoreName": {
            "title": "Monitoring store name",
            "pattern": "^[a-zA-Z0-9-]{1,63}$",
            "type": "string",
            "description": "Name of the key-value store that remembers delivered jobs. Use a different name for each independent monitor (for example one per client or per search). Delete the store to start over.",
            "default": "ats-jobs-monitor"
          },
          "maxJobsPerCompany": {
            "title": "Max jobs per company",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of jobs saved per company, newest first. 0 means no limit.",
            "default": 0
          },
          "maxTotalJobs": {
            "title": "Max jobs in total",
            "minimum": 0,
            "type": "integer",
            "description": "Stop the run after this many jobs in total. 0 means no limit. Your maximum cost per run is always respected as well.",
            "default": 0
          },
          "descriptionFormat": {
            "title": "Description format",
            "enum": [
              "textAndHtml",
              "text",
              "html",
              "none"
            ],
            "type": "string",
            "description": "Which description fields are filled. Removing descriptions makes downloads much smaller; the price per job is the same.",
            "default": "textAndHtml"
          },
          "fetchGreenhouseSalaries": {
            "title": "Greenhouse structured salaries",
            "type": "boolean",
            "description": "Greenhouse publishes structured pay ranges only on each job's own page. When enabled, the Actor makes one extra request per Greenhouse job to read them. Disable for faster runs; salaries written in the description are still extracted.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Max parallel requests",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Maximum number of requests in flight at the same time across all companies.",
            "default": 10
          },
          "maxRetries": {
            "title": "Max attempts per request",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many times a failed or rate-limited request is attempted, with increasing waits between attempts.",
            "default": 5
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. The ATS APIs are public and normally work without a proxy. If an ATS keeps rate-limiting, the Actor switches automatically to Apify datacenter proxies when available. Set a proxy here only if you need a specific one."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}