{
  "openapi": "3.0.1",
  "info": {
    "title": "Find Companies Using Greenhouse, Lever, Ashby & Workable",
    "description": "Find companies using Greenhouse, Ashby, Workable, Recruitee or Lever (EU) and see who's hiring right now — live open-role counts across ~1,990 companies. Filter by keyword. $2 per 1,000 companies.",
    "version": "0.1",
    "x-build-id": "3W74GIJVg1vyy3yXy"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/wickfeed~ats-company-discovery/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-wickfeed-ats-company-discovery",
        "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/wickfeed~ats-company-discovery/runs": {
      "post": {
        "operationId": "runs-sync-wickfeed-ats-company-discovery",
        "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/wickfeed~ats-company-discovery/run-sync": {
      "post": {
        "operationId": "run-sync-wickfeed-ats-company-discovery",
        "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": {
          "ats": {
            "title": "Hiring systems (ATS)",
            "type": "array",
            "description": "Which applicant-tracking systems to search for companies on. Pick one or more, or choose \"All sources\". \"EU-Lever\" covers Lever boards hosted on the European endpoint (jobs.eu.lever.co). Note: US Lever (jobs.lever.co) has no bundled boards — it is robots-blocked in the public web archive we build the list from — so it isn't offered here; use EU-Lever for Lever coverage.",
            "items": {
              "type": "string",
              "enum": [
                "greenhouse",
                "lever-eu",
                "ashby",
                "workable",
                "recruitee",
                "all"
              ],
              "enumTitles": [
                "Greenhouse",
                "Lever (EU — jobs.eu.lever.co)",
                "Ashby",
                "Workable",
                "Recruitee",
                "All sources"
              ]
            }
          },
          "minJobs": {
            "title": "Minimum open jobs",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Only return companies with at least this many open jobs posted right now. Default 5 — both the form and a bare API call with no input start here. Lower it to 1 to include any company with at least one open posting; raise it to focus on companies with more open jobs.",
            "default": 5
          },
          "keywords": {
            "title": "Job-title keywords",
            "type": "array",
            "description": "Optional. Keep only companies that have at least one open job whose TITLE contains any of these words (case-insensitive) — e.g. [\"engineer\"] finds companies hiring engineers. Requires \"Re-verify live\" ON (titles are read during verification): if you set keywords with Re-verify live OFF, the run stops with a plain-English message instead of billing you for an unfiltered snapshot list. Leave empty for no keyword filtering.",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Boards to check (top N by stored job count)",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "How many boards this run checks — it does NOT scan all ~1,990 bundled boards. It takes the top N boards by their STORED (build-date) job count and checks only those live, so this is a top-N-boards control, not a returned-matches limit. A keyword search therefore searches only these top N boards: a zero result means \"none of the top N matched\", not \"no company anywhere matches\" — raise this number to search deeper. It is also your cost ceiling, since each RETURNED company is $0.002: 25 ≈ $0.05, 200 ≈ $0.40, 1,000 ≈ $2, and the 5,000 maximum ≈ $10. The run returns the subset of those boards that is live and matches your filters, so keyword searches, dead boards, and minimum-job filters can produce fewer results than N. Prefilled at 25 for a fast, cheap first run; clearing the box falls back to 25, not a bigger number.",
            "default": 25
          },
          "reverify": {
            "title": "Re-verify live (recommended)",
            "type": "boolean",
            "description": "ON (default): re-check each company against the vendor's public API right now, returning fresh live status, current open-job count, and sample job titles. OFF: return the bundled list as-is from our stored snapshot — instant and free of network calls, but the counts are the build-date snapshot, and each row reports live: null and verifiedAt: null (not re-checked this run) with snapshotAt set to the build date. There are no sample titles and no keyword filtering in this mode.",
            "default": true
          },
          "discoverFresh": {
            "title": "Discover new boards (slower)",
            "type": "boolean",
            "description": "Experimental. OFF (default): use the bundled verified list only. ON: also search the public web archive (Common Crawl) at runtime for company boards NOT already in the bundle, then verify them live. This finds newer companies but is noticeably slower, is capped, and falls back to the bundle on any failure. Requires \"Re-verify live\" on.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}