# Hiring Signals API: Which Companies Are Hiring Now (`divi_cv/hiring-signals`) Actor

See which of 5,800+ companies opened the most roles this week, which are growing fastest, and who is hiring for AI or any role you choose. Daily hiring signals from Greenhouse, Lever and Ashby career sites, one row per company with domain for CRM matching.

- **URL**: https://apify.com/divi\_cv/hiring-signals.md
- **Developed by:** [Divya Vijayakumar](https://apify.com/divi_cv) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 companies

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Hiring Signals API: which companies are hiring now

**See who's hiring before everyone else does.** Every day we check the career sites of 5,800+ companies on
**Greenhouse, Lever and Ashby** and record every role that opens and closes. This Actor turns that history
into **one row per company**:

- Who opened the most roles this week
- Who's growing fastest
- Who's hiring for AI, or for any role you name
- Who just closed a batch of roles (filled, or a hiring freeze)

> **Why hiring signals?** A company posting ten new data engineer roles is about to buy data tools. A
> company that suddenly closes most of its sales roles may be cutting back. Hiring is one of the earliest public
> signals of budget, growth and strategy.

### Who uses it

| You are... | Use it to... |
|---|---|
| **A B2B sales team** | Build a weekly list of accounts that are ramping up the team you sell to (e.g. "data engineer", "security", "support"). Match to your CRM by `companyDomain`. |
| **A recruiter or staffing agency** | Find companies hiring fast for roles you place, and see how many roles and where |
| **An investor or analyst** | Track hiring momentum and AI hiring across thousands of private companies |
| **A job seeker** | Spot companies on a hiring spree in your field |

### What you get (one row per company)

| Field | Example | Meaning |
|---|---|---|
| `company`, `companyDomain` | Ramp, ramp.com | Company and website domain for CRM matching |
| `newJobs` | 14 | Roles that appeared in the window |
| `closedJobs` | 3 | Roles taken down in the window |
| `netChange`, `growthPct` | 11, 7.2 | New minus closed, and as a % of open roles at the start |
| `aiJobsNew` | 4 | New roles with AI/ML/LLM/data science in the title |
| `openJobs`, `totalOpenJobs` | 162, 162 | Open roles matching your filters, and all open roles |
| `topDepartments`, `topLocations` | \["Engineering (8)"], \["New York, NY (6)"] | Where the new roles are |
| `remoteSharePct` | 35 | Share of new roles that are remote |
| `medianSalaryUsd` | 185000 | Median posted salary floor of new roles (USD, annualized) |
| `avgDaysOpenClosed` | 41 | How long the closed roles stayed open (time to fill) |
| `sampleNewTitles`, `exampleJobUrl` | \["Senior Data Engineer", ...] | What they're hiring for |

### Examples

**Companies hiring data engineers fastest this week, US only:**

```json
{ "sinceDays": 7, "keywords": ["data engineer", "analytics engineer"], "locations": ["United States"], "sortBy": "newJobs" }
```

**Most new AI roles in the last 14 days:**

```json
{ "sinceDays": 14, "sortBy": "aiJobsNew" }
```

**Watch your own account list:**

```json
{ "sinceDays": 7, "companies": ["stripe.com", "ramp.com", "databricks.com"], "minNewJobs": 0 }
```

Schedule it weekly, and send results to Google Sheets, Slack, your CRM (via Zapier/Make), or an AI agent via MCP.

### Pricing

You pay **per company returned**. Filters are free. Set **Maximum companies** or a max charge per run to
control cost.

### Data notes

- **Coverage:** public career sites on Greenhouse, Lever and Ashby. That's mostly tech, startups and high-growth
  companies in the US and Europe, plus healthcare, retail and manufacturing employers.
- **Updated daily** around 6:00 AM US Central.
- **History started 2026-09-26.** Windows reaching back before that only count changes since that date.
  Every day of history makes the signals richer; roles already open when tracking began are never counted as "new".
- **Public data only:** job postings companies publish themselves. No personal data.

### Related

Need the individual jobs, not company totals? Use **[Greenhouse, Lever & Ashby Jobs API: New Jobs Daily](https://apify.com/divi_cv/new-jobs-feed)**
for job-level rows with salary, workplace and apply links.

# Actor input Schema

## `sinceDays` (type: `integer`):

The window to measure: new and closed roles in the last N days (max 30). Tracking began 2026-09-26, so windows reaching further back only include changes since then.

## `sortBy` (type: `string`):

Which signal to sort by, highest first.

## `keywords` (type: `array`):

E.g. "data engineer", "account executive", "nurse". Answers "which companies are hiring for X". Whole-word match. Leave empty for all roles.

## `excludeKeywords` (type: `array`):

Don't count roles whose title contains these, e.g. intern.

## `locations` (type: `array`):

Only count roles whose location or country contains any of these, e.g. "United States", "London", "Remote".

## `workplace` (type: `array`):

Only count remote, hybrid and/or onsite roles.

## `companies` (type: `array`):

Only these companies, by name or website domain (e.g. "Stripe" or "stripe.com"). Useful for monitoring a watchlist or your CRM accounts.

## `minNewJobs` (type: `integer`):

Skip companies with fewer new matching roles than this in the window. Set 0 to include companies with no new roles (e.g. to find hiring freezes).

## `maxItems` (type: `integer`):

Return at most this many companies. You're charged per company returned.

## Actor input object example

```json
{
  "sinceDays": 7,
  "sortBy": "newJobs",
  "keywords": [],
  "minNewJobs": 1,
  "maxItems": 20
}
```

# Actor output Schema

## `companies` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "sinceDays": 7,
    "sortBy": "newJobs",
    "keywords": [],
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("divi_cv/hiring-signals").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "sinceDays": 7,
    "sortBy": "newJobs",
    "keywords": [],
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("divi_cv/hiring-signals").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "sinceDays": 7,
  "sortBy": "newJobs",
  "keywords": [],
  "maxItems": 20
}' |
apify call divi_cv/hiring-signals --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,divi_cv/hiring-signals"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/i8PLGMwa2HWwQjCM7/builds/9FNQ0DGyYlzZtBhYU/openapi.json
