{
  "openapi": "3.0.1",
  "info": {
    "title": "Company Jobs Search: Live Career Site Jobs API",
    "description": "Search open jobs by title on 1,302 company career sites, read live from Greenhouse, Lever, Ashby and Workday during the run. Filter by location, remote or hybrid, employment type, seniority, department, posting date and salary. One format for every source. Pay per job.",
    "version": "0.0",
    "x-build-id": "lt6S8AdYSH2mWjCBi"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/enisbodlli~company-jobs-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-enisbodlli-company-jobs-search",
        "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/enisbodlli~company-jobs-search/runs": {
      "post": {
        "operationId": "runs-sync-enisbodlli-company-jobs-search",
        "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/enisbodlli~company-jobs-search/run-sync": {
      "post": {
        "operationId": "run-sync-enisbodlli-company-jobs-search",
        "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": [
          "keywords"
        ],
        "properties": {
          "keywords": {
            "title": "Job title keywords",
            "minItems": 1,
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Words or phrases to look for in the job title, for example software engineer or product manager. A job matches when its title contains at least one of them. Not case sensitive. Required.",
            "items": {
              "type": "string",
              "maxLength": 100
            }
          },
          "excludeKeywords": {
            "title": "Exclude title keywords",
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Leave out jobs whose title contains any of these words or phrases, for example intern or manager. Not case sensitive.",
            "items": {
              "type": "string",
              "maxLength": 100
            },
            "default": []
          },
          "locations": {
            "title": "Locations",
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only jobs whose location contains at least one of these words or phrases, for example Berlin, United Kingdom or Remote. Not case sensitive. The text is compared with the location as the employer wrote it: United States does not find a job listed as San Francisco, CA, so add the wordings you expect. Leave empty to keep every location.",
            "items": {
              "type": "string",
              "maxLength": 100
            },
            "default": []
          },
          "excludeLocations": {
            "title": "Exclude locations",
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Leave out a job when any of its listed locations contains one of these words or phrases, for example India or Remote. Not case sensitive. A job that lists no location is kept.",
            "items": {
              "type": "string",
              "maxLength": 100
            },
            "default": []
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Keep only jobs marked as remote. Greenhouse has no remote flag, so a Greenhouse job counts as remote when its location text contains the word remote.",
            "default": false
          },
          "workplaceTypes": {
            "title": "Workplace types",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only jobs with one of these work arrangements. A job whose board states none is left out: Lever and Ashby state it for most jobs, Greenhouse states none (a Greenhouse job passes only as remote, when its location text says remote), and Workday only where the job list itself shows it. Leave empty to keep every job.",
            "items": {
              "type": "string",
              "enum": [
                "remote",
                "hybrid",
                "onsite"
              ],
              "enumTitles": [
                "Remote",
                "Hybrid",
                "On site"
              ]
            },
            "default": []
          },
          "employmentTypes": {
            "title": "Employment types",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only jobs of these types. A job whose type the job system does not state is kept, because Greenhouse states none.",
            "items": {
              "type": "string",
              "enum": [
                "full_time",
                "part_time",
                "contract",
                "temporary",
                "internship"
              ],
              "enumTitles": [
                "Full time",
                "Part time",
                "Contract",
                "Temporary",
                "Internship"
              ]
            },
            "default": []
          },
          "seniority": {
            "title": "Seniority",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only jobs whose title states one of these ranks. The rank is read from the job title by fixed rules: Senior Software Engineer is senior, Engineering Manager is manager. A title without a rank word, such as Software Engineer, has no seniority and is left out when this filter is set. Leave empty to keep every job.",
            "items": {
              "type": "string",
              "enum": [
                "intern",
                "entry",
                "mid",
                "senior",
                "lead",
                "staff",
                "principal",
                "manager",
                "director",
                "vp",
                "executive"
              ],
              "enumTitles": [
                "Intern",
                "Entry level",
                "Mid level",
                "Senior",
                "Lead",
                "Staff",
                "Principal",
                "Manager",
                "Director",
                "Vice president",
                "Executive"
              ]
            },
            "default": []
          },
          "departments": {
            "title": "Departments",
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only jobs whose department or team contains at least one of these words, for example engineering or sales. Not case sensitive. Departments are compared as each employer names them; there is no common list of job categories. A job that sits in no department is left out. Workday lists no department, so its jobs do not pass this filter.",
            "items": {
              "type": "string",
              "maxLength": 100
            },
            "default": []
          },
          "postedWithinDays": {
            "title": "Posted within the last days",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "Keep only jobs published in the last this many days, for example 7 for the past week. 0 keeps every date. Jobs without a published date are left out when this is set. The smallest window is 1 day.",
            "default": 0
          },
          "hasSalary": {
            "title": "Only jobs with a salary",
            "type": "boolean",
            "description": "Keep only jobs that state pay: in the job system's own salary fields (Lever, Ashby and the pay ranges some companies publish on Greenhouse), or, on Lever, Ashby and Workday, as a pay range written in the description. On Greenhouse a figure that appears only in the description text is not used by this filter.",
            "default": false
          },
          "minSalary": {
            "title": "Minimum yearly salary",
            "minimum": 0,
            "maximum": 10000000,
            "type": "integer",
            "description": "Keep only jobs whose stated yearly pay reaches at least this amount at the top of its range, for example 120000. The number is compared as stated, in the employer's currency, without conversion. Jobs with hourly, daily, weekly or monthly pay, and jobs that state no pay, are left out. 0 turns this off.",
            "default": 0
          },
          "companies": {
            "title": "Only these companies",
            "maxItems": 1000,
            "uniqueItems": true,
            "type": "array",
            "description": "Search only these companies instead of the whole built-in list. Use the company or board name (for example stripe or Scale AI) or a job board address. A name that is not in the built-in list is looked up on Greenhouse, Lever and Ashby. Leave empty to search every company.",
            "items": {
              "type": "string",
              "maxLength": 500
            },
            "default": []
          },
          "excludeCompanies": {
            "title": "Exclude companies",
            "maxItems": 1000,
            "uniqueItems": true,
            "type": "array",
            "description": "Skip these companies. Use the value of the company field of a result (for example stripe) or the company name.",
            "items": {
              "type": "string",
              "maxLength": 500
            },
            "default": []
          },
          "systems": {
            "title": "Job board systems",
            "uniqueItems": true,
            "type": "array",
            "description": "Search only the companies of the built-in list whose career site runs on these systems. Leave empty to search all four. Companies you name yourself are searched whatever their system.",
            "items": {
              "type": "string",
              "enum": [
                "greenhouse",
                "lever",
                "ashby",
                "workday"
              ],
              "enumTitles": [
                "Greenhouse",
                "Lever",
                "Ashby",
                "Workday"
              ]
            },
            "default": []
          },
          "extraCompanies": {
            "title": "Extra companies",
            "maxItems": 1000,
            "uniqueItems": true,
            "type": "array",
            "description": "Companies to search in addition to the built-in list. Use the job board address (for example https://boards.greenhouse.io/stripe, https://jobs.lever.co/palantir, https://jobs.ashbyhq.com/openai or https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite) or a board name (for example stripe). Workday always needs the address. A company that is already in the list is searched once.",
            "items": {
              "type": "string",
              "maxLength": 500
            },
            "default": []
          },
          "includeDescription": {
            "title": "Include job description",
            "type": "boolean",
            "description": "Add the full job description as plain text and as HTML. Off by default for smaller, faster results.",
            "default": false
          },
          "maxJobsPerCompany": {
            "title": "Maximum jobs per company",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Take at most this many matching jobs from one company, so that a common job title is not filled by the first large company that answers. 0 means no limit.",
            "default": 0
          },
          "maxResults": {
            "title": "Maximum jobs",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop as soon as this many jobs are saved. You pay per saved job, so this is also the most one run can cost. The largest companies are searched first, so a common job title fills up within seconds.",
            "default": 200
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}