{
  "openapi": "3.0.1",
  "info": {
    "title": "Company Hiring Signals: Open Roles, New Jobs & Team Growth",
    "description": "Turn a list of companies into hiring signals: open and new roles, momentum, department and seniority mix, remote share, locations, salary ranges, keyword matches and changes since the last run. Auto-detects Greenhouse, Lever, Ashby, Workable, Recruitee and SmartRecruiters boards. No login.",
    "version": "1.1",
    "x-build-id": "IQHYUmbW6YY53h0fH"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/metallic_pastry~company-hiring-signals/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-metallic_pastry-company-hiring-signals",
        "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/metallic_pastry~company-hiring-signals/runs": {
      "post": {
        "operationId": "runs-sync-metallic_pastry-company-hiring-signals",
        "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/metallic_pastry~company-hiring-signals/run-sync": {
      "post": {
        "operationId": "run-sync-metallic_pastry-company-hiring-signals",
        "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",
            "type": "array",
            "description": "One company per line: a company website or domain (stripe.com), a company name (Hugging Face), a job board URL (https://jobs.lever.co/spotify) or ats:board (greenhouse:stripe, lever:eu:acme, smartrecruiters:BoschGroup, teamtailor:polestar, personio:tado). Websites are scanned for their job board; names are matched to public boards. Duplicates are removed. Companies without a public board, invalid entries and errors return a free item.",
            "items": {
              "type": "string"
            }
          },
          "maxCompanies": {
            "title": "Max companies",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Safety cap on companies reported in one run. Extra companies are skipped and not charged.",
            "default": 200
          },
          "newJobDays": {
            "title": "New role window (days)",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Roles first published within this many days count as new. Drives newJobs, newJobShare and the hiring momentum.",
            "default": 30
          },
          "roleKeywords": {
            "title": "Role keywords",
            "type": "array",
            "description": "Optional words or phrases to look for in job titles, departments and teams (whole-word, case-insensitive). Each keyword gets a count and up to 10 matching titles. Up to 50 keywords.",
            "items": {
              "type": "string"
            }
          },
          "trackChanges": {
            "title": "Track changes between runs",
            "type": "boolean",
            "description": "Remember each board's open roles in a named key-value store and report added and removed roles since the previous run with the same state key. Schedule the Actor to get a weekly hiring-change feed.",
            "default": true
          },
          "stateKey": {
            "title": "State key",
            "pattern": "^[a-zA-Z0-9_-]{1,40}$",
            "type": "string",
            "description": "Keeps separate change histories for different watchlists. Letters, digits, dash and underscore, up to 40 characters.",
            "default": "default"
          },
          "scanWebsite": {
            "title": "Scan company websites",
            "type": "boolean",
            "description": "For a website or domain, read the homepage and up to two careers pages to find which job board the company links to.",
            "default": true
          },
          "guessBoards": {
            "title": "Match by name",
            "type": "boolean",
            "description": "When no board is linked, try the company's name on each supported job board and keep the largest board whose company name matches. Turn off to only use boards you or the website point to.",
            "default": true
          },
          "maxJobsToAnalyze": {
            "title": "Max roles analyzed per company",
            "minimum": 100,
            "maximum": 10000,
            "type": "integer",
            "description": "Cap on roles read per board. Only SmartRecruiters and Teamtailor page through roles, so this mainly matters for very large employers there. SmartRecruiters reports the full total in openJobs; a capped Teamtailor board is marked as truncated.",
            "default": 1000
          },
          "includeJobs": {
            "title": "Include role list",
            "type": "boolean",
            "description": "Add the individual roles (newest first) to each company item, with title, department, location, remote flag, function, seniority, salary when published, dates and the apply URL.",
            "default": true
          },
          "maxJobsInOutput": {
            "title": "Max roles listed per company",
            "minimum": 0,
            "maximum": 2000,
            "type": "integer",
            "description": "How many roles to list per company when the role list is included. Statistics always use every analyzed role.",
            "default": 100
          },
          "concurrency": {
            "title": "Concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Companies checked in parallel. Requests to each job board host stay rate limited either way.",
            "default": 4
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}