{
  "openapi": "3.0.1",
  "info": {
    "title": "Hiring Signals API: Companies Hiring Now, B2B Intent Leads",
    "description": "Find companies hiring right now, from 17,000+ career sites (Greenhouse, Lever, Workday, Ashby...) refreshed hourly. One row per company: new jobs by function and seniority, locations, salary, closed jobs, sample job links. Buying-intent signals for sales, recruiting and investors.",
    "version": "0.1",
    "x-build-id": "Ame8GErjxfPCkxnzn"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/cleanrowdata~hiring-signals-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-cleanrowdata-hiring-signals-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/cleanrowdata~hiring-signals-api/runs": {
      "post": {
        "operationId": "runs-sync-cleanrowdata-hiring-signals-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/cleanrowdata~hiring-signals-api/run-sync": {
      "post": {
        "operationId": "run-sync-cleanrowdata-hiring-signals-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",
        "properties": {
          "timeRange": {
            "title": "New jobs posted in the last",
            "enum": [
              "24h",
              "7d",
              "30d"
            ],
            "type": "string",
            "description": "Counts jobs that companies posted in this window. 24h and 7d answer in seconds. 30d scans the full index (1-2 minutes) and also returns open-job counts.",
            "default": "7d"
          },
          "jobFunctions": {
            "title": "Job functions",
            "type": "array",
            "description": "Count only these kinds of roles, classified from title and department. E.g. Sales = companies building sales teams (great for selling sales tools); Engineering; Security; AI / ML. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "sales",
                "security",
                "ai_ml",
                "data",
                "customer_success",
                "engineering",
                "product",
                "design",
                "marketing",
                "finance",
                "people_hr",
                "legal",
                "healthcare",
                "operations",
                "other"
              ],
              "enumTitles": [
                "Sales",
                "Security",
                "AI / Machine learning",
                "Data & analytics",
                "Customer success & support",
                "Engineering",
                "Product",
                "Design",
                "Marketing",
                "Finance & accounting",
                "People / HR / Recruiting",
                "Legal",
                "Healthcare & clinical",
                "Operations",
                "Other"
              ]
            }
          },
          "locationSearch": {
            "title": "Locations",
            "type": "array",
            "description": "Count only jobs whose location contains any of these (case-insensitive): countries, states, cities. E.g. 'United States', 'Texas', 'London', 'Remote'.",
            "items": {
              "type": "string"
            }
          },
          "titleSearch": {
            "title": "Job title contains",
            "type": "array",
            "description": "Count only jobs whose title contains any of these words or phrases. E.g. 'account executive', 'SDR', 'data engineer'.",
            "items": {
              "type": "string"
            }
          },
          "titleExclusionSearch": {
            "title": "Exclude job titles containing",
            "type": "array",
            "description": "Skip jobs whose title contains any of these. E.g. 'intern'.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords (title, department, company)",
            "type": "array",
            "description": "Count only jobs mentioning any of these in title, department, team or company. E.g. 'Salesforce', 'Kubernetes'.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Skip jobs mentioning any of these.",
            "items": {
              "type": "string"
            }
          },
          "seniority": {
            "title": "Seniority",
            "type": "array",
            "description": "Count only these levels (parsed from the title). E.g. Director / VP to find leadership hiring. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "intern",
                "entry",
                "mid",
                "senior",
                "lead",
                "staff_principal",
                "manager",
                "executive"
              ],
              "enumTitles": [
                "Intern",
                "Entry level",
                "Mid level",
                "Senior",
                "Lead",
                "Staff / Principal",
                "Manager",
                "Director / VP / C-level"
              ]
            }
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Count only remote roles.",
            "default": false
          },
          "minNewJobs": {
            "title": "Minimum new jobs per company",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Only return companies with at least this many new matching jobs in the window. Raise it (e.g. 10) for the strongest signals.",
            "default": 3
          },
          "sortBy": {
            "title": "Sort companies by",
            "enum": [
              "new_jobs",
              "latest",
              "growth"
            ],
            "type": "string",
            "description": "How to rank companies. 'Growth' ranks by new jobs divided by all matching open jobs, so smaller companies scaling fast rise to the top; it turns on open-job counts.",
            "default": "new_jobs"
          },
          "limit": {
            "title": "Max companies",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Maximum company rows to return. You pay per company row.",
            "default": 50
          },
          "sampleJobsPerCompany": {
            "title": "Sample job links per company",
            "minimum": 0,
            "maximum": 25,
            "type": "integer",
            "description": "Include up to this many of the newest matching jobs (title, location, link) in each company row. Free; set 0 for smaller rows.",
            "default": 5
          },
          "includeOpenJobCounts": {
            "title": "Include open-job counts (slower)",
            "type": "boolean",
            "description": "Also count all open matching jobs per company and the new/open share. Scans the full index (1-2 minutes). Always on for 30d.",
            "default": false
          },
          "companies": {
            "title": "Only these companies",
            "type": "array",
            "description": "Only companies whose name or ATS board contains any of these. E.g. 'stripe', 'Wells Fargo'.",
            "items": {
              "type": "string"
            }
          },
          "companyExclusion": {
            "title": "Exclude companies",
            "type": "array",
            "description": "Skip companies whose name or board contains any of these (e.g. your own company, or staffing agencies).",
            "items": {
              "type": "string"
            }
          },
          "ats": {
            "title": "ATS platforms",
            "type": "array",
            "description": "Only companies on these applicant tracking systems. Leave empty for all 9.",
            "items": {
              "type": "string",
              "enum": [
                "greenhouse",
                "lever",
                "ashby",
                "workday",
                "workable",
                "smartrecruiters",
                "recruitee",
                "personio",
                "rippling"
              ],
              "enumTitles": [
                "Greenhouse",
                "Lever",
                "Ashby",
                "Workday",
                "Workable",
                "SmartRecruiters",
                "Recruitee",
                "Personio",
                "Rippling"
              ]
            }
          },
          "excludeAggregators": {
            "title": "Exclude job aggregators",
            "type": "boolean",
            "description": "Skip job aggregators and recruiting marketplaces (e.g. Jobgether) that repost other companies' jobs, so every row is a real employer.",
            "default": true
          },
          "excludeStaffingAgencies": {
            "title": "Exclude staffing agencies",
            "type": "boolean",
            "description": "Skip companies that look like staffing and recruitment agencies (Randstad, Robert Half, Aya Healthcare, '... Recruitment', '... Staffing' and similar, detected from the company name), so the list holds only direct employers. Every row also gets an <code>is_staffing_agency</code> field. Off by default.",
            "default": false
          },
          "excludeReposts": {
            "title": "Exclude re-posted jobs",
            "type": "boolean",
            "description": "Don't count re-posted jobs as new: jobs that just (re)appeared on a company's board but whose ATS posted date is more than 7 days older (reopened or re-listed requisitions). On by default, so new-job counts reflect newly posted roles.",
            "default": true
          },
          "onlyNewSinceLastRun": {
            "title": "Only companies not returned before",
            "type": "boolean",
            "description": "For scheduled runs and lead lists: skip companies that an earlier run with the same search already returned, so each run brings only companies you have not seen yet. The list is kept in a key-value store named <code>cleanrowdata-hiring-signals-api-seen</code> in your own Apify account (90 days). The first run returns everything that matches.",
            "default": false
          },
          "stateKey": {
            "title": "Saved-search name (optional)",
            "type": "string",
            "description": "Used with \"Only companies not returned before\". By default each different search keeps its own memory; give a name (e.g. <code>daily-data-jobs</code>) to keep the memory while you edit the filters, or a new name to start fresh."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}