Hiring Velocity Signal API — PredictLeads Alternative avatar

Hiring Velocity Signal API — PredictLeads Alternative

Pricing

from $200.00 / 1,000 company hiring signal aggregateds

Go to Apify Store
Hiring Velocity Signal API — PredictLeads Alternative

Hiring Velocity Signal API — PredictLeads Alternative

Company hiring intent signals from LinkedIn + Indeed in one API call. Per-company counts, week-over-week velocity, role breakdown, seniority mix, and composite hiring score (0-100). $0.20/company, no contract — the self-serve alternative to PredictLeads and Cognism Elevate.

Pricing

from $200.00 / 1,000 company hiring signal aggregateds

Rating

0.0

(0)

Developer

Sami

Sami

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

20 days ago

Last modified

Share

Hiring Velocity Signal API — PredictLeads & Cognism Alternative

Hiring-intent signals for any company — $0.20 per company, no contract, no minimum. Pay-per-signal access to per-company hiring velocity, role breakdown, seniority mix, and week-over-week delta — aggregated from LinkedIn + Indeed in one API call. A self-serve alternative to PredictLeads ($40/mo credit minimum) and Cognism Elevate ($37,498/year for 5 seats) for SDR / RevOps teams who want hiring triggers without an annual contract.

Enterprise hiring-intent platforms (Cognism Elevate, PredictLeads Enterprise, LeadIQ Pro) are sold on annual contracts. This Actor returns a company-level signal — total active jobs, new postings in window, week-over-week velocity delta, role breakdown, seniority mix, and a composite hiring-signal score (0-100) — at $0.20 per company, pay only for what you pull. No subscription. No setup fee. No annual contract. Built for B2B SDR Managers, RevOps Leads, VC analysts tracking portcos, M&A scouts, and sales-trigger newsletter operators.

How to get hiring-intent signals in 3 easy steps

  1. Go to the Hiring Velocity Signal API page on Apify and click "Try for free"
  2. Paste your list of company domains (e.g. ["stripe.com", "ramp.com", "linear.app"]) — pick the lookback window (7 / 14 / 30 / 60 / 90 days) and the platforms you want to query (LinkedIn / Indeed / both)
  3. Click "Run", wait for the aggregator to finish, then download your data as JSON, CSV, or Excel — or wire it into a daily / weekly Apify Schedule for continuous account-list monitoring

No coding required. No API key for LinkedIn or Indeed. No login bypass. Works with Apify's free plan.

Table of contents

What this Actor does

  • Single list of company domains → company-level hiring signals in one call
  • Aggregates LinkedIn Jobs + Indeed Jobs and deduplicates cross-platform listings (so a job posted to both platforms counts as one — no inflated counts)
  • Computes totalActiveJobs, newJobsInPeriod, and weekOverWeekDeltaPct per company
  • Classifies every posting into a role bucket (engineering / sales / marketing / product / ops / other) using a calibrated keyword/regex matcher, then surfaces the per-role counts as roleBreakdown
  • Classifies every posting into a seniority bucket (junior / mid / senior / executive) and surfaces percentage mix as seniorityMix
  • Computes a composite hiringSignalScore (0-100) weighted across velocity × delta × seniority × breadth — sort your account list by this score to surface high-intent accounts in seconds
  • Surfaces top 5 most-frequent job titles per company as a one-glance "what kind of hiring" indicator
  • Normalized output (one shape per company regardless of which platforms returned data — your downstream pipeline never has to branch on missing fields)
  • Per-platform 60s wall-clock timeout (one slow platform never drags down the batch)

Who buys this Actor

