{
  "openapi": "3.0.1",
  "info": {
    "title": "Greenhouse Jobs Scraper · All Postings From Any Company Board",
    "description": "Greenhouse Jobs Scraper extracts live job postings from any company using Greenhouse ATS (Stripe, Airbnb, Figma, Anthropic, GitLab). Scrape job titles, departments, locations, remote flags, salaries, descriptions, and apply URLs into clean JSON.",
    "version": "1.0",
    "x-build-id": "Qkc6f5vaiW7lphkoD"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/reapx~greenhouse-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-reapx-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/reapx~greenhouse-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-reapx-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/reapx~greenhouse-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-reapx-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": {
          "boards": {
            "title": "Greenhouse company boards",
            "maxItems": 200,
            "uniqueItems": true,
            "type": "array",
            "description": "One entry per company. Paste the board token (the last part of the board URL, e.g. \"stripe\") or the full board URL, e.g. \"https://job-boards.greenhouse.io/stripe\". Example: stripe, anthropic, figma. Leave empty to run the three sample boards.",
            "items": {
              "type": "string"
            }
          },
          "titleKeywords": {
            "title": "Job title must contain any of",
            "type": "array",
            "description": "Case-insensitive. A posting is kept when its title contains at least one of these. Example: engineer, developer.<br><br>Leave this field empty to include every option.",
            "items": {
              "type": "string"
            }
          },
          "excludeTitleKeywords": {
            "title": "Job title must NOT contain any of",
            "type": "array",
            "description": "Case-insensitive. Drops postings whose title contains any of these. Example: intern, contract.<br><br>Leave this field empty to include every option.",
            "items": {
              "type": "string"
            }
          },
          "departmentKeywords": {
            "title": "Department contains any of",
            "type": "array",
            "description": "Matched against the posting's team name and every parent department above it, so \"engineering\" still finds a role filed under an internal team code. Example: engineering, data.<br><br>Leave this field empty to include every option.",
            "items": {
              "type": "string"
            }
          },
          "locationKeywords": {
            "title": "Location contains any of",
            "type": "array",
            "description": "Matched against the posting location and office names. Example: San Francisco, New York, London.<br><br>Leave this field empty to include every option.",
            "items": {
              "type": "string"
            }
          },
          "descriptionKeywords": {
            "title": "Description contains any of",
            "type": "array",
            "description": "Full-text search inside the job description. Example: Rust, Kubernetes, Series B.<br><br>Leave this field empty to include every option.",
            "items": {
              "type": "string"
            }
          },
          "seniorityLevels": {
            "title": "Seniority level",
            "type": "array",
            "description": "Seniority is read from the job title. Titles with no seniority marker count as mid. Example: senior, staff.<br><br>Leave this field empty to include every option.",
            "items": {
              "type": "string",
              "enum": [
                "internship",
                "entry",
                "mid",
                "senior",
                "staff",
                "principal",
                "director",
                "executive"
              ],
              "enumTitles": [
                "Internship",
                "Entry level",
                "Mid level",
                "Senior",
                "Staff",
                "Principal",
                "Director",
                "Executive / VP"
              ]
            }
          },
          "employmentTypes": {
            "title": "Employment type",
            "type": "array",
            "description": "Read from the board's own employment-type field when it publishes one, otherwise from the title. Example: fullTime.<br><br>Leave this field empty to include every option.",
            "items": {
              "type": "string",
              "enum": [
                "fullTime",
                "partTime",
                "contract",
                "internship",
                "temporary",
                "other"
              ],
              "enumTitles": [
                "Full time",
                "Part time",
                "Contract",
                "Internship",
                "Temporary",
                "Other"
              ]
            }
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Keep only postings whose location, title or board field says remote. Example: true.",
            "default": false
          },
          "withSalaryOnly": {
            "title": "Only jobs with an advertised salary",
            "type": "boolean",
            "description": "Keep only postings that publish a pay range in the description. Example: true.",
            "default": false
          },
          "postedWithinDays": {
            "title": "Posted within the last N days",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Uses the date the posting first went live. Example: 7 for the past week.<br><br>The higher the number, the longer the run takes and the more you are charged, because you pay per row returned."
          },
          "updatedWithinDays": {
            "title": "Updated within the last N days",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Uses the date the posting was last edited on the board. Example: 30.<br><br>The higher the number, the longer the run takes and the more you are charged, because you pay per row returned."
          },
          "includeDescription": {
            "title": "Include the full job description (plain text)",
            "type": "boolean",
            "description": "Adds descriptionText to every row. Turn it off for a slim listing feed. Example: true.",
            "default": true
          },
          "includeDescriptionHtml": {
            "title": "Include the job description as HTML",
            "type": "boolean",
            "description": "Adds descriptionHtml with the original formatting. Example: false.",
            "default": false
          },
          "sortBy": {
            "title": "Sort results by",
            "enum": [
              "newest",
              "oldest",
              "company",
              "title",
              "salary"
            ],
            "type": "string",
            "description": "Applied across all boards before the Max jobs cut-off. Example: newest.<br><br>Options: <code>newest</code>, <code>oldest</code>, <code>company</code>, <code>title</code>, <code>salary</code>.",
            "default": "newest"
          },
          "maxItems": {
            "title": "Max jobs",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Total rows returned across every board. You are charged per row returned. Example: 200.<br><br>The higher the number, the longer the run takes and the more you are charged, because you pay per row returned.",
            "default": 200
          },
          "maxItemsPerBoard": {
            "title": "Max jobs per company board",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Stops one very large board from using up the whole budget. Leave empty for no per-board limit. Example: 25.<br><br>The higher the number, the longer the run takes and the more you are charged, because you pay per row returned."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}