{
  "openapi": "3.0.1",
  "info": {
    "title": "Greenhouse, Lever & Ashby Jobs Scraper + Salary",
    "description": "Scrape open jobs from Greenhouse, Lever, Ashby, Workable, Recruitee and Teamtailor with salary normalised to min, max, currency and period. $2 per 1,000 jobs. Paste board URLs, domains or company names: the system is detected for you, and unsupported companies are free.",
    "version": "1.0",
    "x-build-id": "AcTeDQ0k5zxabt7AV"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/meridianlabs~greenhouse-lever-ashby-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-meridianlabs-greenhouse-lever-ashby-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/meridianlabs~greenhouse-lever-ashby-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-meridianlabs-greenhouse-lever-ashby-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/meridianlabs~greenhouse-lever-ashby-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-meridianlabs-greenhouse-lever-ashby-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",
        "required": [
          "companies"
        ],
        "properties": {
          "companies": {
            "title": "Companies",
            "type": "array",
            "description": "One per line: a job-board URL (https://jobs.lever.co/company), a careers page URL, a domain (company.com) or a company name. The hiring system is detected automatically. Every company gets a free status row saying what was found; companies on unsupported systems (Workday, iCIMS, ...) are reported, never charged.",
            "items": {
              "type": "string"
            }
          },
          "systems": {
            "title": "Only these hiring systems (optional)",
            "type": "array",
            "description": "Leave empty for all six. Companies on other systems get a free 'not_supported' status row.",
            "items": {
              "type": "string",
              "enum": [
                "greenhouse",
                "lever",
                "ashby",
                "workable",
                "recruitee",
                "teamtailor"
              ],
              "enumTitles": [
                "Greenhouse",
                "Lever",
                "Ashby",
                "Workable",
                "Recruitee",
                "Teamtailor"
              ]
            }
          },
          "titleKeywords": {
            "title": "Job title contains (any of)",
            "type": "array",
            "description": "Keep only jobs whose title contains one of these words or phrases (whole words, case-insensitive), e.g. engineer, product manager. Filters apply after the board is fetched; only saved jobs are charged.",
            "items": {
              "type": "string"
            }
          },
          "excludeTitleKeywords": {
            "title": "Job title does not contain",
            "type": "array",
            "description": "Drop jobs whose title contains any of these, e.g. intern, senior.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations (any of)",
            "type": "array",
            "description": "Keep jobs whose location, city or region contains one of these, or whose country code matches a 2-letter code, e.g. US, Germany, London, Remote.",
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Fully remote jobs only",
            "type": "boolean",
            "description": "Keep only jobs the hiring system marks (or the location states) as fully remote. Hybrid jobs are not remote.",
            "default": false
          },
          "postedWithinDays": {
            "title": "Posted within the last N days",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep only jobs first published in the last N days. Jobs without a publish date are dropped when this is set."
          },
          "onlyWithSalary": {
            "title": "Only jobs that show a salary",
            "type": "boolean",
            "description": "Keep only jobs with a salary (from the hiring system's pay field or the ad text).",
            "default": false
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "all",
              "newSinceLastRun"
            ],
            "type": "string",
            "description": "Monitor mode remembers which jobs it delivered (stable IDs in a named key-value store in your account) and saves, and charges, only jobs that are new or changed since the last run, plus free 'closed' notices for jobs that disappeared. The first monitor run sees every job as new. Schedule it daily for a hiring-signal feed.",
            "default": "all"
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Only used in monitor mode. Runs with the same name share one memory of delivered jobs; use a different name for each separate watch list (letters, digits, hyphens).",
            "default": "default"
          },
          "includeDescription": {
            "title": "Job description",
            "enum": [
              "text",
              "html",
              "none"
            ],
            "type": "string",
            "description": "Personal email addresses and phone numbers are removed from descriptions either way. 'None' gives structured fields only (title, location, salary...). Same price.",
            "default": "text"
          },
          "maxJobsPerCompany": {
            "title": "Max jobs per company",
            "minimum": 1,
            "type": "integer",
            "description": "Save at most this many jobs per company (after filters). Leave empty for all. A simple way to cap cost."
          },
          "includeCompanyRows": {
            "title": "Put company status rows in the dataset",
            "type": "boolean",
            "description": "On: one free row per company (record_type 'company') alongside the job rows. Off: the dataset holds job rows only; the status rows are still saved in the run's key-value store as COMPANIES.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Companies in parallel",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many companies to work on at once. Requests to the same hiring system are always spaced out politely (robots.txt and crawl delays are obeyed), so more parallelism mostly helps mixed lists.",
            "default": 5
          },
          "failOnErrors": {
            "title": "Fail the run if any company fails",
            "type": "boolean",
            "description": "Useful for schedules: the run is marked failed (so Apify can alert you) if a board could not be fetched, or a board URL you gave no longer exists. Failed companies are never charged.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}