{
  "openapi": "3.0.1",
  "info": {
    "title": "Greenhouse Jobs Scraper & Job Board API",
    "description": "Every open job on any Greenhouse job board, via Greenhouse's public Job Board API: departments, offices, location, remote flag, posted date, pay ranges, description. Filters plus a new-jobs-only monitoring mode.",
    "version": "1.0",
    "x-build-id": "xCzxHKm2dXV3ha7hZ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/steadybyte~greenhouse-jobs/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-steadybyte-greenhouse-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/steadybyte~greenhouse-jobs/runs": {
      "post": {
        "operationId": "runs-sync-steadybyte-greenhouse-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/steadybyte~greenhouse-jobs/run-sync": {
      "post": {
        "operationId": "run-sync-steadybyte-greenhouse-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",
        "required": [
          "companies"
        ],
        "properties": {
          "companies": {
            "title": "Greenhouse boards / companies",
            "type": "array",
            "description": "One company per line. Use any of: a Greenhouse board token (gitlab), the same with a prefix (greenhouse:gitlab), a Greenhouse board URL (https://job-boards.greenhouse.io/gitlab, https://boards.greenhouse.io/airbnb, https://job-boards.eu.greenhouse.io/<token>), one job's URL (https://job-boards.greenhouse.io/gitlab/jobs/123 or a careers link with ?gh_jid=123: only that job is returned and charged), a Job Board API or embed URL (https://boards-api.greenhouse.io/v1/boards/gitlab/jobs, ...greenhouse.io/embed/job_board?for=gitlab), a company careers page URL that embeds or links its Greenhouse board, or a company name (tried as a board token: 'Scale AI' is tried as scaleai and scale-ai). Repeated lines are read once. A company that isn't on Greenhouse is skipped with a warning; the run still succeeds. For Lever, Workday, Ashby and 12 other ATS use ATS Jobs Feed (steadybyte/ats-jobs-feed).",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords (any)",
            "type": "array",
            "description": "Keep jobs whose title or any of its departments (plus description, if enabled below) contains at least one of these. Single words match whole words; words of 4+ letters also match plain endings ('engineer' matches 'Engineers' and 'Engineering', but 'java' does not match 'JavaScript' and 'sales' does not match 'Salesforce'), short words match whole words only ('go' does not match 'Google'). Multi-word terms match as an exact phrase, case-insensitive, with spaces or hyphens between words: 'Ruby on Rails' matches 'Ruby on Rails' and 'ruby-on-rails' but not 'payment rails' or 'Ruby and Rails'. Wrap a term in double quotes to match the exact word only: '\"engineer\"' does not match 'Engineering'. Leave empty to keep all jobs.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "keywordsInDescription": {
            "title": "Also match keywords in description",
            "type": "boolean",
            "description": "Also match Keywords against the full job description (e.g. find Rails roles whose title only says 'Software Engineer'). Descriptions often list many technologies, so prefer phrases like 'Ruby on Rails' here, or combine with Title must contain to keep results relevant.",
            "default": false
          },
          "titleKeywords": {
            "title": "Title must contain (any)",
            "type": "array",
            "description": "Optional. Keep only jobs whose title contains at least one of these (same word/phrase rules as Keywords). Applied in addition to Keywords: e.g. Keywords ['Ruby on Rails'] with description search plus Title must contain ['engineer','developer'] returns engineering roles that mention Rails. Leave empty to not restrict titles.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude title keywords",
            "type": "array",
            "description": "Drop jobs whose title contains any of these words, e.g. intern, senior. Whole words plus plain endings: 'intern' drops 'Intern', 'Interns' and 'Internship' but keeps 'Internal' and 'International'.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "departments": {
            "title": "Departments (any)",
            "type": "array",
            "description": "Keep only jobs filed under a Greenhouse department that matches at least one of these, e.g. Engineering, Sales, Marketing (same word/phrase rules as Keywords: 'engineer' matches 'Engineering'). A job with several departments matches if any of them does. Leave empty to keep all departments.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations (any)",
            "type": "array",
            "description": "Keep jobs whose location, any other location, or country matches at least one of these, e.g. India, London, US, Remote. Common spellings are treated as the same place: US / USA / United States, UK / United Kingdom, NY / New York / NYC, Bengaluru / Bangalore, Munich / München. Two-letter entries that are country codes mean the country (CA = Canada, IN = India); for a US state use its name (California) or US-CA. 'Georgia' is the country; use US-GA for the state. 'US' also finds US jobs written 'City, State'. A country also finds jobs listed only by a major city in it ('United Kingdom' finds 'London', 'Germany' finds 'Munich').",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Keep only remote jobs: the employer's own 'Workplace Type' / 'Location Type' field when they publish one on Greenhouse, otherwise 'Remote' in any of the job's locations or a remote tag in the title, e.g. 'Engineer (Remote)'.",
            "default": false
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only jobs first published in the last N days. 0 = no limit. Jobs without a publish date are dropped when this is set.",
            "default": 0
          },
          "onlyNewJobs": {
            "title": "Only new jobs (monitoring mode)",
            "type": "boolean",
            "description": "Remember which jobs were already delivered and return only jobs not seen in earlier runs with the same Monitor ID. The first run returns all matching jobs. Schedule the Actor daily to get a feed of new openings.",
            "default": false
          },
          "monitorId": {
            "title": "Monitor ID",
            "type": "string",
            "description": "Name for the list of already-delivered jobs used by monitoring mode. Use a different ID for each independent feed. IDs are exact: 'feed 1' and 'feed_1' are different feeds. Must be text.",
            "default": "default"
          },
          "includeDescription": {
            "title": "Include description (plain text)",
            "type": "boolean",
            "description": "Add the full job description as clean plain text.",
            "default": true
          },
          "includeDescriptionHtml": {
            "title": "Include description (HTML)",
            "type": "boolean",
            "description": "Also add the original description HTML.",
            "default": false
          },
          "maxJobsPerCompany": {
            "title": "Max jobs per company",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many delivered jobs per board. 0 = no limit. Greenhouse lists a whole board in one request, so this limits what is delivered and charged, not what is downloaded.",
            "default": 0
          },
          "maxJobs": {
            "title": "Max jobs in total",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many delivered jobs in total. 0 = no limit. You are charged only for delivered jobs, never more than this number.",
            "default": 0
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}