{
  "openapi": "3.0.1",
  "info": {
    "title": "Company Career Page Jobs Scraper (Greenhouse, Lever, Ashby)",
    "description": "Scrape jobs from company career pages and careers sites: Greenhouse, Lever, Ashby, Workable, Recruitee, Personio and SmartRecruiters. Enter company websites and the ATS job board is detected automatically. Never charges for a failed or empty result.",
    "version": "0.1",
    "x-build-id": "F60lZ8R1kboprCL3N"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/pavel.tashev~company-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-pavel.tashev-company-jobs-scraper",
        "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/pavel.tashev~company-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-pavel.tashev-company-jobs-scraper",
        "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/pavel.tashev~company-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-pavel.tashev-company-jobs-scraper",
        "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",
            "maxItems": 500,
            "type": "array",
            "description": "Company websites (for example \"ramp.com\"), careers page links, or job board links (for example \"https://jobs.lever.co/palantir\"). The Actor finds the company's job board on Greenhouse, Lever, Ashby, Workable, Recruitee, Personio or SmartRecruiters. Up to 500 companies per run; any extra entries are skipped and reported in the run status.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords",
            "type": "string",
            "description": "Comma-separated keywords, for example \"python, data engineer\". A job matches if its title, department or description contains all words of at least one keyword. Leave empty for all jobs."
          },
          "locations": {
            "title": "Locations",
            "maxItems": 50,
            "type": "array",
            "description": "Keep jobs whose location contains any of these texts, for example \"London\", \"Germany\" or \"Remote\". Leave empty for any location. Up to 50 filters.",
            "items": {
              "type": "string"
            }
          },
          "departments": {
            "title": "Departments",
            "maxItems": 50,
            "type": "array",
            "description": "Keep jobs whose department or team contains any of these texts, for example \"Engineering\" or \"Sales\". Up to 50 filters.",
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Keep only jobs marked as remote by the job board or with \"Remote\" in the location.",
            "default": false
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Only return jobs posted (or updated, when the board has no posting date) in the last N days. Leave empty for any date."
          },
          "maxJobsPerCompany": {
            "title": "Maximum jobs per company",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Stop saving jobs for a company after this many matching jobs.",
            "default": 500
          },
          "includeDescription": {
            "title": "Include job descriptions",
            "type": "boolean",
            "description": "Full job description as plain text. Turn off for a smaller dataset (keywords still search descriptions).",
            "default": true
          },
          "guessBoards": {
            "title": "Guess job boards from the company name",
            "type": "boolean",
            "description": "When no job board link is found on the website, try the company name (for example \"ramp\" from ramp.com) on each supported job board (at most 10 tries per company). Boards whose company name does not match the website are skipped.",
            "default": true
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "string",
            "description": "Drop jobs whose title, department, team or location contains any of these, comma separated. A term with several words matches only when all of them appear, so \"sales engineer\" does not drop every sales role."
          },
          "minSalary": {
            "title": "Minimum salary",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only jobs whose stated salary reaches this figure. Most company job boards publish no salary at all; those jobs are kept unless you tick the box below."
          },
          "requireSalary": {
            "title": "Only jobs that state a salary",
            "type": "boolean",
            "description": "Off by default: on most ATS boards this hides the large majority of real openings.",
            "default": false
          },
          "seniority": {
            "title": "Seniority",
            "type": "array",
            "description": "Read from the job title, because an ATS almost never states a seniority of its own. Leave empty for every level.",
            "items": {
              "type": "string",
              "enum": [
                "intern",
                "junior",
                "mid",
                "senior",
                "lead"
              ],
              "enumTitles": [
                "Intern / working student",
                "Junior",
                "Mid",
                "Senior",
                "Lead / principal / head"
              ]
            },
            "default": []
          },
          "employmentTypes": {
            "title": "Employment type",
            "type": "array",
            "description": "Uses the board’s own employment type where it states one, and the job title where it does not.",
            "items": {
              "type": "string",
              "enum": [
                "full-time",
                "part-time",
                "contract",
                "internship",
                "temporary"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract / freelance",
                "Internship",
                "Temporary"
              ]
            },
            "default": []
          },
          "onlyNew": {
            "title": "Only jobs not seen in an earlier run",
            "type": "boolean",
            "description": "Remembers which jobs were delivered and returns only the ones that are new. A scheduled run then costs nothing on a day nobody posted anything.",
            "default": false
          },
          "memoryKey": {
            "title": "Memory name",
            "type": "string",
            "description": "Keep separate memories for separate searches. Letters, numbers, dots, dashes and underscores.",
            "default": "default"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}