{
  "openapi": "3.0.1",
  "info": {
    "title": "Company Jobs API: Greenhouse, Lever, Ashby & More",
    "description": "Live job postings from company boards on Greenhouse, Lever, Ashby, Workable, Recruitee and Personio. One clean schema with salaries, keyword filters and a new-or-changed jobs monitor.",
    "version": "1.0",
    "x-build-id": "y9qJF21SZr8iQvKLg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/openfeeds~greenhouse-lever-ashby-jobs-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-openfeeds-greenhouse-lever-ashby-jobs-api",
        "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/openfeeds~greenhouse-lever-ashby-jobs-api/runs": {
      "post": {
        "operationId": "runs-sync-openfeeds-greenhouse-lever-ashby-jobs-api",
        "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/openfeeds~greenhouse-lever-ashby-jobs-api/run-sync": {
      "post": {
        "operationId": "run-sync-openfeeds-greenhouse-lever-ashby-jobs-api",
        "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",
            "minItems": 1,
            "maxItems": 1000,
            "type": "array",
            "description": "Companies to fetch jobs from. Each line can be a job-board URL (boards.greenhouse.io/…, jobs.lever.co/…, jobs.ashbyhq.com/…, apply.workable.com/…, ….recruitee.com, ….jobs.personio.de), a careers-page URL, a domain (stripe.com), a company name (Stripe) or `ats:slug` (greenhouse:stripe). Board URLs are fastest and most reliable. A name is used only when a board with open jobs publishes a matching company name; a domain uses the board its site links to (checked against the site's name when the site links several companies' boards). Entries that point to the same board are returned and charged once.",
            "items": {
              "type": "string",
              "minLength": 2,
              "maxLength": 300
            }
          },
          "atsToTry": {
            "title": "Job-board systems to check for names and domains",
            "uniqueItems": true,
            "type": "array",
            "description": "Which job-board systems to check when you enter a company name or domain. Board URLs ignore this. Fewer systems means faster runs.",
            "items": {
              "type": "string",
              "enum": [
                "greenhouse",
                "lever",
                "ashby",
                "workable",
                "recruitee",
                "personio"
              ],
              "enumTitles": [
                "Greenhouse",
                "Lever",
                "Ashby",
                "Workable",
                "Recruitee",
                "Personio"
              ]
            },
            "default": [
              "greenhouse",
              "lever",
              "ashby",
              "workable",
              "recruitee",
              "personio"
            ]
          },
          "keywords": {
            "title": "Keywords in job title",
            "maxItems": 100,
            "type": "array",
            "description": "Only return jobs whose title contains at least one of these words (case and accents ignored). Leave empty for all jobs. You only pay for jobs that pass the filters.",
            "items": {
              "type": "string",
              "maxLength": 100
            },
            "default": []
          },
          "searchInDescription": {
            "title": "Also search keywords in the description",
            "type": "boolean",
            "description": "Also match keywords in the job description, not only the title.",
            "default": false
          },
          "excludeKeywords": {
            "title": "Exclude jobs with these words in the title",
            "maxItems": 100,
            "type": "array",
            "description": "Skip jobs whose title contains any of these words, e.g. \"intern\" or \"senior\".",
            "items": {
              "type": "string",
              "maxLength": 100
            },
            "default": []
          },
          "locations": {
            "title": "Locations",
            "maxItems": 100,
            "type": "array",
            "description": "Only return jobs whose location, country name or ISO country code contains one of these, e.g. \"Berlin\", \"Germany\", \"DE\", \"Remote\". Two-letter codes need a country on the job; Personio boards list cities only, so use city names for them.",
            "items": {
              "type": "string",
              "maxLength": 100
            },
            "default": []
          },
          "workplaceTypes": {
            "title": "Workplace types",
            "uniqueItems": true,
            "type": "array",
            "description": "Only return jobs with one of these workplace types. Jobs whose board does not state a workplace type are excluded when this filter is set.",
            "items": {
              "type": "string",
              "enum": [
                "remote",
                "hybrid",
                "onsite"
              ],
              "enumTitles": [
                "Remote",
                "Hybrid",
                "On-site"
              ]
            },
            "default": []
          },
          "departments": {
            "title": "Departments or teams",
            "maxItems": 100,
            "type": "array",
            "description": "Only return jobs whose department or team contains one of these, e.g. \"Engineering\", \"Sales\".",
            "items": {
              "type": "string",
              "maxLength": 100
            },
            "default": []
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Only return jobs published (or, if no publish date exists, updated) in the last N days. 0 = no date filter.",
            "default": 0
          },
          "maxJobsPerCompany": {
            "title": "Max jobs per company",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum jobs returned per company after filters (newest first). 0 = no limit.",
            "default": 0
          },
          "maxJobs": {
            "title": "Max jobs in total",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum jobs returned in total for the run. 0 = no limit. The run also stops at your spending limit.",
            "default": 0
          },
          "descriptionFormat": {
            "title": "Description format",
            "enum": [
              "markdown",
              "html",
              "both",
              "none"
            ],
            "type": "string",
            "description": "Format of the job description. \"none\" keeps the output small, for example for AI agents and alerts.",
            "default": "markdown"
          },
          "redactContactDetails": {
            "title": "Remove contact details from descriptions",
            "type": "boolean",
            "description": "Remove email addresses, phone numbers, personal LinkedIn profile links and \"contact person: <name>\" lines from descriptions. Recommended under GDPR.",
            "default": true
          },
          "personioLanguage": {
            "title": "Personio language",
            "enum": [
              "default",
              "en",
              "de",
              "fr",
              "es",
              "it",
              "nl"
            ],
            "type": "string",
            "description": "Language of Personio job ads. With \"Company default\" you get every description; choosing a language drops descriptions the company did not write in it.",
            "default": "default"
          },
          "onlyNewOrChanged": {
            "title": "Only new or changed jobs (monitoring mode)",
            "type": "boolean",
            "description": "Return only jobs that are new or changed since the previous run with the same state store, plus jobs that closed. The first run returns all current jobs as \"new\". You only pay for new and changed jobs; closed notices are free.",
            "default": false
          },
          "includeClosedJobs": {
            "title": "Include closed jobs",
            "type": "boolean",
            "description": "In monitoring mode, also output jobs that disappeared from the board (changeType \"closed\", free).",
            "default": true
          },
          "stateStoreName": {
            "title": "State store name",
            "pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$",
            "type": "string",
            "description": "Name of the key-value store that remembers jobs between runs. Use a different name for each separate monitor (e.g. \"sales-accounts\", \"client-a\").",
            "default": "company-jobs-state"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Not needed: the job-board APIs are public. Only change this if your runs report BLOCKED.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}