Buyer profileUse caseTypical monthly spend
B2B SaaS SDR Manager (Series A–B, 10–80 employees)Weekly account-list refresh on 200–500 target accounts; surface hiring spikes as outreach triggers$200–$2,000/mo
RevOps Lead at growth-stage SaaSScore 5K-account TAM monthly by hiring intent; enrich Salesforce/HubSpot with the score field$1,000–$6,000/mo
VC analyst tracking portfolio companiesQuarterly hiring-velocity report for each portco; flag underhiring (concerning) and overhiring (raise about to be announced)$120–$800/mo per fund
M&A / corporate development scoutWeekly pull on 100–1,000 acquisition-candidate domains; sort by velocity score + seniority mix to surface companies in growth mode$400–$3,200/mo
Sales-trigger newsletter operator (e.g. The Signal, Hampton, RB2B newsletters)Daily refresh on 5K-domain list to surface hiring-spike companies as newsletter editorial; bill subscribers $50–500/mo$1,000–$10,000/mo
Recruiter / staffing agency BDIdentify companies in active hiring expansion before competitors; lead the cold-outbound conversation with the signal$200–$1,200/mo

If you're in any of these buckets and you're currently doing manual LinkedIn Jobs page checks weekly, this Actor pays for itself in the time you save in week 1.

Example use cases

1. Weekly SDR account-list refresh

Cron weekly on Monday at 7am local time, 200 target accounts, 7-day lookback, all four optional signals enabled (includeRoleBreakdown, includeSeniorityMix, includeWeekOverWeekDelta × default platforms: ["linkedin", "indeed"]). Push to your CRM (Salesforce / HubSpot / Attio) as a hiring-intent score field; SDRs sort their week's outreach queue by score descending. Typical volume: 200 signals/wk × 4 weeks = 800/mo. Cost: $160/mo ($1,920/year). For comparison, Cognism Elevate at $37,498/year for 5 seats is ~$7,500/year per seat.

2. Daily hiring-spike alert (real sales trigger)

Cron daily, 50 highest-priority accounts, 7-day lookback, filter the output for weekOverWeekDeltaPct > 100 AND hiringSignalScore > 70. Pipe matching records to a Slack webhook that pings #sdr-triggers. Typical volume: 50 signals/day × 30 days = 1,500/mo. Cost: ~$300/mo. A single closed deal from a well-timed trigger pays for years of this.

3. RevOps TAM scoring (one-off + quarterly refresh)

Score your entire 5K-account TAM by hiring velocity once per quarter. Sort by hiringSignalScore descending and feed the top 500 to your SDR team as "first-priority outbound this quarter." Typical volume: 5,000 signals one-time. Cost: ~$1,000 per quarter. Compared to PredictLeads Enterprise at $40/mo credit floor + ~$0.04/credit = $200+/mo recurring just to maintain account scoring, this is a one-shot $1,000 spend with no contract.

4. VC portfolio hiring tracker

Monthly run on every portco domain (e.g. 30 portcos for a typical seed/A-stage VC). Pull hiringSignalScore, roleBreakdown.engineering, roleBreakdown.sales, weekOverWeekDeltaPct. Track the trend month-over-month: portcos with declining velocity for 2 consecutive months get flagged in the quarterly LP letter. Typical volume: 30 signals/mo. Cost: ~$6/mo per fund. Compared to a Crunchbase Pro seat at $749/mo, this is a rounding-error spend.

5. M&A acquisition-candidate scout

Weekly pull on 500-domain acquisition-candidate list. Sort by seniorityMix.executivePct (companies building out leadership = pre-fundraise or pre-exit) and roleBreakdown.sales (companies building out GTM = ready to scale revenue). Typical volume: 2,000 signals/mo. Cost: ~$400/mo. Compared to building this internally with a custom LinkedIn scraper, multiple-engineer build-out + ongoing maintenance.

6. Sales-trigger newsletter editorial pipeline

Weekly refresh on 5K-domain list. Filter for new entrants to the top-100-by-score cohort week-over-week. The new entrants = your newsletter's "5 companies that started hiring fast this week" segment — sold to 200 paying subscribers at $99/mo. Typical volume: 5,000 × 4 weeks = 20,000/mo. Cost: ~$4,000/mo. Newsletter revenue: $19,800/mo gross. Net margin: ~80% on a single signal source.

