{
  "openapi": "3.0.1",
  "info": {
    "title": "Workday, Greenhouse, Lever & Ashby Job Scraper + New-Job Alerts",
    "description": "Track open jobs at any company on Workday, Greenhouse, Lever, Ashby, Workable, SmartRecruiters or Recruitee. Enter a careers URL or just a company domain. One schema, salary fields, and monitor mode that returns only new or changed jobs.",
    "version": "1.1",
    "x-build-id": "MdxWzdrzo9JU1JmCL"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/mosaicked_sponge~ats-job-board-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-mosaicked_sponge-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/mosaicked_sponge~ats-job-board-monitor/runs": {
      "post": {
        "operationId": "runs-sync-mosaicked_sponge-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/mosaicked_sponge~ats-job-board-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-mosaicked_sponge-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 / job boards",
            "type": "array",
            "description": "One per line. Accepts a careers-page URL (e.g. https://boards.greenhouse.io/stripe, https://jobs.lever.co/spotify, https://jobs.ashbyhq.com/linear, https://apply.workable.com/huggingface, https://jobs.smartrecruiters.com/BoschGroup, https://bunq.recruitee.com, or a Workday careers site such as https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite), an explicit provider:token (e.g. greenhouse:stripe, workday:nvidia.wd5/NVIDIAExternalCareerSite), or a company website / domain (e.g. stripe.com) or plain company name (e.g. Ramp). Websites are auto-discovered by reading the company's careers page for links to any of the seven ATSs, then by probing likely board names; names are probed directly. Each auto-discovered company is billed as one 'company-resolved' event (cached afterwards, so scheduled runs are not re-billed).",
            "items": {
              "type": "string"
            }
          },
          "provider": {
            "title": "Provider for bare tokens",
            "enum": [
              "auto",
              "greenhouse",
              "lever",
              "ashby",
              "workable",
              "smartrecruiters",
              "recruitee",
              "workday"
            ],
            "type": "string",
            "description": "How to treat entries that are a bare word like 'stripe'. 'auto' finds the company's board on any supported ATS (billed as company-resolved). Pick a provider to skip discovery. For Workday, bare entries must look like TENANT.wdN/SITE (e.g. nvidia.wd5/NVIDIAExternalCareerSite).",
            "default": "auto"
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "newAndChanged",
              "newOnly",
              "all"
            ],
            "type": "string",
            "description": "'New and changed jobs' (monitor) returns only jobs not seen in the previous run plus jobs whose title, location, salary or description changed. 'New jobs only' ignores edits. 'All jobs' returns every open job each run. On the very first run every job counts as new. The form opens on 'All open jobs' so a first test run always shows results; pick a monitor mode for scheduled runs. API calls that omit this field use 'New and changed jobs'.",
            "default": "newAndChanged"
          },
          "monitorId": {
            "title": "Monitor ID",
            "type": "string",
            "description": "Name of this watch list. Runs with the same Monitor ID share 'seen jobs' memory. Use a different ID for each independent schedule or filter set.",
            "default": "default"
          },
          "firstRunBaseline": {
            "title": "First run: record baseline only",
            "type": "boolean",
            "description": "If enabled, the first run for each company only remembers the current jobs and returns nothing (no result charges). Later runs return only what is new.",
            "default": false
          },
          "titleKeywords": {
            "title": "Title must contain (any)",
            "type": "array",
            "description": "Case-insensitive. Keep jobs whose title contains at least one of these, e.g. 'engineer', 'sales'.",
            "items": {
              "type": "string"
            }
          },
          "excludeTitleKeywords": {
            "title": "Title must not contain",
            "type": "array",
            "description": "Drop jobs whose title contains any of these, e.g. 'intern', 'senior'.",
            "items": {
              "type": "string"
            }
          },
          "locationKeywords": {
            "title": "Location contains (any)",
            "type": "array",
            "description": "Case-insensitive match on location text and country, e.g. 'new york', 'london', 'US'.",
            "items": {
              "type": "string"
            }
          },
          "departments": {
            "title": "Department / team contains (any)",
            "type": "array",
            "description": "Case-insensitive match on department or team, e.g. 'engineering'.",
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Keep only jobs marked remote by the ATS or with 'remote' in the location.",
            "default": false
          },
          "workplaceTypes": {
            "title": "Workplace types",
            "type": "array",
            "description": "Keep only these workplace types (leave empty for all). Values: remote, hybrid, onsite.",
            "items": {
              "type": "string"
            }
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only jobs first published within the last N days. 0 = no limit.",
            "default": 0
          },
          "includeDescription": {
            "title": "Include job description",
            "type": "boolean",
            "description": "Include description HTML and plain text. SmartRecruiters and Workday need one extra request per returned job for this (Workday's detail request also adds the exact posting date, employment type, remote/hybrid type, country and every location).",
            "default": true
          },
          "maxResults": {
            "title": "Max jobs per run",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after returning this many jobs in total (0 = no limit). Jobs not returned are kept for the next run.",
            "default": 0
          },
          "maxJobsPerCompany": {
            "title": "Max jobs fetched per company",
            "minimum": 0,
            "type": "integer",
            "description": "Safety cap for very large boards (0 = no limit).",
            "default": 0
          },
          "smartRecruitersDetailLimit": {
            "title": "SmartRecruiters description fetch cap",
            "minimum": 0,
            "type": "integer",
            "description": "Max SmartRecruiters jobs per company for which the description is fetched (0 = no cap).",
            "default": 300
          },
          "workdayDetailLimit": {
            "title": "Workday detail fetch cap",
            "minimum": 0,
            "type": "integer",
            "description": "Max Workday jobs per company for which the posting detail (description, exact posting date, employment type, all locations) is fetched (0 = no cap). Jobs over the cap are still returned with title, location, list posting date and URLs.",
            "default": 300
          },
          "maxConcurrency": {
            "title": "Companies in parallel",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many companies to check at the same time.",
            "default": 6
          },
          "stateStoreName": {
            "title": "State store name",
            "type": "string",
            "description": "Named key-value store that keeps the 'seen jobs' memory between runs. Leave as is unless you want fully separate storage.",
            "default": "ats-job-monitor-state"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}