{
  "openapi": "3.0.1",
  "info": {
    "title": "Career Site Jobs Scraper: Greenhouse, Lever & Ashby",
    "description": "Search about 180,000 open jobs from 5,600 company career sites on Greenhouse, Ashby and Recruitee in one run, plus live Lever and Workable boards for companies you list. Fuzzy title match, salary, seniority and remote filters. $0.90 per 1,000 jobs; daily-feed repeats and closed jobs are free.",
    "version": "1.0",
    "x-build-id": "3cAfSjUKrhnTbsdre"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/plainsource~career-site-jobs/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-plainsource-career-site-jobs",
        "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/plainsource~career-site-jobs/runs": {
      "post": {
        "operationId": "runs-sync-plainsource-career-site-jobs",
        "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/plainsource~career-site-jobs/run-sync": {
      "post": {
        "operationId": "run-sync-plainsource-career-site-jobs",
        "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": {
          "keywords": {
            "title": "Job title keywords",
            "type": "array",
            "description": "A job matches if its title contains every word of any one phrase, in any order. \"senior data engineer\" matches \"Data Engineer, Senior\". Common abbreviations are expanded (Sr, Eng, SWE, PM, ML). Leave empty to return every job.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude titles with",
            "type": "array",
            "description": "Drop jobs whose title matches any of these phrases, e.g. \"intern\" or \"manager\".",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Keep jobs whose location contains any of these, e.g. \"Toronto\", \"Berlin\", \"remote\". Two-letter country codes (US, CA, GB, DE, ES, MX...) also work.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "workplaceTypes": {
            "title": "Workplace type",
            "type": "array",
            "description": "Only keep jobs the ATS marks with one of these types. Greenhouse often leaves this unspecified, so including \"unspecified\" avoids dropping those jobs.",
            "items": {
              "type": "string",
              "enum": [
                "remote",
                "hybrid",
                "onsite",
                "unspecified"
              ],
              "enumTitles": [
                "Remote",
                "Hybrid",
                "On-site",
                "Not specified by the employer"
              ]
            },
            "default": []
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 0,
            "type": "integer",
            "description": "Only jobs first published in the last N days. 0 means any date.",
            "default": 0
          },
          "companies": {
            "title": "Companies",
            "type": "array",
            "description": "Optional. Limit the search to these companies and fetch their boards live. Required for Lever and Workable boards, which are not in the daily snapshot. Accepts board URLs (https://jobs.lever.co/palantir), \"ats:id\" (greenhouse:airbnb), or a plain board id (stripe). Unknown ids are tried on every supported ATS and reported if not found.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "ats": {
            "title": "ATS platforms",
            "type": "array",
            "description": "Only search these platforms. Empty means all five. Without a company list, Lever and Workable are skipped (they are only fetched live for listed companies).",
            "items": {
              "type": "string",
              "enum": [
                "greenhouse",
                "lever",
                "ashby",
                "recruitee",
                "workable"
              ],
              "enumTitles": [
                "Greenhouse",
                "Lever",
                "Ashby",
                "Recruitee",
                "Workable"
              ]
            },
            "default": []
          },
          "seniorityLevels": {
            "title": "Seniority",
            "type": "array",
            "description": "Detected from the job title. \"mid\" means no level word was found.",
            "items": {
              "type": "string",
              "enum": [
                "intern",
                "entry",
                "mid",
                "senior",
                "lead",
                "manager",
                "director",
                "executive"
              ],
              "enumTitles": [
                "Intern / co-op",
                "Entry / junior",
                "Mid (no level in title)",
                "Senior",
                "Staff / principal / lead",
                "Manager",
                "Director",
                "VP / C-level"
              ]
            },
            "default": []
          },
          "hasSalary": {
            "title": "Only jobs with salary info",
            "type": "boolean",
            "description": "Keep only postings that publish pay (common on Ashby and Lever, rare on Greenhouse).",
            "default": false
          },
          "descriptionKeywords": {
            "title": "Description must mention",
            "type": "array",
            "description": "Keep jobs whose description matches any of these phrases, e.g. \"visa sponsorship\" or \"Kubernetes\". Turns on description fetching for matched boards, so runs take longer.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "includeDescription": {
            "title": "Include full description",
            "type": "boolean",
            "description": "Add the plain-text job description to each result.",
            "default": false
          },
          "exactMatch": {
            "title": "Exact phrase matching",
            "type": "boolean",
            "description": "Match keywords as exact substrings instead of word-by-word.",
            "default": false
          },
          "dedupe": {
            "title": "Merge duplicate postings",
            "type": "boolean",
            "description": "Many companies post the same role once per city. When on, these become one row with all locations listed and the other URLs in otherUrls.",
            "default": true
          },
          "onlyNew": {
            "title": "Only new or changed jobs",
            "type": "boolean",
            "description": "Return only jobs that are new or changed since your last run with the same state key. You are not charged for jobs you already received. Use this with a schedule for a daily feed.",
            "default": false
          },
          "reportClosed": {
            "title": "Report closed jobs (free)",
            "type": "boolean",
            "description": "With \"Only new or changed jobs\", also output jobs that disappeared since the last run, marked changeStatus: closed. These rows are not charged.",
            "default": false
          },
          "stateKey": {
            "title": "State key",
            "type": "string",
            "description": "Keeps separate \"seen jobs\" memories for different searches. Use one key per saved search.",
            "default": "default"
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 1,
            "type": "integer",
            "description": "Upper limit on paid results per run. Newest jobs come first.",
            "default": 100
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}