{
  "openapi": "3.0.1",
  "info": {
    "title": "Greenhouse, Lever & Ashby Jobs Scraper | No Slugs + Salaries",
    "description": "Search Greenhouse jobs without knowing a board slug: a built-in directory of 2,800+ US and EU employers, filtered by title, location, country, remote/hybrid, department, posting date or published salary. Or paste a slug, board or job URL, careers page or company name. 55 fields incl. salary min/max.",
    "version": "0.1",
    "x-build-id": "PPtqR0R5OVNK63Yuo"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/corvuslab~greenhouse-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-corvuslab-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/corvuslab~greenhouse-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-corvuslab-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/corvuslab~greenhouse-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-corvuslab-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": {
          "companies": {
            "title": "🏢 Companies",
            "type": "array",
            "description": "One per line. Any of: a board URL from Greenhouse (job-boards.greenhouse.io/stripe), Lever (jobs.lever.co/spotify), Ashby (jobs.ashbyhq.com/ramp), SmartRecruiters (jobs.smartrecruiters.com/BoschGroup), Personio (acme.jobs.personio.de) or Recruitee (acme.recruitee.com); a job URL; a slug (stripe) or 'lever:spotify'; a company's own careers page (stripe.com/jobs); or a company name from the directory (Figma). The system is detected automatically. Leave empty to search the whole directory.",
            "items": {
              "type": "string"
            }
          },
          "searchAllCompanies": {
            "title": "🌐 Also search the whole directory",
            "type": "boolean",
            "description": "Search every company in the built-in directory as well as the ones you listed. Always on when Companies is empty.",
            "default": false
          },
          "platforms": {
            "title": "🧩 Job-board systems",
            "type": "array",
            "description": "Limit a directory search to these systems. Empty = all six. Companies you list are always read.",
            "items": {
              "type": "string",
              "enum": [
                "greenhouse",
                "lever",
                "ashby",
                "smartrecruiters",
                "personio",
                "recruitee"
              ],
              "enumTitles": [
                "Greenhouse",
                "Lever",
                "Ashby",
                "SmartRecruiters",
                "Personio",
                "Recruitee"
              ]
            }
          },
          "maxCompanies": {
            "title": "🔢 Max directory companies",
            "minimum": 0,
            "type": "integer",
            "description": "Limit how many directory companies are searched (biggest employers first). 0 = all of them.",
            "default": 0
          },
          "searchTerms": {
            "title": "🔑 Job title keywords",
            "type": "array",
            "description": "Keep jobs whose title contains any of these words or phrases (whole words, case-insensitive). \"engineer OR developer\" in one line works too. Leave empty for all jobs.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "🚫 Exclude keywords",
            "type": "array",
            "description": "Drop jobs whose title contains any of these, e.g. senior, intern, manager. \"senior\" also drops \"Sr.\" titles, \"junior\" drops \"Jr.\".",
            "items": {
              "type": "string"
            }
          },
          "searchInDescription": {
            "title": "📄 Also match keywords in the description",
            "type": "boolean",
            "description": "Match the keywords against the full job description too, not just the title. Finds more jobs, reads more data.",
            "default": false
          },
          "locations": {
            "title": "📍 Locations",
            "type": "array",
            "description": "Keep jobs whose location contains any of these, e.g. London, Berlin, New York, Remote. Spellings are matched both ways: NYC/New York, Bangalore/Bengaluru, Munich/München.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "🗺️ Countries",
            "type": "array",
            "description": "Keep jobs located in any of these countries. Also narrows a directory search to companies hiring there.",
            "items": {
              "type": "string",
              "enum": [
                "US",
                "GB",
                "CA",
                "DE",
                "IE",
                "FR",
                "NL",
                "ES",
                "IN",
                "AU",
                "SG",
                "JP",
                "BR",
                "MX",
                "PL",
                "PT",
                "SE",
                "CH",
                "IL",
                "AE",
                "IT",
                "DK",
                "NO",
                "FI",
                "BE",
                "AT",
                "CZ",
                "RO",
                "AR",
                "CO",
                "NZ",
                "HK",
                "KR",
                "PH",
                "ZA"
              ],
              "enumTitles": [
                "United States",
                "United Kingdom",
                "Canada",
                "Germany",
                "Ireland",
                "France",
                "Netherlands",
                "Spain",
                "India",
                "Australia",
                "Singapore",
                "Japan",
                "Brazil",
                "Mexico",
                "Poland",
                "Portugal",
                "Sweden",
                "Switzerland",
                "Israel",
                "United Arab Emirates",
                "Italy",
                "Denmark",
                "Norway",
                "Finland",
                "Belgium",
                "Austria",
                "Czechia",
                "Romania",
                "Argentina",
                "Colombia",
                "New Zealand",
                "Hong Kong",
                "South Korea",
                "Philippines",
                "South Africa"
              ]
            }
          },
          "workplaceTypes": {
            "title": "🏠 Workplace type",
            "type": "array",
            "description": "Keep only remote, hybrid or on-site jobs.",
            "items": {
              "type": "string",
              "enum": [
                "remote",
                "hybrid",
                "onsite"
              ],
              "enumTitles": [
                "Remote",
                "Hybrid",
                "On-site"
              ]
            }
          },
          "departments": {
            "title": "🗂️ Departments",
            "type": "array",
            "description": "Keep jobs in departments whose name contains any of these, e.g. Engineering, Sales, Data.",
            "items": {
              "type": "string"
            }
          },
          "postedWithinDays": {
            "title": "🕒 Posted within (days)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep jobs first published in the last N days. 0 = any time.",
            "default": 0
          },
          "requireSalary": {
            "title": "💰 Only jobs with a published salary",
            "type": "boolean",
            "description": "Keep only jobs where the employer publishes a pay range.",
            "default": false
          },
          "maxResults": {
            "title": "🔢 Max results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of jobs to return. 0 = unlimited (every matching job).",
            "default": 50
          },
          "maxJobsPerCompany": {
            "title": "🏷️ Max jobs per company",
            "minimum": 0,
            "type": "integer",
            "description": "Cap the jobs returned per company. 0 = no cap for the companies you list, and 10 per company when searching the directory so results span many employers.",
            "default": 0
          },
          "ignoreUrlFailures": {
            "title": "⏭️ Skip companies that can't be found",
            "type": "boolean",
            "description": "Skip a careers page with no Greenhouse board instead of failing the run. Unknown slugs and names are always skipped with a warning.",
            "default": true
          },
          "includeDetails": {
            "title": "🔬 Include full job details",
            "type": "boolean",
            "description": "Add the job description, contacts, qualifications, responsibilities, benefits and skills. Turn off for the fastest runs (departments and offices may then be missing on some boards).",
            "default": true
          },
          "includeApplicationQuestions": {
            "title": "📝 Include application questions",
            "type": "boolean",
            "description": "Add the questions each job's application form asks (label, required, answer type). Available on Greenhouse and Recruitee boards.",
            "default": false
          },
          "descriptionFormat": {
            "title": "📝 Description format",
            "enum": [
              "all",
              "text",
              "html",
              "markdown"
            ],
            "type": "string",
            "description": "Which representation(s) of the job description to include.",
            "default": "all"
          },
          "descriptionMaxLength": {
            "title": "✂️ Max description length",
            "minimum": 0,
            "type": "integer",
            "description": "Trim each description to this many characters. 0 = full length.",
            "default": 0
          },
          "requireContact": {
            "title": "📇 Require contact details",
            "enum": [
              "off",
              "email",
              "phone",
              "either",
              "both"
            ],
            "type": "string",
            "description": "Keep only jobs whose description includes a contact. off = keep everything; email / phone = require that channel; either = at least one; both = email and phone.",
            "default": "off"
          },
          "compact": {
            "title": "📦 Compact records",
            "type": "boolean",
            "description": "Emit only the core fields. Ideal for AI agents and MCP clients.",
            "default": false
          },
          "excludeEmptyFields": {
            "title": "🧹 Drop empty fields",
            "type": "boolean",
            "description": "Remove null, empty-string and empty-array fields from each record.",
            "default": false
          },
          "incrementalMode": {
            "title": "♻️ Incremental mode",
            "type": "boolean",
            "description": "Track state between runs and tag every job with a changeType (NEW / UPDATED / UNCHANGED / REAPPEARED / EXPIRED). Unchanged jobs are skipped and cost nothing.",
            "default": false
          },
          "stateKey": {
            "title": "🗝️ State key",
            "type": "string",
            "description": "Stable name for the tracked search. Leave empty to derive one automatically from your settings."
          },
          "emitUnchanged": {
            "title": "🔁 Include unchanged jobs",
            "type": "boolean",
            "description": "Also emit jobs that have not changed since the previous run.",
            "default": false
          },
          "emitExpired": {
            "title": "🗑️ Include closed jobs",
            "type": "boolean",
            "description": "Emit a record for each job that was open last run and is gone now. Needs a run that reads every matching job: Max results 0, and in a directory search a Max jobs per company high enough not to cut a board short.",
            "default": false
          },
          "skipReposts": {
            "title": "♻️ Skip reposts",
            "type": "boolean",
            "description": "Drop a new job that repeats one already tracked (same title, company and place under a new ID).",
            "default": false
          },
          "telegramToken": {
            "title": "💬 Telegram bot token",
            "type": "string",
            "description": "Bot token from @BotFather."
          },
          "telegramChatId": {
            "title": "🆔 Telegram chat ID",
            "type": "string",
            "description": "Chat or channel ID, e.g. \"-100123456789\" or \"@yourchannel\"."
          },
          "slackWebhookUrl": {
            "title": "💼 Slack webhook URL",
            "type": "string",
            "description": "Slack incoming-webhook URL."
          },
          "discordWebhookUrl": {
            "title": "🎮 Discord webhook URL",
            "type": "string",
            "description": "Discord incoming-webhook URL."
          },
          "whatsappPhoneNumberId": {
            "title": "📱 WhatsApp phone number ID",
            "type": "string",
            "description": "WhatsApp Cloud API phone number ID (Meta Business)."
          },
          "whatsappAccessToken": {
            "title": "🔐 WhatsApp access token",
            "type": "string",
            "description": "WhatsApp Cloud API access token."
          },
          "whatsappTo": {
            "title": "📞 WhatsApp recipient",
            "type": "string",
            "description": "Recipient phone number in international format, e.g. 447700900123."
          },
          "webhookUrl": {
            "title": "🪝 Webhook URL",
            "type": "string",
            "description": "Any HTTPS endpoint. Receives a JSON POST with the total count and the first jobs (up to Jobs per notification) — works with n8n, Make and Zapier."
          },
          "webhookHeaders": {
            "title": "🧾 Webhook headers",
            "type": "object",
            "description": "Extra headers for the webhook request, e.g. {\"Authorization\": \"Bearer xyz\"}."
          },
          "notificationLimit": {
            "title": "🔢 Jobs per notification",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many jobs to include in each notification message.",
            "default": 5
          },
          "notifyOnlyChanges": {
            "title": "🔕 Notify only about changes",
            "type": "boolean",
            "description": "When unchanged jobs are emitted too, keep them out of notifications: only new, updated, reappeared and closed jobs are sent.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy configuration",
            "type": "object",
            "description": "Optional. Not needed — Greenhouse job boards are read directly. Turn on only if your runs are refused.",
            "default": {
              "useApifyProxy": false
            }
          },
          "maxConcurrency": {
            "title": "⚡ Boards read in parallel",
            "minimum": 1,
            "maximum": 24,
            "type": "integer",
            "description": "How many company boards to read at once.",
            "default": 20
          },
          "maxRequestRetries": {
            "title": "🔄 Max request retries",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "How many times to retry a failed request before giving up on it.",
            "default": 3
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}