{
  "openapi": "3.0.1",
  "info": {
    "title": "Greenhouse Jobs Scraper: Salary Ranges & New Jobs",
    "description": "Search open jobs across 5,800+ companies on Greenhouse, or read any company’s Greenhouse board: Airbnb, Stripe, Figma and more. Greenhouse pay ranges by zone, salary, seniority, visa, exact posting date, full text and application questions. Only-new-jobs mode. No login.",
    "version": "1.0",
    "x-build-id": "OL4oqY8Rkgr3i5dJA"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/digital_influx~greenhouse-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-digital_influx-greenhouse-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/digital_influx~greenhouse-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-digital_influx-greenhouse-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/digital_influx~greenhouse-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-digital_influx-greenhouse-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": {
          "keywords": {
            "title": "Job title keywords",
            "type": "array",
            "description": "Keep jobs whose title contains any of these words (whole-word match: 'intern' does not match 'internal'). Example: software engineer, data scientist. Leave empty for all jobs.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude title keywords",
            "type": "array",
            "description": "Drop jobs whose title contains any of these words, e.g. senior, manager, intern.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Keep jobs whose location, any office or country code contains one of these texts: New York, Germany, DE, London. Codes of two letters match whole words only. The word 'remote' also matches jobs flagged remote.",
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote only",
            "type": "boolean",
            "description": "Keep only jobs that offer a fully remote option: the company marked the job Remote, or its location says Remote.",
            "default": false
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 1,
            "type": "integer",
            "description": "Keep only jobs first published on Greenhouse in the last N days."
          },
          "seniority": {
            "title": "Seniority",
            "type": "array",
            "description": "Keep only these levels, read from the job title: \"Senior Data Engineer\" is senior, \"Head of Sales\" is director. \"Not stated\" keeps titles without a level word, which are mostly mid-level roles. Empty = all levels.",
            "items": {
              "type": "string",
              "enum": [
                "intern",
                "entry",
                "unspecified",
                "senior",
                "lead",
                "director",
                "executive"
              ],
              "enumTitles": [
                "Intern / working student",
                "Entry / junior / associate",
                "Not stated (usually mid-level)",
                "Senior",
                "Lead / staff / principal",
                "Director / head of",
                "Executive (VP, C-level)"
              ]
            }
          },
          "workplaceTypes": {
            "title": "Workplace type",
            "type": "array",
            "description": "Keep only these workplace types. Greenhouse has no such field: it comes from a custom field some companies add (\"Workplace Type\") or from a location that says Remote, Hybrid or On-site. Most jobs do not state it (85% of the 195,000 in our index): add \"Not stated\" to keep them. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "remote",
                "hybrid",
                "onsite",
                "unspecified"
              ],
              "enumTitles": [
                "Remote",
                "Hybrid",
                "On-site",
                "Not stated"
              ]
            }
          },
          "employmentTypes": {
            "title": "Employment type",
            "type": "array",
            "description": "Keep only these employment types. Greenhouse lists none, so jobs count as \"Not stated\" unless the title says intern, part-time or (contract). Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "fulltime",
                "parttime",
                "contract",
                "temporary",
                "internship",
                "unspecified"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract / freelance",
                "Temporary / fixed-term",
                "Internship / working student",
                "Not stated"
              ]
            }
          },
          "descriptionKeywords": {
            "title": "Description keywords",
            "type": "array",
            "description": "Keep jobs whose description contains any of these words (whole-word match), e.g. Python, Kubernetes, GDPR.",
            "items": {
              "type": "string"
            }
          },
          "excludeDescriptionKeywords": {
            "title": "Exclude description keywords",
            "type": "array",
            "description": "Drop jobs whose description contains any of these words, e.g. clearance, relocation.",
            "items": {
              "type": "string"
            }
          },
          "onlyWithSalary": {
            "title": "Only jobs that state a salary",
            "type": "boolean",
            "description": "Keep only jobs with a salary: a pay range written in the description (such as a US pay-transparency range) or one the company set in Greenhouse.",
            "default": false
          },
          "onlyVisaSponsorship": {
            "title": "Only jobs that offer visa sponsorship",
            "type": "boolean",
            "description": "Keep only jobs whose description says the company sponsors visas. Jobs that say nothing about it are dropped.",
            "default": false
          },
          "boards": {
            "title": "Greenhouse boards (optional)",
            "type": "array",
            "description": "Leave empty to search every company in our Greenhouse directory (5,800+). Or add companies' Greenhouse boards to read just those, whole: the board address (job-boards.greenhouse.io/airbnb, boards.greenhouse.io/stripe) or only its name on Greenhouse (airbnb). A link to any job on the board works too. The filters above apply to both.",
            "items": {
              "type": "string"
            }
          },
          "excludeCompanies": {
            "title": "Exclude companies",
            "type": "array",
            "description": "When searching the directory: skip companies whose name or Greenhouse board name contains one of these texts.",
            "items": {
              "type": "string"
            }
          },
          "maxJobs": {
            "title": "Max jobs",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Newest first, across all companies. Empty: 200 for a directory search, and every job (up to 5,000) when you give boards. You also never pay more than the spending limit you set for the run."
          },
          "maxJobsPerCompany": {
            "title": "Max jobs per company",
            "minimum": 0,
            "type": "integer",
            "description": "Newest first. Keeps one big employer from filling the results. 0 or empty = no limit."
          },
          "descriptionFormat": {
            "title": "Job description",
            "enum": [
              "text",
              "html",
              "both",
              "none"
            ],
            "type": "string",
            "description": "Plain text is best for spreadsheets and AI agents. 'None' makes runs faster and results smaller, but then the pay ranges are not read either (they come with the job page).",
            "default": "text"
          },
          "includeApplicationQuestions": {
            "title": "Include application questions",
            "type": "boolean",
            "description": "Add the job's application form: each question (resume, LinkedIn, work authorization, custom questions), whether it is required, the field type and the choices of a select. Useful for apply tools and AI agents.",
            "default": false
          },
          "onlyNew": {
            "title": "Only new jobs (for scheduled runs)",
            "type": "boolean",
            "description": "Save only jobs that earlier runs of this same search (or these same boards) did not save, so a daily schedule gives you just the new postings and you pay only for those. The memory is kept for 180 days in a key-value store named \"greenhouse-jobs-state\" in your account.",
            "default": false
          },
          "stateKey": {
            "title": "Memory name (optional)",
            "type": "string",
            "description": "By default each search or set of boards has its own memory. Give a name to share one memory between tasks, or a new name to start over. Letters, digits, dot, dash and underscore."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}