{
  "openapi": "3.0.1",
  "info": {
    "title": "Greenhouse, Lever, Ashby, SmartRecruiters & Recruitee Jobs",
    "description": "Live jobs from company career sites on Greenhouse, Lever, Ashby, SmartRecruiters and Recruitee in one schema. Pass board URLs, company names or domains. Monitor mode returns only new, updated and removed jobs since your last run. $1.50 per 1,000 jobs; removed and status rows free.",
    "version": "0.0",
    "x-build-id": "LFQvgkKQJB76OJdwa"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kkingsbe~live-career-site-jobs/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kkingsbe-live-career-site-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/kkingsbe~live-career-site-jobs/runs": {
      "post": {
        "operationId": "runs-sync-kkingsbe-live-career-site-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/kkingsbe~live-career-site-jobs/run-sync": {
      "post": {
        "operationId": "run-sync-kkingsbe-live-career-site-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",
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "jobs",
              "discover"
            ],
            "type": "string",
            "description": "jobs: fetch live jobs from `companies`. discover: list companies in the shipped registry whose name or domain matches `discoverQuery` (no job fetching).",
            "default": "jobs"
          },
          "companies": {
            "title": "Companies",
            "type": "array",
            "description": "One per line: a careers board URL (https://jobs.lever.co/spotify), `ats:slug` (greenhouse:stripe), a company name (Palantir Technologies) or a domain (linear.app). Names and domains are resolved live by checking all five platforms; when a name exists on several, the board with the most open jobs wins and the others are listed in `alternatives`. Pass a board URL when you need certainty. Up to 1,000 entries.",
            "default": [
              "https://boards.greenhouse.io/stripe",
              "https://jobs.lever.co/spotify",
              "https://jobs.ashbyhq.com/linear",
              "https://jobs.smartrecruiters.com/CERN",
              "https://bunq.recruitee.com"
            ],
            "items": {
              "type": "string"
            }
          },
          "ats": {
            "title": "Platforms to check",
            "type": "array",
            "description": "Restrict name resolution and discovery to these platforms. Empty means all five. Board URLs are always used as given.",
            "items": {
              "type": "string",
              "enum": [
                "greenhouse",
                "lever",
                "ashby",
                "smartrecruiters",
                "recruitee"
              ],
              "enumTitles": [
                "Greenhouse",
                "Lever",
                "Ashby",
                "SmartRecruiters",
                "Recruitee"
              ]
            },
            "default": []
          },
          "maxJobsPerCompany": {
            "title": "Max jobs per company",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Most rows returned per company, after filters. Bounds the cost: at most companies × this × $0.0015 (×2 on SmartRecruiters with descriptions). In monitor mode, changes over the limit are kept for the next run, not lost.",
            "default": 20
          },
          "keywords": {
            "title": "Title keywords",
            "type": "array",
            "description": "Keep jobs whose title, department or team contains any of these (case-insensitive). Empty keeps all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Keep jobs in any of these: a city or country name (Dublin, Germany), a two-letter country code (US, IE), or `remote`. Empty keeps all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote only",
            "type": "boolean",
            "description": "Keep only jobs the platform marks as remote (or, on Greenhouse, whose location says remote).",
            "default": false
          },
          "newSince": {
            "title": "Posted or updated since",
            "type": "string",
            "description": "ISO 8601 date or time, for example 2026-11-01. Keep jobs whose platform posted or updated time is later. Stateless; for \"since my last run\" use the monitor below.",
            "default": ""
          },
          "sinceLastRun": {
            "title": "Monitor: only changes since the last run",
            "type": "boolean",
            "description": "Compare each board with this monitor's memory (a key-value store named career-site-jobs-monitor in your own account) and return only jobs that are new, updated or removed since the last run, with `changeType` on every row. Removed rows are free.",
            "default": false
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Separate memory per watch list. Use one name per schedule.",
            "default": "default"
          },
          "changeTypes": {
            "title": "Changes to return",
            "type": "array",
            "description": "Monitor mode only. Changes not selected are remembered silently.",
            "items": {
              "type": "string",
              "enum": [
                "new",
                "updated",
                "removed"
              ],
              "enumTitles": [
                "New jobs",
                "Updated jobs (title, location, pay, description or team changed)",
                "Removed jobs (free)"
              ]
            },
            "default": [
              "new",
              "removed"
            ]
          },
          "onFirstRun": {
            "title": "First monitor run",
            "enum": [
              "return",
              "seed"
            ],
            "type": "string",
            "description": "Monitor mode only: what the first run for a board does.",
            "default": "return"
          },
          "includeDescription": {
            "title": "Include descriptions",
            "type": "boolean",
            "description": "Plain-text job description. On SmartRecruiters this needs one extra request per job and is billed as job-detail ($0.003); without it, $0.0015.",
            "default": true
          },
          "maxDescriptionChars": {
            "title": "Max description length",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Longer descriptions are cut at a word boundary and marked `descriptionTruncated`. Most postings are 3,000 to 10,000 characters.",
            "default": 4000
          },
          "dedupeAcross": {
            "title": "Merge duplicates",
            "type": "array",
            "description": "Off by default so row counts match the board.",
            "items": {
              "type": "string",
              "enum": [
                "location",
                "ats"
              ],
              "enumTitles": [
                "Same posting repeated per city: one row with locations[]",
                "Same job on two platforms: keep the first"
              ]
            },
            "default": []
          },
          "includeRaw": {
            "title": "Include raw platform data",
            "type": "boolean",
            "description": "Add the platform's original job object under `raw`.",
            "default": false
          },
          "discoverQuery": {
            "title": "Discover: keyword",
            "type": "string",
            "description": "Mode discover only: matched against company names, domains and board names in the registry. Empty lists the largest boards.",
            "default": ""
          },
          "discoverLimit": {
            "title": "Discover: max companies",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Mode discover only. $0.001 per company returned.",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}