{
  "openapi": "3.0.1",
  "info": {
    "title": "Hiring Signal Check & ATS Detector — Workday, Greenhouse, Lever",
    "description": "Hiring signals and ATS detection from company domains: is the company hiring, on Greenhouse, Lever, Ashby or Workday, and for what. Open role count, departments, seniority split and the technologies its job ads name. Each match is checked against the board's own links, website or hiring entity.",
    "version": "0.1",
    "x-build-id": "2Rjeu8qbrJpbMWttE"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/brenton8907~hiring-signal-check/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-brenton8907-hiring-signal-check",
        "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/brenton8907~hiring-signal-check/runs": {
      "post": {
        "operationId": "runs-sync-brenton8907-hiring-signal-check",
        "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/brenton8907~hiring-signal-check/run-sync": {
      "post": {
        "operationId": "run-sync-brenton8907-hiring-signal-check",
        "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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "hiring-check",
              "job-dump"
            ],
            "type": "string",
            "description": "hiring-check: one enrichment row per domain with counts and signals. job-dump: every open role on the company's board.",
            "default": "hiring-check"
          },
          "domains": {
            "title": "Company domains",
            "type": "array",
            "description": "One company domain per line. The board slug is resolved from the domain and then corroborated against the board's own job links, so a domain is answerable and a company name is not.",
            "items": {
              "type": "string"
            }
          },
          "platforms": {
            "title": "Platforms to check",
            "type": "array",
            "description": "Narrowing this makes a no-match cheaper and faster, at the cost of missing boards on the platforms you drop. Workday is where most large employers post (Boeing, NVIDIA, Salesforce, Target); it is checked after the other three and costs the most requests on a no-match.",
            "items": {
              "type": "string",
              "enum": [
                "greenhouse",
                "lever",
                "ashby",
                "workday"
              ],
              "enumTitles": [
                "Greenhouse",
                "Lever",
                "Ashby",
                "Workday"
              ]
            },
            "default": [
              "greenhouse",
              "lever",
              "ashby",
              "workday"
            ]
          },
          "extraSlugs": {
            "title": "Extra board slugs to try first",
            "type": "array",
            "description": "If you already know a company's board name, put it here and it is tried before the guesses. The most reliable way to fix a false 'no board found'. For Workday, paste the board URL (https://acme.wd5.myworkdayjobs.com/External).",
            "items": {
              "type": "string"
            }
          },
          "maxSlugCandidates": {
            "title": "Max slug guesses per domain",
            "minimum": 1,
            "maximum": 12,
            "type": "integer",
            "description": "Nothing in a domain says what a company called its board, so the actor guesses: the brand, then common qualifiers stripped (ashbyhq.com -> ashby) and added (scale.com -> scaleai, box.com -> boxinc). Six covers the variants that produced real hits. Lowering it makes a no-match cheaper and risks reporting 'no board' for a company that is hiring; raising it costs more requests on negatives only.",
            "default": 6
          },
          "maxRequestsPerDomain": {
            "title": "Hard request ceiling per domain",
            "minimum": 3,
            "maximum": 200,
            "type": "integer",
            "description": "Absolute cap, whatever the other limits say. Ruling a domain out everywhere takes 18 requests on Greenhouse, Lever and Ashby plus up to 21 for Workday's discovery, and a Workday board then reads up to 20 more (title pages and posting details), so 64 leaves headroom. A domain stopped by this ceiling is reported with a hint saying the answer is provisional rather than as a clean 'no board'.",
            "default": 64
          },
          "includeTechStack": {
            "title": "Extract technologies from job descriptions",
            "type": "boolean",
            "description": "Scans postings for named technologies. Requires the fuller Greenhouse payload (5 MB on a 700-role board), so turning it off makes large boards noticeably lighter.",
            "default": true
          },
          "techSampleSize": {
            "title": "Postings to scan for technologies",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Reading all 721 of Stripe's postings to discover 'Python' is waste; the row reports how many were sampled.",
            "default": 40
          },
          "minTechMentions": {
            "title": "Minimum postings naming a technology",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Raise to 2 or 3 to drop technologies named in a single passing reference.",
            "default": 1
          },
          "maxRolesPerCompany": {
            "title": "Max roles per company (job-dump mode)",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Each role is one row and one job-listing charge ($0.001), so this caps the cost per company: at most $0.20 at the default. Only job-dump mode uses it.",
            "default": 200
          },
          "includeUnverifiedBoards": {
            "title": "List roles from uncorroborated boards (job-dump mode)",
            "type": "boolean",
            "description": "Off by default: a board tied to the domain by nothing but its slug (google.com finds Google Operations Center's Workday board, whose postings are all hired by another entity) returns one free row saying why, and its roles are not listed or charged. Turn on to list them anyway, each row marked match_confidence slug_only. A board you name in extraSlugs is always listed.",
            "default": false
          },
          "requestDelaySeconds": {
            "title": "Delay between requests",
            "minimum": 0,
            "maximum": 10,
            "type": "number",
            "description": "These are public APIs that did not rate-limit at this actor's pace, so the default is no delay. Raise it if you see HTTP 429.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Not required: all four platforms are public and unauthenticated, with no bot protection observed. Provided for accounts that must route egress through a proxy.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}