{
  "openapi": "3.0.1",
  "info": {
    "title": "Career Page Job Scraper: Greenhouse, Lever, Workday ATS Jobs",
    "description": "Greenhouse jobs scraper and career page job scraper: paste company sites and get every open job from Greenhouse, Lever, Workday, Ashby and Personio boards as Excel, plus hiring signals.",
    "version": "0.1",
    "x-build-id": "KcXmTLQB7wBSNJ0A9"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/alpine-data~career-site-jobs/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-alpine-data-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/alpine-data~career-site-jobs/runs": {
      "post": {
        "operationId": "runs-sync-alpine-data-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/alpine-data~career-site-jobs/run-sync": {
      "post": {
        "operationId": "run-sync-alpine-data-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": {
          "companies": {
            "title": "1. Which companies? (website, careers page or name)",
            "type": "array",
            "description": "One company per line. Paste a website (stripe.com), a careers page URL (https://jobs.lever.co/palantir, https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite) or a name (Hugging Face). The Actor finds the company's job board automatically. Power users can write ats:slug, e.g. greenhouse:airbnb. Up to 1,000 companies per run.",
            "items": {
              "type": "string"
            }
          },
          "outputMode": {
            "title": "2. What do you want back?",
            "enum": [
              "jobs_and_summary",
              "jobs_only",
              "summary_only"
            ],
            "type": "string",
            "description": "Jobs = one row per open position. Hiring signals = one summary row per company (open jobs, new/closed since last run, top departments and locations).",
            "default": "jobs_and_summary"
          },
          "titleKeywords": {
            "title": "Job title must contain (any of)",
            "type": "array",
            "description": "Keep only jobs whose title contains at least one of these words, e.g. engineer, sales, data. Case-insensitive.",
            "items": {
              "type": "string"
            }
          },
          "excludeTitleKeywords": {
            "title": "Job title must NOT contain",
            "type": "array",
            "description": "Drop jobs whose title contains any of these words, e.g. intern, senior.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Location contains (any of)",
            "type": "array",
            "description": "Keep only jobs whose location contains one of these, e.g. Vienna, Germany, London, Remote.",
            "items": {
              "type": "string"
            }
          },
          "departments": {
            "title": "Department / team contains (any of)",
            "type": "array",
            "description": "Keep only jobs in matching departments or teams, e.g. Engineering, Sales. Not every job board publishes departments.",
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Only remote jobs",
            "type": "boolean",
            "description": "Keep only jobs marked remote (or with 'remote' in the location).",
            "default": false
          },
          "postedWithinDays": {
            "title": "Posted within the last N days",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "0 = any date. Jobs without a published date are kept. Workday only shows approximate dates ('Posted 3 days ago').",
            "default": 0
          },
          "onlyNewJobs": {
            "title": "Only new jobs since the last run",
            "type": "boolean",
            "description": "Return only jobs that are new since the previous run with the same companies and monitor name. The first run returns all jobs and remembers them.",
            "default": false
          },
          "reportClosedJobs": {
            "title": "Also report jobs that were closed",
            "type": "boolean",
            "description": "When a job seen in the previous run is gone, add one row with status 'closed'. Nothing is reported on the first run.",
            "default": true
          },
          "stateKey": {
            "title": "Monitor name",
            "type": "string",
            "description": "Optional. Use different names to keep separate monitors (e.g. 'sales-team' and 'competitors'). Letters, numbers and dashes."
          },
          "includeDescription": {
            "title": "Include full job description text",
            "type": "boolean",
            "description": "Adds the plain-text job description. Descriptions are written by the employer and protected by copyright: use them for your own analysis only, not for republishing.",
            "default": false
          },
          "maxJobsPerCompany": {
            "title": "Max job rows per company",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Cost cap: at most this many job rows per company (the hiring-signal summary still counts all jobs). Pre-filled with 50 to keep test runs cheap; set up to 5,000 for full lists. Default when empty: 1,000.",
            "default": 1000
          },
          "atsToTry": {
            "title": "Job-board systems to try when guessing from a name",
            "type": "array",
            "description": "When the job board is not linked on the website, the Actor guesses it from the company name on these systems. Leave empty for all. Workday and Teamtailor need the careers page URL.",
            "items": {
              "type": "string",
              "enumSuggestedValues": [
                "greenhouse",
                "lever",
                "ashby",
                "personio",
                "recruitee",
                "workable",
                "smartrecruiters"
              ],
              "enumTitles": [
                "Greenhouse",
                "Lever",
                "Ashby",
                "Personio",
                "Recruitee",
                "Workable",
                "SmartRecruiters"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}