{
  "openapi": "3.0.1",
  "info": {
    "title": "Company Careers Page Scraper - Jobs from Any Career Site",
    "description": "Company careers page scraper: paste company websites, get every open job with remote/hybrid/on-site, contract type, city and country, yearly salary, benefits, skills and apply link. Finds the ATS behind each site (81 systems). Only-new-jobs mode. $1.50 per 1,000 jobs, first 3 per run free.",
    "version": "0.1",
    "x-build-id": "TNH5iUuMXRKybvcdB"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/om_kh~careers-page-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-om_kh-careers-page-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/om_kh~careers-page-scraper/runs": {
      "post": {
        "operationId": "runs-sync-om_kh-careers-page-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/om_kh~careers-page-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-om_kh-careers-page-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",
        "properties": {
          "companyDomains": {
            "title": "Company websites",
            "type": "array",
            "description": "The company websites you want jobs from. Just the domain - stripe.com, figma.com - or the job board itself (https://acme.recruitee.com, a Workday or Oracle careers link). The Actor works out which of 77 applicant tracking systems each one uses. Max 100 per run.",
            "items": {
              "type": "string"
            }
          },
          "searchAllCompanies": {
            "title": "Search all companies (no list needed)",
            "type": "boolean",
            "description": "Search the open roles of thousands of companies at once, without giving any company: set at least one keyword or location below (e.g. keywords 'data engineer', locations 'Berlin'). The index is rebuilt from the companies' own ATS Tuesday to Saturday; the 25 companies with the most matches get their full description fetched live. Same price per job.",
            "default": false
          },
          "keywords": {
            "title": "Keyword filter",
            "type": "array",
            "description": "Keep only jobs whose title, department, company or location contains one of these words. Whole-word match. Filtering happens before billing - you are never charged for a job you filtered out.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop jobs matching any of these words, e.g. intern, senior, sales.",
            "items": {
              "type": "string"
            }
          },
          "descriptionKeywords": {
            "title": "Words in the job description (optional)",
            "type": "array",
            "description": "Keep jobs whose title or description contains one of these words or phrases, e.g. Kubernetes, visa sponsorship, 4-day week. Whole words. Filtered before billing. Needs job descriptions (Greenhouse, Lever, Ashby, Recruitee, Teamtailor, Pinpoint, Gem).",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Location filter",
            "type": "array",
            "description": "Keep only jobs whose location contains one of these, e.g. Berlin, United Kingdom.",
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote only",
            "type": "boolean",
            "description": "Keep only roles whose location says remote, anywhere or distributed.",
            "default": false
          },
          "postedAfter": {
            "title": "Posted after",
            "type": "string",
            "description": "Keep only jobs posted on or after this date (YYYY-MM-DD). Jobs from providers that publish no date are kept."
          },
          "employmentTypes": {
            "title": "Contract type",
            "type": "array",
            "description": "Keep only these contract types (read from the job system's own field, the title, or a clear phrase in the text). Tick 'Not stated' to also keep jobs that do not say. Filtered jobs are never charged.",
            "items": {
              "type": "string",
              "enum": [
                "FULL_TIME",
                "PART_TIME",
                "CONTRACT",
                "TEMPORARY",
                "INTERNSHIP",
                "FREELANCE",
                "PER_DIEM",
                "VOLUNTEER",
                "UNKNOWN"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Temporary",
                "Internship",
                "Freelance",
                "Per diem",
                "Volunteer",
                "Not stated"
              ]
            }
          },
          "workArrangements": {
            "title": "On-site, hybrid or remote",
            "type": "array",
            "description": "Keep only these work arrangements. Hybrid jobs also get the office days per week when the posting says it.",
            "items": {
              "type": "string",
              "enum": [
                "REMOTE",
                "HYBRID",
                "ON_SITE",
                "UNKNOWN"
              ],
              "enumTitles": [
                "Remote",
                "Hybrid",
                "On-site",
                "Not stated"
              ]
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Keep only jobs in these countries: names or 2-letter codes (United States, US, Germany, DE...). Add 'unknown' to keep jobs with no country written.",
            "items": {
              "type": "string"
            }
          },
          "excludeTitleKeywords": {
            "title": "Exclude title words",
            "type": "array",
            "description": "Drop jobs whose TITLE has any of these words (e.g. senior, intern, manager), even if the description mentions them.",
            "items": {
              "type": "string"
            }
          },
          "excludeCompanies": {
            "title": "Exclude companies",
            "type": "array",
            "description": "Drop jobs from these companies (part of the name is enough).",
            "items": {
              "type": "string"
            }
          },
          "excludeLocations": {
            "title": "Exclude locations",
            "type": "array",
            "description": "Drop jobs whose location contains any of these words (e.g. India, Remote - EMEA).",
            "items": {
              "type": "string"
            }
          },
          "departments": {
            "title": "Departments",
            "type": "array",
            "description": "Keep only these departments or teams (e.g. Engineering, Sales). Part of the name is enough.",
            "items": {
              "type": "string"
            }
          },
          "excludeAgencies": {
            "title": "No staffing agencies",
            "type": "boolean",
            "description": "Drop jobs posted by staffing or recruitment agencies for a client.",
            "default": false
          },
          "onlyWithSalary": {
            "title": "Only jobs with a salary",
            "type": "boolean",
            "description": "Keep only jobs that publish a pay range (as numbers, with the pay period and a yearly equivalent).",
            "default": false
          },
          "minYearlySalary": {
            "title": "Minimum yearly salary",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only jobs paying at least this much per year (hourly, daily and monthly pay converted to yearly). Jobs without a salary are dropped when this is set."
          },
          "onlyNewJobs": {
            "title": "Only new jobs since my last run",
            "type": "boolean",
            "description": "Deliver only the jobs this same search has not delivered before (remembered in your own Apify account). The first run delivers everything. Jobs already delivered are never charged again. Ideal for daily or hourly schedules.",
            "default": false
          },
          "memoryKey": {
            "title": "Memory name (optional)",
            "type": "string",
            "description": "Give the 'only new jobs' memory a name to share it between tasks or keep it when you change the search. Empty = one memory per search."
          },
          "includeDescription": {
            "title": "Include job description",
            "type": "boolean",
            "description": "Add the full job description (plain text), salary, contract type, workplace type and apply link when the company's ATS publishes them (Greenhouse, Lever, Ashby). Same price. Turn off for lighter rows.",
            "default": true
          },
          "includeCompanyProfile": {
            "title": "Company industry and size",
            "type": "boolean",
            "description": "Add each company's industry, employee count, size band (1-10 ... 10,001+), headquarters and founding year, from Wikidata by the company's website. Free; empty for companies Wikidata does not know (often small startups).",
            "default": true
          },
          "industries": {
            "title": "Company industries",
            "type": "array",
            "description": "Keep only companies whose industry contains one of these words (software, retail, insurance, financial...). Needs 'Company industry and size'. Companies with no known industry are dropped when this is set.",
            "items": {
              "type": "string"
            }
          },
          "companySizes": {
            "title": "Company sizes",
            "type": "array",
            "description": "Keep only companies of these sizes (employees). Tick 'Unknown' to keep companies whose size is not known.",
            "items": {
              "type": "string",
              "enum": [
                "1-10",
                "11-50",
                "51-200",
                "201-500",
                "501-1,000",
                "1,001-5,000",
                "5,001-10,000",
                "10,001+",
                "Unknown"
              ]
            }
          },
          "maxTotalChargeUsd": {
            "title": "Maximum charge (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Optional extra ceiling on what this run can bill you. Leave empty to use the run's own Max charge setting; if set, the lower of the two applies and the run stops delivering paid rows once it is reached."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}