{
  "openapi": "3.0.1",
  "info": {
    "title": "Career Site Jobs API: Greenhouse, Lever, Ashby & more",
    "description": "Get every open job from company career sites on Greenhouse, Lever, Ashby, SmartRecruiters, Recruitee and Workable. Paste names or URLs; the platform is detected. Salary, remote, filters, only-new mode. $2 per 1,000 jobs.",
    "version": "1.0",
    "x-build-id": "zbtHe3GaRYHeO2iXx"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/reverend_sal~career-site-jobs-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-reverend_sal-career-site-jobs-api",
        "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/reverend_sal~career-site-jobs-api/runs": {
      "post": {
        "operationId": "runs-sync-reverend_sal-career-site-jobs-api",
        "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/reverend_sal~career-site-jobs-api/run-sync": {
      "post": {
        "operationId": "run-sync-reverend_sal-career-site-jobs-api",
        "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",
            "type": "array",
            "description": "One company per line: a job board name (\"stripe\"), a name with its platform (\"lever:spotify\", \"ashby:ramp\", \"smartrecruiters:Ubisoft2\"), a job board URL (https://jobs.lever.co/spotify, https://boards.greenhouse.io/figma, https://jobs.ashbyhq.com/ramp, https://bunq.recruitee.com, https://apply.workable.com/huggingface) or a company careers page that links to one. Bare names are looked up on every supported platform.",
            "items": {
              "type": "string"
            }
          },
          "platform": {
            "title": "Platform for bare names",
            "enum": [
              "auto",
              "greenhouse",
              "lever",
              "ashby",
              "smartrecruiters",
              "recruitee",
              "workable"
            ],
            "type": "string",
            "description": "Which platform bare names (\"stripe\") are on. \"Detect automatically\" checks all of them and uses the board with the most jobs. URLs and \"platform:name\" entries always use their own platform.",
            "default": "auto"
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Keep jobs whose title contains ANY of these words or phrases (whole words, case-insensitive: \"java\" does not match \"JavaScript\"). Leave empty for all jobs.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "searchInDescription": {
            "title": "Match keywords in the description too",
            "type": "boolean",
            "description": "Also match the keywords against the job description, not only the title.",
            "default": false
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop jobs whose title contains any of these words, e.g. \"senior\", \"intern\", \"manager\".",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Keep jobs whose location or country contains ANY of these, e.g. \"London\", \"Germany\", \"US\", \"Remote\".",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Keep only jobs marked as remote by the platform, or with \"remote\" in the title or location.",
            "default": false
          },
          "includeHybrid": {
            "title": "Count hybrid jobs as remote",
            "type": "boolean",
            "description": "With \"Remote jobs only\", also keep hybrid jobs.",
            "default": false
          },
          "departments": {
            "title": "Departments or teams",
            "type": "array",
            "description": "Keep jobs whose department or team contains ANY of these, e.g. \"Engineering\", \"Sales\".",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "employmentTypes": {
            "title": "Employment types",
            "type": "array",
            "description": "Keep only these employment types. Jobs whose board does not state a type (common on Greenhouse) are kept when Full-time is selected and left out otherwise. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "full-time",
                "part-time",
                "contract",
                "internship",
                "temporary"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Internship",
                "Temporary"
              ]
            },
            "default": []
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep jobs posted (or, where the platform gives no posting date, updated) in the last N days. 0 = any date. Jobs without any date are dropped when this is set.",
            "default": 0
          },
          "onlyNew": {
            "title": "Only new jobs since the last run",
            "type": "boolean",
            "description": "Remember the jobs delivered and, on later runs with the same memory key, deliver only jobs you have not received yet (you pay only for new ones). The first run delivers every matching job. Ideal for scheduled runs. Jobs that closed since the last run are listed in the run summary (OUTPUT) for free.",
            "default": false
          },
          "stateKey": {
            "title": "Memory key",
            "type": "string",
            "description": "Name of the memory used by \"Only new jobs\". Runs with the same key share it; use different keys for separate searches. Stored in your named key-value store \"career-site-jobs-api-state\".",
            "default": "default"
          },
          "maxJobs": {
            "title": "Max jobs",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many jobs in total (all companies). You pay $0.002 per job delivered, so 1,000 jobs cost at most $2. This is a hard cap on the cost of a run.",
            "default": 1000
          },
          "maxJobsPerCompany": {
            "title": "Max jobs per company",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Newest jobs first. 0 = no per-company limit. Tip: keep it small (e.g. 20) for a quick, cheap first run.",
            "default": 0
          },
          "includeDescription": {
            "title": "Include description text",
            "type": "boolean",
            "description": "Add the full job description as plain text (descriptionText).",
            "default": true
          },
          "includeDescriptionHtml": {
            "title": "Include description HTML",
            "type": "boolean",
            "description": "Also add the description as HTML (descriptionHtml), as published on the board.",
            "default": false
          },
          "greenhouseSalary": {
            "title": "Greenhouse pay ranges",
            "type": "boolean",
            "description": "Greenhouse publishes pay-transparency ranges only on each job's own record: read it for every Greenhouse job delivered (one extra request per job, a little slower).",
            "default": true
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many boards and job detail pages are loaded at the same time.",
            "default": 8
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}