{
  "openapi": "3.0.1",
  "info": {
    "title": "ATS Job Monitor: Greenhouse, Lever, Ashby, Recruitee & more",
    "description": "Get all open jobs from Greenhouse, Lever, Ashby, Recruitee, Personio and Teamtailor career boards in one clean schema. Paste a company name, job board URL or website. Track new, updated and removed jobs between runs. Official public feeds, no proxies, pay per job.",
    "version": "0.3",
    "x-build-id": "SuxnDfR9dj9CQpRwa"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kislov-data~ats-job-board-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kislov-data-ats-job-board-monitor",
        "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/kislov-data~ats-job-board-monitor/runs": {
      "post": {
        "operationId": "runs-sync-kislov-data-ats-job-board-monitor",
        "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/kislov-data~ats-job-board-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-kislov-data-ats-job-board-monitor",
        "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",
            "type": "array",
            "description": "One entry per company. Accepted formats: a board name such as <code>airbnb</code>, a job board URL such as <code>https://jobs.lever.co/spotify</code>, or a company website such as <code>notion.so</code>. For websites the Actor looks for a Greenhouse, Lever or Ashby link on the careers page and, if none is found, tries the brand name as a board name (see SUMMARY in the key-value store).",
            "default": [
              "airbnb",
              "spotify",
              "notion"
            ],
            "items": {
              "type": "string"
            }
          },
          "ats": {
            "title": "Applicant tracking system",
            "enum": [
              "auto",
              "greenhouse",
              "lever",
              "ashby",
              "recruitee",
              "personio",
              "teamtailor"
            ],
            "type": "string",
            "description": "Leave on Auto to try all supported systems (Greenhouse, Lever, Ashby, Recruitee, Personio, Teamtailor). Choose one system to speed up runs when you know where the companies hire.",
            "default": "auto"
          },
          "keywords": {
            "title": "Title keywords",
            "type": "array",
            "description": "Keep only jobs whose title, department or team contains at least one of these words (case-insensitive). Example: <code>engineer</code>, <code>data</code>.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Skip jobs whose title, department or team contains any of these words. Example: <code>intern</code>.",
            "items": {
              "type": "string"
            }
          },
          "profile": {
            "title": "Your profile (skills or resume text)",
            "type": "string",
            "description": "Optional. Paste your skills, target roles or the text of your resume (up to 30,000 characters). The Actor ranks all returned jobs by how well their title, team and description match it and adds <code>relevanceScore</code> (100 = best match in this run) and <code>matchedTerms</code>. The text is used only for scoring during the run and is not stored or sent anywhere."
          },
          "minRelevance": {
            "title": "Minimum relevance score",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Used with the profile: drop jobs whose relevanceScore is below this value (0-100). 0 keeps everything, sorted from best to worst match.",
            "default": 0
          },
          "locationContains": {
            "title": "Location contains",
            "type": "array",
            "description": "Keep only jobs with a location containing at least one of these words. Example: <code>London</code>, <code>Germany</code>.",
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Keep only jobs the employer marks as remote.",
            "default": false
          },
          "postedWithinDays": {
            "title": "Posted within the last N days",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep only jobs published in the last N days. 0 means no limit. Jobs without a publication date are kept.",
            "default": 0
          },
          "maxJobsPerCompany": {
            "title": "Max jobs per company",
            "minimum": 0,
            "type": "integer",
            "description": "Limit the number of jobs returned for each company (newest first). 0 means no limit.",
            "default": 0
          },
          "trackChanges": {
            "title": "Track changes between runs",
            "type": "boolean",
            "description": "Adds a <code>changeStatus</code> field (new, updated or unchanged) and remembers every board between runs. The first run marks every job as new.",
            "default": false
          },
          "onlyChanges": {
            "title": "Return only new and updated jobs",
            "type": "boolean",
            "description": "After the first run, return only jobs that are new or changed since the previous run. Turns on change tracking automatically.",
            "default": false
          },
          "includeRemoved": {
            "title": "Include removed jobs",
            "type": "boolean",
            "description": "With change tracking, also return a short record (<code>changeStatus: removed</code>) for jobs that disappeared since the previous run.",
            "default": false
          },
          "stateName": {
            "title": "Change tracking storage name",
            "type": "string",
            "description": "Name of the key-value store that keeps the last seen jobs. Use different names for separate watch lists.",
            "default": "ats-jobs-state"
          },
          "includeDescription": {
            "title": "Include description (plain text)",
            "type": "boolean",
            "description": "Add the full job description as plain text.",
            "default": true
          },
          "includeHtml": {
            "title": "Include description (HTML)",
            "type": "boolean",
            "description": "Also add the description as HTML.",
            "default": false
          },
          "concurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many job boards to load at the same time.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}