{
  "openapi": "3.0.1",
  "info": {
    "title": "Job Postings API: Greenhouse, Lever, Ashby, SmartRecruiters",
    "description": "One feed of open jobs from company career pages on Greenhouse, Lever, Ashby and SmartRecruiters. Give company names or careers-page URLs, filter by keyword, location, remote, department and date, and get only new jobs each run. Salary where shown. Free hiring-signal row per company. Pay per job.",
    "version": "0.1",
    "x-build-id": "ugBDoy6PscIjV7DiQ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidfetch~ats-jobs-feed/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidfetch-ats-jobs-feed",
        "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/solidfetch~ats-jobs-feed/runs": {
      "post": {
        "operationId": "runs-sync-solidfetch-ats-jobs-feed",
        "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/solidfetch~ats-jobs-feed/run-sync": {
      "post": {
        "operationId": "run-sync-solidfetch-ats-jobs-feed",
        "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 or careers pages",
            "type": "array",
            "description": "The companies to read. Each entry is a careers-page address on Greenhouse, Lever, Ashby or SmartRecruiters (boards.greenhouse.io/stripe, jobs.lever.co/spotify, jobs.ashbyhq.com/ramp, careers.smartrecruiters.com/Canva), or a board id with its vendor (greenhouse:stripe, lever:spotify, ashby:ramp, smartrecruiters:Canva). A bare id such as stripe is looked up on each vendor in turn. Up to 2,000 per run. An entry that is not a job board, or not found, gets a free row.",
            "items": {
              "type": "string"
            }
          },
          "ats": {
            "title": "Vendor for bare ids",
            "enum": [
              "auto",
              "greenhouse",
              "lever",
              "ashby",
              "smartrecruiters"
            ],
            "type": "string",
            "description": "Which vendor to read for entries that are only a name, without an address or a vendor prefix. Entries with an address or a prefix already say it.",
            "default": "auto"
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Keep jobs whose title has any of these words, without regard to case or accents. A keyword matches where it starts a word: engineer finds Engineering Manager, go does not find Django. Empty keeps every job.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop jobs whose title has any of these words, for example intern or staff.",
            "items": {
              "type": "string"
            }
          },
          "keywordScope": {
            "title": "Where keywords are searched",
            "enum": [
              "title",
              "titleAndDescription"
            ],
            "type": "string",
            "description": "Searching descriptions finds more but is noisier. For SmartRecruiters it costs one extra request per job that passes the other filters.",
            "default": "title"
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Keep jobs with any of these in one of their locations or in the country, for example Berlin, Poland, United States. Locations are free text as the company wrote them, so list the variants you care about (NYC, New York).",
            "items": {
              "type": "string"
            }
          },
          "departments": {
            "title": "Departments or teams",
            "type": "array",
            "description": "Keep jobs whose department or team contains any of these, for example Engineering, Sales.",
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Keep jobs the company marks as remote, or with a remote location. Hybrid jobs that also list a remote location count.",
            "default": false
          },
          "postedSince": {
            "title": "Posted since",
            "type": "string",
            "description": "Keep jobs posted on this date or later: a date (2026-10-15) or a period back from today (7 days, 2 weeks, 1 month). The posting date is the one the vendor shows (first published, or created). Jobs with no posting date are dropped."
          },
          "onlyNew": {
            "title": "Only new jobs since the last run",
            "type": "boolean",
            "description": "Monitor mode. The actor remembers each company's open jobs in a named key-value store on your account and returns only the jobs it did not know at the end of the last run. The first run for a company records the starting point and returns no jobs (see the next option). Schedule the run daily or weekly.",
            "default": false
          },
          "emitOnFirstRun": {
            "title": "Return all jobs on the first monitor run",
            "type": "boolean",
            "description": "With the monitor on, also return every job of a company the first time the actor sees it. Off by default so that adding 200 companies does not return and charge their whole job lists at once.",
            "default": false
          },
          "includeDescription": {
            "title": "Job description",
            "enum": [
              "text",
              "html",
              "none"
            ],
            "type": "string",
            "description": "E-mail addresses in descriptions are replaced with [email removed]. For SmartRecruiters the description costs one extra request per saved job.",
            "default": "text"
          },
          "maxItems": {
            "title": "Max jobs",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stop after this many jobs in the whole run. You pay per job saved, and the run stops before it would save a job your cost limit cannot pay for. Newest jobs of each company come first.",
            "default": 1000
          },
          "maxJobsPerCompany": {
            "title": "Max jobs per company",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Save at most this many jobs (the newest) from each company. In monitor mode the jobs left out stay unseen and are returned by the next run."
          },
          "stateStoreName": {
            "title": "Monitor store",
            "type": "string",
            "description": "Name of the key-value store on your account where the monitor keeps what it has seen. Use a different name to keep a separate watch, for example per client.",
            "default": "ats-jobs-feed-state"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}