{
  "openapi": "3.0.1",
  "info": {
    "title": "ATS Jobs Search: Greenhouse, Lever & Ashby Jobs API",
    "description": "Search 328,000+ open jobs from 11,000+ companies on Greenhouse, Lever and Ashby in one run. Filter by keyword, location, remote, salary, seniority and posting date. Flat rows with annual salary, days open and company hiring velocity. Lead-list mode and daily new-jobs monitor.",
    "version": "0.1",
    "x-build-id": "Yh9fd6grQa1anA5vW"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/redomic~ats-jobs-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-redomic-ats-jobs-search",
        "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/redomic~ats-jobs-search/runs": {
      "post": {
        "operationId": "runs-sync-redomic-ats-jobs-search",
        "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/redomic~ats-jobs-search/run-sync": {
      "post": {
        "operationId": "run-sync-redomic-ats-jobs-search",
        "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": "Return jobs whose title contains ANY of these words (whole words, case-insensitive). Empty = every job.",
            "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, manager.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "keywordsInDepartment": {
            "title": "Also match keywords in department",
            "type": "boolean",
            "description": "Match keywords against the department/team as well as the title (e.g. 'Sales' finds every role in a Sales team).",
            "default": false
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Keep jobs whose location contains ANY of these (city, country or region text, e.g. Berlin, United States, London, EMEA).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeLocations": {
            "title": "Exclude locations",
            "type": "array",
            "description": "Drop jobs whose location contains any of these, e.g. India, Philippines.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote only",
            "type": "boolean",
            "description": "Only remote jobs (workplace type Remote, or 'remote' in the location).",
            "default": false
          },
          "workplaceTypes": {
            "title": "Workplace types",
            "type": "array",
            "description": "Remote, Hybrid or Onsite. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "Remote",
                "Hybrid",
                "Onsite"
              ]
            },
            "default": []
          },
          "employmentTypes": {
            "title": "Employment types",
            "type": "array",
            "description": "Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "Full-time",
                "Part-time",
                "Contract",
                "Internship",
                "Temporary"
              ]
            },
            "default": []
          },
          "roleFamilies": {
            "title": "Role families",
            "type": "array",
            "description": "Job function. 'Engineering' covers every engineering family. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "Engineering",
                "Engineering - Backend/Fullstack",
                "Engineering - ML/AI",
                "Engineering - Infrastructure",
                "Engineering - Data",
                "Engineering - Security",
                "Engineering - Mobile",
                "Engineering - Management",
                "Data/Analytics",
                "Product Management",
                "Design",
                "Sales",
                "Marketing",
                "Customer Success/Support",
                "Operations",
                "Finance/Legal",
                "People/Recruiting",
                "Healthcare/Clinical",
                "Consulting/Advisory",
                "Skilled Trades/Field",
                "Other"
              ]
            },
            "default": []
          },
          "seniority": {
            "title": "Seniority",
            "type": "array",
            "description": "Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "Intern",
                "Junior",
                "Mid",
                "Senior",
                "Lead/Principal"
              ]
            },
            "default": []
          },
          "ats": {
            "title": "Career site platforms",
            "type": "array",
            "description": "Limit to Greenhouse, Lever or Ashby companies. Empty = all three.",
            "items": {
              "type": "string",
              "enum": [
                "greenhouse",
                "lever",
                "ashby"
              ]
            },
            "default": []
          },
          "companies": {
            "title": "Companies",
            "type": "array",
            "description": "Limit to these companies: board token (as in boards.greenhouse.io/<token>) or company name. Empty = all 11,000+.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeCompanies": {
            "title": "Exclude companies",
            "type": "array",
            "description": "Drop these companies (board token or name), e.g. job aggregators such as jobgether.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "includeAggregators": {
            "title": "Include aggregator boards",
            "type": "boolean",
            "description": "Aggregator and staffing boards (for example jobgether) re-post other companies' jobs by the thousand. They are left out by default so results are employers' own openings; turn this on to include them. The list is recomputed daily: boards with over 1,000 open jobs, most of them new this week.",
            "default": false
          },
          "includeGeneralApplications": {
            "title": "Include talent pools and open applications",
            "type": "boolean",
            "description": "Talent pools, 'general application' and 'future opportunities' postings collect CVs rather than fill a role. They are left out by default; turn this on to include them (each row then carries generalApplication: true).",
            "default": false
          },
          "includeClosed": {
            "title": "Include recently closed jobs",
            "type": "boolean",
            "description": "Also return jobs that have closed since tracking began, with closedOn (the day the job disappeared) and daysOpen (firstSeen to closedOn). Open jobs carry closedOn: null. Use this for time-to-fill and hiring-history work; combine with Closed within (days) to limit to recent closures.",
            "default": false
          },
          "includeDescription": {
            "title": "Include job descriptions (live fetch)",
            "type": "boolean",
            "description": "For returned job rows only, live-fetch the full posting text from the company's public ATS board (one board call per company) and add descriptionText (plain text, up to 20000 chars), descriptionSnippet (first 280 chars) and descriptionStatus (ok or unavailable when the board cannot be reached). Off by default: no board calls are made. Ignored for countOnly and company lead lists.",
            "default": false
          },
          "closedWithinDays": {
            "title": "Closed within (days)",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Only recently closed jobs: closedOn within the last N days. 0 = any close date. Setting this also includes closed jobs.",
            "default": 0
          },
          "hasSalary": {
            "title": "Only jobs with a salary",
            "type": "boolean",
            "description": "Only jobs that publish a pay range.",
            "default": false
          },
          "minSalary": {
            "title": "Minimum annual salary",
            "minimum": 0,
            "type": "integer",
            "description": "Keep jobs whose top of range, annualised (hourly x 2080, monthly x 12), is at least this. 0 = no minimum. Combine with salary currency.",
            "default": 0
          },
          "salaryCurrency": {
            "title": "Salary currency",
            "type": "string",
            "description": "ISO currency code to keep, e.g. USD, EUR, GBP. Empty = any currency.",
            "default": ""
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Only jobs the company posted in the last N days. 0 = any date.",
            "default": 0
          },
          "firstSeenWithinDays": {
            "title": "First seen within (days)",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Only jobs that first appeared in our daily crawl in the last N days: genuinely new openings, even when the posted date is old or missing. 0 = any.",
            "default": 0
          },
          "output": {
            "title": "Output",
            "enum": [
              "jobs",
              "companies"
            ],
            "type": "string",
            "description": "'companies' rolls the matching jobs up into one row per company: matching roles, new this week, pay range, top departments. Built for sales and recruiting lead lists.",
            "default": "jobs"
          },
          "groupSameTitle": {
            "title": "One row per role (merge the same title across locations)",
            "type": "boolean",
            "description": "When a company posts the same title in many cities or countries, return it once with locationCount and otherLocations, and bill it once.",
            "default": true
          },
          "onlyNewSinceLastRun": {
            "title": "Only new jobs since the last run (monitor)",
            "type": "boolean",
            "description": "Schedule this daily: the first run saves a baseline, every later run returns only matching jobs that were not there last time. A quiet day returns just the free summary row. Jobs output only.",
            "default": false
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum rows returned (and billed).",
            "default": 100
          },
          "countOnly": {
            "title": "Count only (free preview)",
            "type": "boolean",
            "description": "Return a free summary with matched, scanned and dataAsOf counts and 0 dataset items. No rows are returned or billed.",
            "default": false
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "newest",
              "salary"
            ],
            "type": "string",
            "description": "Order of job rows.",
            "default": "newest"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}