{
  "openapi": "3.0.1",
  "info": {
    "title": "ATS Jobs API — Greenhouse, Lever, Workday & 7 more | $1/1K",
    "description": "Paste any company careers URL and get its open jobs in one clean schema. Auto-detects 10 ATSs (Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable, Personio, Teamtailor, Pinpoint, Gem) via their official public job feeds, extracts salaries, and monitor mode returns only new jobs.",
    "version": "0.1",
    "x-build-id": "q6BlpWFH9JNccYe72"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/steadyrow~ats-jobs/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-steadyrow-ats-jobs",
        "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/steadyrow~ats-jobs/runs": {
      "post": {
        "operationId": "runs-sync-steadyrow-ats-jobs",
        "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/steadyrow~ats-jobs/run-sync": {
      "post": {
        "operationId": "run-sync-steadyrow-ats-jobs",
        "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": [
          "sources"
        ],
        "properties": {
          "sources": {
            "title": "Career pages or ATS boards",
            "type": "array",
            "description": "One per line. Paste an ATS board URL (boards.greenhouse.io/stripe, jobs.lever.co/spotify, jobs.ashbyhq.com/ramp, nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite, careers.smartrecruiters.com/BoschGroup, apply.workable.com/european-dynamics, 1komma5grad.jobs.personio.de, sats.teamtailor.com, impulsespace.pinpointhq.com, jobs.gem.com/nominal), a company's own careers page that embeds one of them, an identifier like `greenhouse:stripe` / `lever:spotify` / `ashby:ramp` / `smartrecruiters:BoschGroup` / `workday:nvidia.wd5/NVIDIAExternalCareerSite` / `workable:katmai` / `personio:ottonova` / `teamtailor:sats` / `pinpoint:intermedia` / `gem:nominal`, or just a board name like `stripe` (probed on Greenhouse, Ashby, Lever and SmartRecruiters only).",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords (any)",
            "type": "array",
            "description": "Keep jobs whose title contains at least one of these words (whole-word, case-insensitive). Leave empty to keep all.",
            "items": {
              "type": "string"
            }
          },
          "searchInDescription": {
            "title": "Also match keywords in the description",
            "type": "boolean",
            "description": "By default keywords are matched against the job title only.",
            "default": false
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop jobs whose title contains any of these words (e.g. Senior, Intern).",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations (any)",
            "type": "array",
            "description": "Keep jobs whose location, any of their locations, or country contains one of these words (whole-word, case-insensitive; e.g. London, Germany, US). Use `remote` to match remote jobs.",
            "items": {
              "type": "string"
            }
          },
          "remote": {
            "title": "Remote",
            "enum": [
              "any",
              "remote_only",
              "exclude_remote"
            ],
            "type": "string",
            "description": "Filter by remote eligibility.",
            "default": "any"
          },
          "departments": {
            "title": "Departments / teams (any)",
            "type": "array",
            "description": "Keep jobs whose department or team contains one of these strings (e.g. Engineering). Workday does not publish departments, so this filter drops all Workday jobs.",
            "items": {
              "type": "string"
            }
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 0,
            "type": "integer",
            "description": "Only jobs posted in the last N days. 0 = no limit.",
            "default": 0
          },
          "maxItemsPerSource": {
            "title": "Max jobs per board",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many jobs from one board. 0 = all jobs.",
            "default": 0
          },
          "maxItems": {
            "title": "Max jobs in total",
            "minimum": 0,
            "type": "integer",
            "description": "Stop the whole run after this many jobs. 0 = no limit.",
            "default": 0
          },
          "includeDescription": {
            "title": "Include plain-text description",
            "type": "boolean",
            "description": "Adds `description_text`. Turning it off makes SmartRecruiters runs much faster (no per-job request).",
            "default": true
          },
          "includeDescriptionHtml": {
            "title": "Include HTML description",
            "type": "boolean",
            "description": "Adds `description_html` (cleaned original HTML).",
            "default": false
          },
          "fetchGreenhouseSalary": {
            "title": "Greenhouse: fetch structured salary",
            "type": "boolean",
            "description": "Greenhouse publishes pay-transparency ranges only on each job's own endpoint. When on, we make one extra request per Greenhouse job that has no salary in its description. Turn off for faster runs on very large boards.",
            "default": true
          },
          "monitorMode": {
            "title": "Monitor mode: only new jobs since the last run",
            "type": "boolean",
            "description": "Remembers every job already delivered (per board) and outputs only jobs you have not received before. The first run outputs all matching jobs. Ideal for a daily schedule — you only pay for new jobs.",
            "default": false
          },
          "monitorStateName": {
            "title": "Monitor state name",
            "pattern": "^[a-zA-Z0-9-]{1,63}$",
            "type": "string",
            "description": "Name of the key-value store that keeps the list of delivered jobs. Use a different name per task if you run several independent monitors.",
            "default": "ats-jobs-monitor"
          },
          "maxConcurrency": {
            "title": "Max parallel requests per board",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Detail requests run in parallel up to this number. Requests to one ATS host are additionally limited to about 4 per second.",
            "default": 4
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}