Company Hiring Signals — Hiring Intent Data for B2B Lead Gen avatar

Company Hiring Signals — Hiring Intent Data for B2B Lead Gen

Pricing

from $20.00 / 1,000 company analyzeds

Go to Apify Store
Company Hiring Signals — Hiring Intent Data for B2B Lead Gen

Company Hiring Signals — Hiring Intent Data for B2B Lead Gen

Which companies are hiring, for what, and how fast? One record per company: open roles, 30-day hiring velocity, engineering/sales/marketing demand, remote share, salary range, tech-keyword counts and change tracking. Input a domain, careers URL or name; 8 ATSes.

Pricing

from $20.00 / 1,000 company analyzeds

Rating

0.0

(0)

Developer

Mathews Motta

Mathews Motta

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 hours ago

Last modified

Categories

Share

Company Hiring Signals: Hiring Intent Data for B2B Lead Generation

Hiring is one of the strongest public buying-intent signals a company gives away. A company that posts five Salesforce admin roles is buying CRM tooling, a company hiring SDRs is scaling outbound, and an engineering hiring spike often follows funding or a new product push. Company Hiring Signals reads the public job boards of the companies you give it and returns one record per company.

What does it do

Give the actor companies as domains, careers URLs or names. It finds each company's job board, reads every open role and writes one flat record per company, using public job-board data only.

  • Posting velocity: open roles, roles posted in the last 7 and 30 days, role age, and a hiringVelocity label (hot, growing, steady or low).
  • Function mix: open roles by function (engineering, data, sales, marketing and more), plus departments, locations and seniority.
  • Focus keywords: count the open roles that mention your tools or skills, such as salesforce, kubernetes or SOC 2.
  • Change tracking: with Track changes on, each run reports new and closed roles since the last run.
  • Eight ATS platforms (Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable, Recruitee and Personio) with one output schema.

Use cases

Enrich a lead list. Export accounts from HubSpot, Salesforce or Clay with a domain column, run the actor on those domains and join the results back on domain. Sort by salesJobs or focusKeywordCounts to see who is investing where you sell.

Monitor key accounts weekly. Turn on Track changes, set a monitor name such as tier-1-accounts and schedule the actor in Apify Schedules. A webhook into Zapier, Make or n8n can post to Slack when newJobsSinceLastRun crosses your threshold.

Find technographic intent. Add tools such as snowflake or salesforce as focus keywords. A company with several open roles mentioning Snowflake is building a data stack, and jobTitles lists the matching roles for a specific opener.

Pricing

  • $0.02 per company analyzed, when a job board is found and its roles are read.
  • $0.002 per company where no job board was found.
  • Errors and duplicate entries are free.
  • Apify charges a small actor-start fee per run.

Set a max cost per run and the actor stops once the limit is reached. A list of 1,000 companies where every board is found comes to $20 plus the start fee.

Input

FieldTypeDescription
companiesstring[]Required. Domains (stripe.com), careers or ATS URLs, or company names. Up to 1,000 per run.
focusKeywordsstring[]Optional. Up to 25 whole-word, case-insensitive terms.
includeJobTitlesbooleanAdd up to 50 open roles per company. Default true.
trackChangesbooleanCompare with the previous run of the same monitor. Default false.
monitorNamestringSnapshot store name for Track changes. Use one per company list. Default default.

Example input:

{
"companies": [
"stripe.com",
"https://jobs.ashbyhq.com/notion",
"https://jobs.lever.co/spotify"
],
"focusKeywords": ["salesforce", "snowflake", "SDR"],
"trackChanges": true,
"monitorName": "tier-1-accounts"
}

Output

One dataset item per company:

GroupFields
Identityinput, companyName, domain, ats, atsSlug, careersUrl, status (ok, not_found or error), error
VolumeopenJobs, jobsAnalyzed, truncated, remoteJobs, remoteShare (0 to 1)
Posting velocityjobsPostedLast7Days, jobsPostedLast30Days, jobsWithPostedDate, oldestOpenJobDays, medianJobAgeDays, hiringVelocity
Function mixfunctionCounts, engineeringJobs, dataJobs, productJobs, designJobs, salesJobs, marketingJobs, customerSuccessJobs
Departments and locationstopDepartments, departmentCounts, topLocations, seniorityCounts
PayjobsWithSalary, salaryRange (annualized min and max)
Focus keywordsfocusKeywordCounts, focusKeywordsMatchedOn
RolesjobTitles: up to 50 roles with title, url, department, location, postedAt, matchedKeywords
Change trackingnewJobsSinceLastRun, closedJobsSinceLastRun, openJobsChange, previousRunAt (null on the first run)
TimestampanalyzedAt

Sample record from a live run against Notion's Ashby board, with jobTitles trimmed to three entries:

{
"input": "https://jobs.ashbyhq.com/notion",
"companyName": "Notion",
"domain": null,
"ats": "ashby",
"atsSlug": "notion",
"careersUrl": "https://jobs.ashbyhq.com/notion",
"status": "ok",
"error": null,
"openJobs": 139,
"remoteJobs": 0,
"remoteShare": 0,
"jobsPostedLast7Days": 13,
"jobsPostedLast30Days": 40,
"jobsWithPostedDate": 139,
"oldestOpenJobDays": 454,
"medianJobAgeDays": 63,
"topDepartments": [
{
"name": "Sales",
"count": 48
},
{
"name": "People",
"count": 17
},
{
"name": "Outcomes Architect",
"count": 15
},
{
"name": "Engineering",
"count": 14
},
{
"name": "Marketing",
"count": 11
}
],
"departmentCounts": {
"Sales": 48,
"People": 17,
"Outcomes Architect": 15,
"Engineering": 14,
"Marketing": 11,
"Early Career": 8,
"Finance": 8,
"Security": 5,
"Customer Experience": 3,
"Revenue Operations & Strategy": 3,
"Product Management": 2,
"Business Technology": 1,
"Data Science": 1,
"Legal": 1,
"Product Design": 1,
"User Research and Product Operations": 1
},
"topLocations": [
{
"name": "San Francisco, California",
"count": 70
},
{
"name": "New York, New York",
"count": 49
},
{
"name": "Dublin, Ireland",
"count": 20
},
{
"name": "Tokyo, Japan",
"count": 19
},
{
"name": "Paris, France",
"count": 7
}
],
"seniorityCounts": {
"unspecified": 74,
"manager": 30,
"lead": 23,
"executive": 7,
"intern": 3,
"senior": 2
},
"functionCounts": {
"engineering": 36,
"data": 1,
"product": 2,
"design": 1,
"sales": 43,
"marketing": 13,
"customer_success": 13,
"operations": 5,
"finance": 7,
"hr_recruiting": 16,
"legal": 2,
"other": 0
},
"engineeringJobs": 36,
"dataJobs": 1,
"productJobs": 2,
"designJobs": 1,
"salesJobs": 43,
"marketingJobs": 13,
"customerSuccessJobs": 13,
"jobsWithSalary": 0,
"salaryRange": null,
"focusKeywordCounts": {
"salesforce": 16,
"kubernetes": 3,
"SDR": 0
},
"focusKeywordsMatchedOn": "title_and_description",
"hiringVelocity": "growing",
"jobTitles": [
{
"title": "Ecosystem Growth Engineer",
"url": "https://jobs.ashbyhq.com/notion/45f60d0e-e44f-40c5-985e-4096a8966860",
"department": "Marketing",
"location": "New York, New York",
"postedAt": "2026-10-21T18:45:02.761Z",
"matchedKeywords": [
"salesforce"
]
},
{
"title": "Sales Strategy & Operations Manager, APAC",
"url": "https://jobs.ashbyhq.com/notion/b393c25a-2ce7-458d-800a-bf9e75ed070b",
"department": "Revenue Operations & Strategy",
"location": "Tokyo, Japan",
"postedAt": "2026-10-19T02:21:21.108Z",
"matchedKeywords": [
"salesforce"
]
},
{
"title": "Lifecycle Marketing Manager, Campaign Strategy & Execution",
"url": "https://jobs.ashbyhq.com/notion/576401b9-66e7-4407-a9e2-8aafaa590082",
"department": "Marketing",
"location": "San Francisco, California",
"postedAt": "2026-10-14T15:38:27.470Z",
"matchedKeywords": [
"salesforce"
]
}
],
"jobsAnalyzed": 139,
"truncated": false,
"analyzedAt": "2026-10-23T00:35:56.982Z"
}

How hiringVelocity is computed

Let n be the roles first posted in the last 30 days and ratio be n divided by open roles.

  • hot: n is at least 15 and the ratio is at least 30%.
  • growing: n is at least 5 and the ratio is at least 15%.
  • steady: at least one new role in 30 days.
  • low: no new roles in 30 days, or no open roles.

The label is null when fewer than half the roles carry a posting date. In the sample, 40 of 139 roles were posted in the last 30 days (about 29%), so Notion is growing rather than hot.

Supported platforms and detection

Detection runs in this order:

  1. ATS or board URL: read directly.
  2. Domain: scan the company website for embedded ATS links, then up to three careers-looking pages.
  3. Fallback: guess board slugs such as stripe from the name or domain on the seven ATSes that can be guessed, and keep the first with open roles.

Workday cannot be guessed, because each board needs a tenant, a wdN host and a site name. Paste the careers URL instead, for example https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite.

Limitations

  • Job function is a keyword heuristic based on title and department. Expect a few edge cases.
  • Pages that load jobs only in the browser may hide the board. If the board link is not in the page HTML, paste the board URL.
  • Keyword and date coverage vary by ATS. SmartRecruiters and Workday match keywords on titles only, and Workday dates are approximate.
  • Boards over 2,000 roles are analyzed on the first 2,000. openJobs still holds the true total.
  • No LinkedIn, Indeed or Glassdoor data. The actor reads only company ATS boards.

Integrations

  • API: start runs and read results through the Apify API, for example with run-sync-get-dataset-items.
  • Webhooks: trigger a workflow when a run succeeds.
  • Zapier, Make, n8n: send hiring alerts to Slack, email or your CRM.
  • Google Sheets, Clay and exports: push runs to a sheet with the Apify integrations, call the API from Clay over HTTP, or download JSON, CSV or Excel.

FAQ

Is it legal to collect this data? The actor reads only public job postings through the public endpoints each ATS provides for its career pages. It does not log in or collect candidate data. You remain responsible for how you use the data, so check the rules that apply to you.

How accurate is it? Role counts, posting dates and locations come straight from the company's job board. Function, seniority and keyword counts are rule-based, so treat them as strong signals rather than audited figures.

What does not_found mean? No supported job board was found for the input, or the board exists but lists zero open roles. The run continues, the reason is in error, and the row is billed at the lower rate. If a company is missing, paste its careers URL.

How often should I run it? Weekly suits account monitoring and most prospecting lists.

How fresh is the data? Each run reads the live board, so data is as fresh as your last run.