Pricing

  • company-hiring-signal event: $0.20 per company-signal record (aggregated across LinkedIn + Indeed, with role breakdown, seniority mix, week-over-week delta, and composite score). Billed only on successful signal records — error records (e.g. domain didn't resolve) are not charged.
  • No subscription. No setup fee. No minimum spend. No annual contract.
  • Pricing justification: each company-signal event runs ~30 underlying scrapes (LinkedIn jobs search + Indeed company-jobs page + cross-platform deduplication). The buyer would pay $0.003–$0.01 per raw job × 30 = $0.09–$0.30 to do this manually. $0.20 sits inside that range AND saves the aggregation logic, the regex maintenance, and the cross-platform dedup.

Realistic costs

WorkflowVolumeCost
Weekly SDR refresh, 200 accounts800 signals/mo~$160/mo
Daily hiring-spike alert, 50 accounts1,500 signals/mo~$300/mo
Quarterly TAM scoring, 5K accounts5,000 signals/quarter~$1,000/quarter
Monthly VC portfolio tracker, 30 portcos30 signals/mo~$6/mo
Weekly newsletter, 5K-domain list20,000 signals/mo~$4,000/mo

Compared to PredictLeads Pro at $40/mo credit minimum + $0.04/credit (so 1,500/mo = $60/mo + a $40 sunk minimum every month), or Cognism Elevate at $37,498/year for 5 seats (so $625/seat/month just to reach the API), the weekly SDR workflow above is ~74% cheaper than the cheapest Cognism Elevate seat — without an annual contract, per-seat licensing, or walled-garden dashboard. You own the raw data.

No separate compute charges: you pay only the events above.

Scrape company hiring signals with Python, JavaScript, or no code

You can run Hiring Velocity Signal API directly from the Apify Console (no code), or integrate it into your scripts.

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("zhorex/hiring-velocity-signal-api").call(run_input={
"companyDomains": ["stripe.com", "ramp.com", "linear.app"],
"lookbackDays": 30,
"includeRoleBreakdown": True,
"includeSeniorityMix": True,
"includeWeekOverWeekDelta": True,
"platforms": ["linkedin", "indeed"],
})
for signal in client.dataset(run["defaultDatasetId"]).iterate_items():
print(
f"{signal['companyDomain']:25s} "
f"score={signal['hiringSignalScore']:>5} "
f"new={signal['newJobsInPeriod']:>3} "
f"wow={signal['weekOverWeekDeltaPct']}% "
f"eng={signal['roleBreakdown']['engineering']} "
f"sales={signal['roleBreakdown']['sales']}"
)

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('zhorex/hiring-velocity-signal-api').call({
companyDomains: ['stripe.com', 'ramp.com', 'linear.app'],
lookbackDays: 30,
includeRoleBreakdown: true,
includeSeniorityMix: true,
includeWeekOverWeekDelta: true,
platforms: ['linkedin', 'indeed'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((s) => {
console.log(
`${s.companyDomain} score=${s.hiringSignalScore} ` +
`new=${s.newJobsInPeriod} wow=${s.weekOverWeekDeltaPct}%`
);
});

Scheduled / recurring runs (where PPE compounds)

The real value of this Actor is in scheduled refreshes, not one-off pulls. Use Apify Schedules with a cron expression:

  • 0 7 * * 1 — Monday at 7am for weekly SDR account-list refresh
  • 0 7 * * * — daily at 7am for hiring-spike alerts
  • 0 7 1 */3 * — quarterly at 7am for RevOps TAM scoring

Each scheduled run hits the same Actor with your saved input config, pushes to the same dataset, and bills every company signal it returns. Pair with a Zapier / Make / n8n webhook to push high-score records straight to Slack, Salesforce, HubSpot, Attio, or your data warehouse.

Example input

{
"companyDomains": ["stripe.com", "ramp.com", "linear.app"],
"lookbackDays": 30,
"includeRoleBreakdown": true,
"includeSeniorityMix": true,
"includeWeekOverWeekDelta": true,
"platforms": ["linkedin", "indeed"]
}

One list of domains, one call, signals back for every domain. Mix-and-match the four optional outputs to control cost — disabling the weekOverWeekDelta cuts each company's scrape time by ~40% (no second-window fetch) if you only need the snapshot.

Example output (one company-signal record)

{
"companyDomain": "stripe.com",
"companyName": "Stripe",
"linkedinCompanyUrl": "https://www.linkedin.com/company/stripe",
"indeedCompanyUrl": "https://www.indeed.com/cmp/Stripe",
"lookbackDays": 30,
"totalActiveJobs": 184,
"newJobsInPeriod": 47,
"weekOverWeekDeltaPct": 220.0,
"roleBreakdown": {
"engineering": 23,
"sales": 9,
"marketing": 4,
"product": 5,
"ops": 3,
"other": 3
},
"seniorityMix": {
"juniorPct": 4.3,
"midPct": 27.7,
"seniorPct": 53.2,
"executivePct": 14.8
},
"topJobTitles": [
"Senior Software Engineer",
"Account Executive",
"Senior Product Manager",
"Staff Engineer, Payments",
"Solutions Engineer"
],
"hiringSignalScore": 87.4,
"platformsQueried": ["linkedin", "indeed"],
"scrapedAt": "2026-05-17T10:00:00+00:00"
}

Reading: Stripe posted 47 new engineering-heavy senior-skewed jobs in the last 30 days, up 220% week-over-week. That's a sales trigger — they're in expansion mode, the average engineering-domain B2B SaaS sells well into companies in active expansion, and the seniority skew means decision-makers are getting hired right now.

Output schema reference

FieldTypeNotes
companyDomainstringEcho of input, normalized to bare hostname (stripe.com, not https://www.stripe.com)
companyNamestringBest-effort canonical company name from cross-platform mode
linkedinCompanyUrlstring | nullHeuristic company URL — null if the brandable label didn't resolve
indeedCompanyUrlstring | nullSame
lookbackDaysintEcho of input — useful when piping into a multi-window store
totalActiveJobsintDistinct currently-listed jobs across both platforms (deduplicated)
newJobsInPeriodintSubset of totalActiveJobs posted within lookbackDays
weekOverWeekDeltaPctfloat | null(current - previous) / previous × 100. null when previous-window count was 0 (delta undefined) or includeWeekOverWeekDelta=false
roleBreakdownobject{engineering, sales, marketing, product, ops, other} integer counts
seniorityMixobject{juniorPct, midPct, seniorPct, executivePct} percentages summing to ~100
topJobTitlesstring[]Top 5 most frequent job titles in the new-jobs window
hiringSignalScorefloat (0-100)Composite of velocity × delta × seniority × breadth
platformsQueriedstring[]Platforms requested for this record (a platform that timed out or returned no jobs is still listed)
scrapedAtISO 8601UTC timestamp when this record was aggregated
errorstring | absentOnly present on error records — values include invalid_domain, unresolved_label, no_jobs_found

What this Actor is NOT

  • Not a raw job scraper. This Actor returns a single aggregated record per company — counts, deltas, breakdowns. If you need the individual job postings (title, description, JD text, recruiter contact), use the dedicated LinkedIn Jobs + Recruiter Enrichment Actor instead.
  • Not a contact database. No employee names, no emails, no phone numbers.
  • Not a Cognism / PredictLeads replacement at enterprise scale. Cognism Elevate and PredictLeads Enterprise also bundle dialer integration, GDPR-cleansed contact data, SLAs, and dedicated success management. This Actor is the raw signal layer — bring your own CRM and alerting stack.
  • Not real-time streaming. Poll-based — LinkedIn and Indeed don't expose change feeds for company jobs. Daily / hourly cron is the right cadence.
  • Not a full ATS / Greenhouse / Lever export. Some companies surface roles only on their own ATS that never make it to LinkedIn / Indeed — this Actor will miss those.
  • Not a Glassdoor signal source (yet). Glassdoor headcount-change signal is on the roadmap — currently this Actor only covers LinkedIn + Indeed.

FAQ

How does this compare to PredictLeads?

The Hiring Velocity Signal API by Zhorex is an alternative for B2B SDR / RevOps teams that need company-level hiring intent signals without a $40/mo credit floor and without per-credit complexity. It aggregates LinkedIn + Indeed in one normalized output at $0.20 per company-signal. No subscription, no minimum spend, no annual contract. Pay only for the signals you actually pull.

How does this compare to Cognism for hiring intent data?

For the hiring-intent slice of Cognism Elevate ($37,498/year for 5 seats per Vendr's published enterprise contract data), this Actor returns a company-level signal built from LinkedIn + Indeed postings — new postings count, week-over-week velocity, role breakdown, seniority mix — at $0.20 per company. A typical 200-account weekly refresh costs ~$160/mo here vs ~$625/seat/month for the cheapest Cognism Elevate tier. You give up Cognism's dialer integration, GDPR-cleansed contact data, and managed-service layer — keep those if you need them, swap in this Actor for the signal layer.

How is this different from a raw LinkedIn / Indeed jobs scraper?

A raw scraper returns 1 record per job posting. This Actor returns 1 aggregated record per company — total active jobs, week-over-week delta, role breakdown, seniority mix, composite score. You skip the data-engineering job of pulling thousands of raw records, deduplicating across platforms, classifying titles into role buckets, computing window-over-window deltas, and rolling up to company-level. That's ~200 lines of Python + ongoing regex maintenance you don't have to write. The output is ready to join with your CRM on the companyDomain field.

How much does it cost to monitor hiring intent on 500 accounts weekly?

500 accounts × 4 weekly refreshes/mo = 2,000 signals/mo × $0.20 = $400/mo. Compared to PredictLeads Pro at ~$200+/mo (with a sunk $40/mo minimum) or Cognism Elevate at ~$625/seat/mo, you sit between the cheapest credit-based comparable and the enterprise tier — and you get the signal with no contract, no per-seat licensing, and no annual commit. Cancel by deleting the Apify schedule.

Is there an official LinkedIn or Indeed hiring-intent API?

No. LinkedIn's Talent Insights API is enterprise-only with five-figure-plus annual contracts. Indeed has no public hiring-intent API. This Actor reads public job listings on both platforms and returns normalized, pay-per-signal output.

Can the Actor handle large account lists?

Yes. The Actor batches companies with bounded concurrency (3 parallel by default) and a per-platform 60-second wall-clock budget so one slow platform never drags the whole batch. For 1,000+ account lists, split into multiple scheduled runs of ~200 accounts each.

What does the hiringSignalScore actually measure?

It's a 0-100 composite of four sub-signals: velocity (log-scaled new-jobs count, 0-40 pts), delta (week-over-week growth, 0-30 pts), seniority (share of senior + executive postings, 0-20 pts), and breadth (number of non-zero role buckets, 0-10 pts). Calibration: a flat-velocity 10-job company scores ~50; a 50-job +150% WoW senior-heavy 5-bucket company scores ~95. Sort your account list by this single field to surface the highest-intent accounts to your SDR team in seconds.

What does weekOverWeekDeltaPct mean exactly?

It compares the current lookback window (default 30 days) to the immediately preceding equivalent window (the prior 30 days). A value of +200 means the company posted 3x more jobs in the current window than in the previous one. A value of -50 means they posted half as many. null means the previous-period count was zero (delta undefined — the company has no baseline). For most use cases, anything above +100 is a strong hiring-spike trigger.

Can I scrape company hiring signals in Python?

Yes. Install the Apify Python client (pip install apify-client), then call zhorex/hiring-velocity-signal-api from any Python script — see the Python example above. Works identically in JavaScript / Node, Go, Ruby, or any language with HTTP — Apify exposes a REST API for every Actor.

Does this need LinkedIn or Indeed login credentials?

No. Without cookies the Actor reads the public job-discovery pages on both platforms. Optional cookieStrings are your own logged-in sessions; they raise recall on large batches, and you are responsible for each platform's terms when you use them. The field is encrypted at rest by Apify.

What if a domain doesn't resolve to a LinkedIn / Indeed company page?

The Actor logs the resolution failure and emits a record with error: "unresolved_label" (or "no_jobs_found" if the page resolved but contained no current postings). These records are not PPE-charged. Most-common cause: the company's brandable label doesn't match the heuristic — e.g. a company at acme.com whose LinkedIn page lives at linkedin.com/company/acme-international instead of linkedin.com/company/acme. For these edge cases, pre-resolve the LinkedIn slug manually, or open an Issue on this Actor's page to request explicit per-domain slug overrides.

Without cookies the Actor reads LinkedIn's public job-search pages and Indeed's public company-jobs pages; optional cookies are your own logged-in sessions. No login bypass, no scraping of private profiles or applicant data. Review your local laws and each platform's terms of service for your use case — you are responsible for how you use the Actor and its data.

Compliance posture

  • Only public job postings. No login bypass, no scraping of private content, no harvesting of applicant data, no recruiter PII enrichment, no personal email collection.
  • User-supplied cookies only. The optional cookieStrings field holds your own logged-in sessions, is encrypted at rest by Apify, and values are never logged.
  • No PII in output. The signal records contain only company-level aggregates. No individual employee names, no applicant data, no recruiter contact info.
  • Residential proxy recommended — datacenter proxies trip rate limits.
  • Buyers running this commercially are responsible for downstream compliance with their own jurisdiction's data laws.

Integrations & data export

The Actor integrates with your existing workflow tools:

  • Salesforce / HubSpot / Attio / Pipedrive — Map companyDomain and push hiringSignalScore as a custom field
  • Slack — Webhook on completed runs, or filter for hiringSignalScore > 80 records to alert the SDR team
  • Zapier / Make / n8n — Trigger downstream workflows on new high-score records
  • Snowflake / BigQuery / Postgres — Push to your data warehouse via the Apify dataset API or CSV export
  • REST API — Call the Actor programmatically from any language
  • Webhooks — Get notified when a scheduled run finishes
  • Data formats — Download as JSON, CSV, Excel, XML, or RSS

Roadmap

  • Glassdoor headcount-trend join — surface Glassdoor employee growth as a corroborating signal alongside hiring velocity
  • BuiltWith tech-stack join — combine hiring signal with tech-stack adoption for tighter SDR targeting (e.g. "companies hiring Salesforce admins right now")
  • Per-domain explicit LinkedIn / Indeed slug overrides — for the ~15% of company domains where the heuristic slug doesn't match
  • Wellfound / AngelList Talent integration — full coverage of early-stage / startup hiring (currently underrepresented by LinkedIn + Indeed)
  • Ashby / Greenhouse / Lever ATS direct API integrations — full coverage of companies that don't cross-post to LinkedIn / Indeed
  • Per-month historical trend output — surface the last 6 months of newJobsInPeriod as a time series for trend dashboards
  • Per-engineer-level seniority sub-classification — split senior into senior IC vs staff vs principal

Built on zhorex's B2B suite

This Actor complements the other B2B intelligence tools in the same suite:

If you need raw job listings (titles + descriptions + recruiter contact for direct outreach), use the LinkedIn Jobs + Recruiter Actor directly. This aggregator is for company-level hiring intent signals — the sales trigger layer, not the recruiter tool.

Support

Found a bug? Want a new field? Open an issue on the Actor page.


💡 Reviews, good or bad, help other users decide: leave a rating.


Built for B2B SDR Managers, RevOps Leads, VC analysts, M&A scouts, and sales-trigger newsletter operators who need hiring-intent signals without an annual contract.