# Hiring Signals & Technographics From Job Postings (`atsfeed/hiring-signals-technographics`) Actor

Find B2B leads from live job postings: companies hiring for any role or naming a tool like Salesforce, Snowflake or HubSpot. Company-level data with no personal contact details.

- **URL**: https://apify.com/atsfeed/hiring-signals-technographics.md
- **Developed by:** [Velavalapalli Mohana Durga Sai Ram](https://apify.com/atsfeed) (community)
- **Categories:** Lead generation, Jobs, Marketing
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $13.00 / 1,000 company returneds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

### What does Hiring Signals & Technographics do?

Find companies that are ready to buy, using what they say in their own job postings. Search live postings for **roles they are hiring** and **tools they name**, and get back **one clean record per company**: how many matching roles, how many are new this week, which technologies they mention, and links to the evidence. The index covers about **19,000 companies** and is refreshed daily.

It works as a **hiring signals API** and a **technographics API** in one, and it returns company-level data only, with no personal contact details. That makes it a clean first step for your own enrichment workflow.

### Why use Hiring Signals & Technographics?

- **Hiring for a function means budget.** A company hiring three SDRs is building a sales team and needs sales tools.
- **Postings name the real stack.** "Experience with Snowflake and dbt" tells you what a data team uses today. Back-office tools rarely appear on a homepage, so job posts often reveal more than a website scan.
- **Timing is built in.** Posting dates show who started hiring this week, not who matched a static list last year.
- **One row per company.** Matching roles, technologies, seniority, countries and stated pay are already counted for you.
- **Evidence included.** Every company comes with sample job links, so a sales rep can check the signal in seconds.

#### Who uses hiring signals?

- **Sales teams** selling to users of a tool: companies naming Salesforce, HubSpot, Zendesk or a competitor of yours.
- **Agencies and recruiters** finding companies with five or more open roles in their specialty.
- **Account managers** checking which of their accounts are hiring now.
- **RevOps and AI agents** feeding a CRM with a ready-made `signal` sentence per company.

### What data can Hiring Signals & Technographics extract?

| Field | Type | Description |
|---|---|---|
| `company`, `careersPageUrl` | text, link | The company and its public job board |
| `matchingRoles` | number | Open roles that match your filters |
| `totalOpenRoles` | number | All open roles at the company |
| `newRolesLast7Days`, `newRolesLast30Days` | number | Hiring momentum |
| `technologies` | list | Tools named in matching postings, with role counts |
| `categories`, `seniority`, `countries` | list | Where and at what level the company is hiring |
| `statedPay` | list | Pay ranges stated in matching postings |
| `signal` | text | A one-line summary for CRM notes or outreach |
| `sampleJobs` | list | Recent matching postings with links |

### How to find companies hiring for a role or using a tool

1. Enter **technologies**, **job title keywords**, or both.
2. Add **locations** and a **minimum role count** if you like.
3. Set **Maximum companies** and click **Start**.
4. Download the results, or read them through the API.

#### Example input

Companies hiring sales roles in the United States that name Salesforce or HubSpot:

```json
{
  "technologies": ["salesforce", "hubspot"],
  "titleKeywords": ["sales", "account executive", "business development"],
  "locations": ["United States"],
  "postedWithinDays": 30,
  "minMatchingRoles": 3,
  "maxCompanies": 100
}
```

### How much do hiring signals cost?

You pay per company returned, and higher Apify plans pay less per company. The pricing panel on this page shows the price for your plan. On the Free and Starter plans:

| Companies returned | Cost |
|---|---|
| 50 | $1.00 |
| 500 | $10.00 |
| 5,000 | $100.00 |

Platform usage is included, and **Maximum companies** caps your cost.

### Input

See the **Input** tab for every option. **Technologies** match tools named in job descriptions, **Job title keywords** match role titles, and **Minimum matching roles** keeps only companies hiring at volume.

### Output

Download the dataset as JSON, CSV, Excel, XML, RSS or HTML. Each company looks like this:

#### Example output

```json
{
  "company": "Acme",
  "careersPageUrl": "https://job-boards.greenhouse.io/acme",
  "source": "greenhouse",
  "matchingRoles": 6,
  "totalOpenRoles": 41,
  "newRolesLast7Days": 5,
  "newRolesLast30Days": 12,
  "signal": "6 matching open roles posted in the last 30 days; mentions salesforce in 4; 41 open roles in total, 5 posted in the last 7 days.",
  "technologies": [{ "name": "salesforce", "roles": 4 }, { "name": "gong", "roles": 2 }],
  "categories": [{ "name": "sales", "roles": 6 }],
  "seniority": [{ "name": "mid", "roles": 4 }, { "name": "manager", "roles": 2 }],
  "countries": [{ "code": "US", "roles": 6 }],
  "remoteRoles": 2,
  "statedPay": [{ "currency": "USD", "min": 60000, "max": 140000, "roles": 3, "period": "year" }],
  "newestPostingDate": "2026-11-04",
  "sampleJobs": [{ "title": "Account Executive, Mid-Market", "location": "Austin, TX", "department": "Sales", "postedDate": "2026-11-04", "url": "https://job-boards.greenhouse.io/acme/jobs/123" }],
  "dataAsOf": "2026-11-05T08:40:00.000Z"
}
```

### Technologies you can search

Languages and frameworks: python, java, javascript, typescript, golang, rust, c++, c#, .net, ruby, rails, php, react, angular, vue, next.js, node.js, django, spring.

Cloud and infrastructure: aws, azure, gcp, kubernetes, docker, terraform, cloudflare, vercel, datadog, splunk, grafana, okta, crowdstrike.

Data and AI: snowflake, databricks, bigquery, redshift, dbt, airflow, spark, kafka, postgresql, mongodb, tableau, power bi, looker, pytorch, tensorflow, langchain, llm, openai, anthropic.

Business tools: salesforce, hubspot, marketo, pardot, gong, salesloft, zoominfo, 6sense, zendesk, intercom, gainsight, servicenow, jira, notion, figma, shopify, magento, wordpress, stripe, netsuite, sap, oracle, workday, quickbooks, xero, google analytics, amplitude, mixpanel.

### Tips for better signals

- Combine a **technology** with **title keywords** for intent: "salesforce" plus "sales" finds teams growing around that tool.
- Raise **Minimum matching roles** to 3 or more to focus on companies hiring at volume.
- Use **Posted within the last N days** of 7 to 30 for fresh signals.

### Use Hiring Signals & Technographics with the API and AI agents

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

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('atsfeed/hiring-signals-technographics').call({
  technologies: ['salesforce'],
  titleKeywords: ['sales'],
  locations: ['United States'],
  minMatchingRoles: 3,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
```

AI agents in Claude, ChatGPT, Cursor or any MCP client can call this Actor as a tool through the Apify MCP server at `mcp.apify.com`. The **API** tab has Python, cURL and more.

### FAQ

#### Does it return personal contact details?

No. It returns company-level signals only. If you use the results for outreach, follow the laws that apply to you, such as GDPR and CAN-SPAM.

#### How reliable is a technology match?

A tool named in a posting is a strong hint, not proof. A company may be moving away from it, or list it as a nice-to-have. Read the sample jobs before relying on a signal.

#### Need a technology that is not listed?

Ask on the **Issues** tab and it can be added.

### Coverage and accuracy

- **Index size, November 2026:** about 19,000 companies with about 730,000 open jobs. About 500,000 of those jobs have a full description, which technology matching needs.
- Data comes from public job boards on Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee, Personio and Breezy, refreshed daily. Companies that hire through other systems, or only through LinkedIn or Indeed, are not covered.
- Technology matching uses fixed rules applied to the employer's own words, and only covers jobs where the source shared a description. It can miss or misread a mention.
- Each company is one job board. A company using two systems appears twice.

### Related Actors

- [Career Site Jobs API](https://apify.com/atsfeed/ats-job-search): open jobs from company career sites on eight applicant tracking systems, in one search.
- [Daily Jobs Feed](https://apify.com/atsfeed/daily-jobs-feed): every new job from company career sites in one scheduled run.
- [Remote Jobs Scraper](https://apify.com/atsfeed/remote-jobs-search): remote jobs straight from company career sites.
- [Salary Benchmarks](https://apify.com/atsfeed/job-salary-benchmarks): pay ranges for any job title and location.
- Job search for a single source: [Greenhouse](https://apify.com/atsfeed/greenhouse-jobs-search), [Lever](https://apify.com/atsfeed/lever-jobs-search), [Ashby](https://apify.com/atsfeed/ashby-jobs-search), [Workable](https://apify.com/atsfeed/workable-jobs-search), [SmartRecruiters](https://apify.com/atsfeed/smartrecruiters-jobs-search).

### Questions

Found a wrong result, or want another system covered? Open an issue on the **Issues** tab with an example.

# Actor input Schema

## `technologies` (type: `array`):

Find companies whose postings name any of these. Use lowercase. Examples: salesforce, hubspot, snowflake, databricks, aws, kubernetes, react, stripe, shopify, zendesk, gong. Leave empty to search by role only.

## `requireAllTechnologies` (type: `boolean`):

Keep only companies naming every technology above across their matching roles.

## `titleKeywords` (type: `array`):

A role matches if its title contains any entry. Words can be in any order. Use double quotes for an exact phrase. Examples: "sales development", data engineer, head of marketing.

## `excludeTitleKeywords` (type: `array`):

Skip roles whose title contains any of these.

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

Any city, state, country or two-letter country code, in plain words. Leave empty for worldwide.

## `includeGlobalRemote` (type: `boolean`):

Applies when you set locations.

## `postedWithinDays` (type: `integer`):

Recent hiring is a stronger signal. Use 0 for all open roles.

## `minMatchingRoles` (type: `integer`):

Raise this to find companies hiring at scale, not just one opening.

## `maxCompanies` (type: `integer`):

You pay per company returned, so this also caps your cost.

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

Most matching roles first, or most recently posted first.

## `categories` (type: `array`):

Detected from the job title and department.

## `seniority` (type: `array`):

Detected from the job title.

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

Check specific accounts. Company names, career board names or website domains.

## `excludeCompanies` (type: `array`):

Skip existing customers or competitors. Matches names containing these.

## `sampleJobsPerCompany` (type: `integer`):

Recent matching jobs to include as evidence for each company.

## Actor input object example

```json
{
  "technologies": [
    "salesforce"
  ],
  "requireAllTechnologies": false,
  "titleKeywords": [
    "sales"
  ],
  "includeGlobalRemote": true,
  "postedWithinDays": 30,
  "minMatchingRoles": 1,
  "maxCompanies": 10,
  "sortBy": "matching_roles",
  "sampleJobsPerCompany": 3
}
```

# Actor output Schema

## `results` (type: `string`):

One item per company, with matching roles, technologies named and sample job links.

## `summary` (type: `string`):

Roles scanned and matched, and companies returned.

# 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 = {
    "technologies": [
        "salesforce"
    ],
    "titleKeywords": [
        "sales"
    ],
    "postedWithinDays": 30,
    "maxCompanies": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("atsfeed/hiring-signals-technographics").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 = {
    "technologies": ["salesforce"],
    "titleKeywords": ["sales"],
    "postedWithinDays": 30,
    "maxCompanies": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("atsfeed/hiring-signals-technographics").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 '{
  "technologies": [
    "salesforce"
  ],
  "titleKeywords": [
    "sales"
  ],
  "postedWithinDays": 30,
  "maxCompanies": 10
}' |
apify call atsfeed/hiring-signals-technographics --silent --output-dataset

```

## MCP server setup

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

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/DWWnj67jbeHx1Winf/builds/2DcY8KXK1y8YhztVo/openapi.json
