{
  "openapi": "3.0.1",
  "info": {
    "title": "Career Site Jobs Scraper",
    "description": "Search open jobs by title, country and more across about 3,000 companies' own career sites, or get every open job from your own list of companies (Greenhouse, Lever, Ashby, Workday, Oracle, Workable, Recruitee, Personio, Teamtailor), in one format, with a monitoring mode for new and closed jobs.",
    "version": "0.1",
    "x-build-id": "IS7My2zJl349B2j0c"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/natanr123~career-site-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-natanr123-career-site-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/natanr123~career-site-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-natanr123-career-site-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/natanr123~career-site-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-natanr123-career-site-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",
        "properties": {
          "titleKeywords": {
            "title": "Job title contains any of",
            "type": "array",
            "description": "Jobs whose title contains at least one of these words or phrases (not case-sensitive), for example data engineer, product manager, nurse. With no companies listed, this searches every company in our index.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Two-letter country codes, for example US, GB, DE, IL. Jobs whose country cannot be determined are left out when this is set.",
            "items": {
              "type": "string"
            }
          },
          "workplaceTypes": {
            "title": "Workplace type",
            "type": "array",
            "description": "Keep only these. Jobs whose career site does not say are left out when this is set.",
            "items": {
              "type": "string",
              "enum": [
                "remote",
                "hybrid",
                "onsite"
              ],
              "enumTitles": [
                "Remote",
                "Hybrid",
                "On-site"
              ]
            }
          },
          "employmentTypes": {
            "title": "Employment type",
            "type": "array",
            "description": "Keep only these. Jobs whose career site does not say are left out when this is set (a title like \"Intern\" counts as saying).",
            "items": {
              "type": "string",
              "enum": [
                "full_time",
                "part_time",
                "contract",
                "temporary",
                "internship",
                "other"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Temporary",
                "Internship",
                "Other"
              ]
            }
          },
          "postedWithinDays": {
            "title": "Posted within the last N days",
            "minimum": 1,
            "type": "integer",
            "description": "Keep only jobs posted in the last N days. Workday shows only \"Posted 30+ Days Ago\" for older jobs, so those count as 30 days old."
          },
          "companies": {
            "title": "Companies (optional: leave empty to search our index)",
            "type": "array",
            "description": "Leave empty to search every company in our index with the filters above. Or list companies, one per line, to get their jobs (any company on a supported system, in our index or not). Best: the company's job-board link, for example https://job-boards.greenhouse.io/gitlab, https://jobs.lever.co/spotify, https://jobs.ashbyhq.com/ramp, https://adobe.wd5.myworkdayjobs.com/external_experienced, an Oracle CandidateExperience link, https://apply.workable.com/mercari, https://acme.recruitee.com, https://acme.jobs.personio.de or https://acme.teamtailor.com (short form: greenhouse:gitlab). You can also paste the company's website (stripe.com) or name (Stripe): the Actor looks for the job board on the company's careers pages and confirms it belongs to that company. Lines it cannot confirm are listed as not found in OUTPUT and are not charged. Optionally put the company's name in front, separated by a bar: Acme Corp | https://jobs.lever.co/acme.",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 0,
            "type": "integer",
            "description": "The most jobs this run returns, all companies together (closed-job rows don't count). A search without companies returns the most recently posted matches. 0 means no limit.",
            "default": 1000
          },
          "includeDescription": {
            "title": "Include full job descriptions",
            "type": "boolean",
            "description": "On: every job comes with its full description (billed as \"Job with description\"). Off: list fields only (billed as \"Job without description\"), and Workday and Oracle boards need far fewer requests.",
            "default": true
          },
          "descriptionFormat": {
            "title": "Description format",
            "enum": [
              "text",
              "html",
              "both"
            ],
            "type": "string",
            "description": "Plain text keeps headings and bullet points as lines. HTML is the employer's original markup. Emails and phone numbers are removed from both.",
            "default": "text"
          },
          "includeSalaryDetails": {
            "title": "Fetch structured pay ranges on Greenhouse",
            "type": "boolean",
            "description": "Greenhouse returns structured pay ranges only one job at a time, so this costs one extra request per Greenhouse job. Off: pay is still read from the description text, where US postings usually state it. Lever, Ashby and Recruitee pay ranges are always included.",
            "default": false
          },
          "maxJobsPerCompany": {
            "title": "Max jobs per company",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many jobs from each company. 0 means all of them.",
            "default": 0
          },
          "onlyNewJobs": {
            "title": "Only jobs that are new or changed since the last run",
            "type": "boolean",
            "description": "Remembers which jobs earlier runs returned (per monitor name, in a key-value store in your account) and outputs only jobs that are new or whose details changed. Schedule the Actor daily to get a feed of new openings.",
            "default": false
          },
          "monitorName": {
            "title": "Monitor name",
            "pattern": "^[a-z0-9-]{1,40}$",
            "type": "string",
            "description": "Separate monitors keep separate memories. Use a different name for each company list or search you schedule. Lowercase letters, digits and hyphens.",
            "default": "default"
          },
          "emitExistingOnFirstRun": {
            "title": "First run: output the jobs that are already open",
            "type": "boolean",
            "description": "On: the first run of a monitor outputs every current job. Off: the first run only remembers them, so later runs output just what is new.",
            "default": true
          },
          "reportClosedJobs": {
            "title": "Also output jobs that closed",
            "type": "boolean",
            "description": "Adds a row with changeType \"closed\" for every job that disappeared from its career site. A job counts as closed after it is missing from two runs in a row, so a hiccup on the career site never reports open jobs as closed. Closed rows are free.",
            "default": false
          },
          "maxDataAgeHours": {
            "title": "Max data age (hours)",
            "minimum": 0,
            "type": "integer",
            "description": "Our index re-reads every company it covers each day. Companies it read within this many hours are taken from it: fast, and not charged as \"Company checked\". Other companies are read live from their career sites. 0 means always read live.",
            "default": 30
          },
          "maxConcurrency": {
            "title": "Companies read in parallel",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many career sites to read at the same time, of them at most 10 on Workday, whose sites share its servers. Each site is still asked politely, at most about one request per second.",
            "default": 10
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}