Intent Signal Aggregator avatar

Intent Signal Aggregator

Pricing

from $4.00 / 1,000 signal founds

Go to Apify Store
Intent Signal Aggregator

Intent Signal Aggregator

Is this company in-market right now? Combines public hiring activity (Greenhouse, Lever, Ashby) and recent news (funding, launches, partnerships) into one intent score per company. No login, no API keys, no proxies.

Pricing

from $4.00 / 1,000 signal founds

Rating

0.0

(0)

Developer

Tim Zinin

Tim Zinin

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Intent Signal Aggregator — Hiring + News Buying Signals

Is this company in-market right now? This Actor pulls two public, keyless buying-intent signals into one row per company — hiring activity and recent press coverage — and combines them into a single intent score. No login, no API keys, no proxies.

The problem

Sales and marketing teams pay $15,000+/year for intent-data platforms (Bombora, ZoomInfo Signals) to answer one question: is this account showing signs of budget movement? Most of that signal is sitting in public data — a company's own job board and its recent press coverage — you just have to pull and score it yourself.

What you get

  • 💼 Hiring signal (reused from company-hiring-radar) — open roles on Greenhouse/Lever/Ashby, broken down by sales/marketing/engineering headcount.
  • 📰 News signal — recent headlines (last 30 days) from Google News RSS, flagged for intent keywords (funding, launch, expansion, partnership, acquisition, new exec hires…).
  • 🎯 Combined intent score (0–100) and a plain-English list of the signals that drove it.
  • Honest source coverage. Every row says which of the two signals it actually managed to check — a source that timed out is never silently folded into the score as if it came back empty (see below).
  • Runs on Apify: schedule it, monitor it, call it from the API or the MCP server, export to JSON, CSV or Excel, or push results straight into your own pipeline.

Source coverage — partial data is never passed off as complete

Earlier runs scored whatever came back and stayed silent about the rest: if the news feed timed out, a company with genuine news momentum could score as "quiet" with no way to tell the difference from an actual zero-signal company. Every row now carries sourceCoverage and sourceErrors alongside the score:

  • sourceCoverage.hiring / sourceCoverage.news — one of ok (checked successfully), error (that source failed this run — timeout, rate limit, bad response) or not_requested (you didn't give a hiring token for this company).
  • sourceErrors.hiring / sourceErrors.news — the reason, when a source is error; null otherwise.

If every signal you asked for errors out, the row comes back found: false with intentScore: null and is not charged. If at least one signal came through, you get a real score and a real charge — but the row also tells you which half (if any) is missing, so a partial result never quietly reads as a complete one.

How to run it

  1. Click Try for free — no card needed on the free plan.
  2. Paste companies into Companies, one per line — an ATS token for hiring, a plain name for news, or Name|token for both.
  3. Press Start. Results appear in the dataset — read them in the UI, pull them from the API, or have a webhook push them onward.

Pricing

Pay-per-event: $0.005 per run start + $0.004 per result. No monthly seat, no minimum. 100 companies checked cost about $0.41; 1,000 about $4.01.

A company where every requested signal errored out is found: false and not billed. A genuine zero-signal company (both sources checked successfully, nothing found) is also found: false and free. You only pay when at least one signal actually came back — and even then, the row's sourceCoverage tells you if the other half is missing.

Input

FieldRequiredWhat it does
companiesyesOne entry per company. greenhouse:stripe / lever:x / ashby:y → hiring signal only. A plain name like Microsoft → news signal only. Name|greenhouse:token → both signals for the same company.
maxConcurrencynoHow many companies to check in parallel, 1–10 (default 4).
{
"companies": ["greenhouse:stripe", "Microsoft", "Ramp|ashby:ramp"],
"maxConcurrency": 4
}

Output

One dataset row per company. This is a real row from a real run (trimmed to the first few headlines):

{
"input": "Microsoft",
"companyName": "Microsoft",
"found": true,
"hiring": null,
"recentNews": [
{
"title": "Microsoft and Mistral expand strategic partnership to give enterprises and regulated industries frontier AI they can control - Microsoft Source",
"link": "https://news.google.com/rss/articles/CBMi_wFBVV95cUxOYXY2QVMzcXpqZGY5T3NmRl9BX3FQdWkybktodjNVQWxxTTFFSjhfcHFWdUVNRVlRUkNlWFNFT1hUa2pIQks0ek9DNGp5WFJ3VXROeVZDS1BMU3JGd0JNc3U3LTBJcUNIRHBELUM1UFBGcHdRWGNxdkJJbnU2bk5ZUFlLODFaY2xNaDhrMDFxUy02S3dCWFhtb2VxazZVdERlN3lDX1l6ZjdfVkwtUXM2N0JaaWQ4cGRtbkNWRXVqUEJEdS1WbVRBalZVeWZLLUVMZms2am5mdDBDYnJoNThMUTZwbWUyUUdMRUhMM0tPNUIzN3pXc2s2eTNZWWtjeDA?oc=5",
"pubDate": "2026-07-21T12:38:22.000Z"
},
{
"title": "Improving Windows Search Box, with less clutter and more control - Windows Blog",
"link": "https://news.google.com/rss/articles/CBMiuAFBVV95cUxQZm9YZTFTVkQ1SlZTelNUc1doVzdESkE0WFQ1Z2lDVnJrTzYtTEdBZlNhYkR4SzNtaXhfTmR1X19VaDFzV3Z4UVRCN05ITTJIUGFBUzZqQnRyNi00MWJtTGFic0Z6clpJQUFPT21yX3FOb2ktRGZGVmpLbGZMX3FENm8yOWtFVVllVGktUXc4RjJONFV3azBXeTZVWTJnUlNzLUpHSU53WUM2ZjZDMVdTWWVoSERGUHBV?oc=5",
"pubDate": "2026-07-13T07:00:00.000Z"
},
"… 13 more headlines, same shape"
],
"intentSignals": [
"news: \"Microsoft and Mistral expand strategic partnership to give enterprises and regulated industries frontier AI they can control - Microsoft Source\" (partnership)",
"news: \"Microsoft expands Azure AI and HPC infrastructure with AMD - The Official Microsoft Blog\" (expands)",
"news: \"Databricks and Microsoft expand partnership to help enterprises bring business context to enterprise AI - Microsoft Source\" (partnership)"
],
"intentScore": 30,
"sourceCoverage": {
"hiring": "not_requested",
"news": "ok"
},
"sourceErrors": {
"hiring": null,
"news": null
},
"summary": "Microsoft — 15 recent headline(s), intent score 30/100.",
"checkedAt": "2026-07-26T13:19:32.328Z"
}
FieldWhat it means
foundWhether any signal was found — false means not billed
hiring{provider, openRoles, salesHiring, marketingHiring, engineeringHiring} or null if no ATS token was given, or none was found
recentNewsUp to 15 headlines from the last 30 days, each {title, link, pubDate}
intentSignalsHuman-readable list of what drove the score
intentScore0–100, combining hiring volume/function mix and intent-keyword news hits; null when no signal could be verified at all
sourceCoverage{hiring, news}, each ok / error / not_requested — for this "Microsoft" row (no ATS token given, news fetched cleanly) that reads {"hiring": "not_requested", "news": "ok"}
sourceErrors{hiring, news} — the failure reason when sourceCoverage says error, null otherwise
summaryOne-liner

Need the rest of the picture?

These run on the same account, take the same shape of input and bill the same way, so they slot into an existing pipeline without new plumbing.

ActorWhat it does
B2B Lead EnricherTurn a list of company websites into sales-qualified lead cards: detected tech stack, a rough revenue…
Company Hiring RadarPull every open role a company is hiring for from its public job board (Greenhouse, Lever, Ashby) and turn…
Company Profile LookupTurn a domain or company name into one unified company card: website tech stack (CMS, ecommerce, key tech)…
Company Registry EnricherTurn a company name, LEI or UK company number into an official registry card: legal name, status,…
Website Tech Stack DetectorDetect the technologies a website runs — CMS, ecommerce platform, analytics, marketing/CRM, JS framework,…

FAQ

Does it need an API key / login? No. Greenhouse, Lever and Ashby expose public unauthenticated job-board APIs; Google News RSS is a public feed. No credentials anywhere.

How fresh is the data? Hiring is live at request time. News covers the last 30 days from Google News' index.

What if a company has no ATS board and no recent news? You get found: false and intentScore: 0 with sourceCoverage showing both sources as ok — genuinely nothing to build a signal from, not a source failure.

What if my hiring or news source times out? The row still returns whatever the other source found (and is billed for it), but sourceCoverage marks the failed side error with a reason in sourceErrors — the score never pretends to be based on both signals when it isn't.

Can I call it from an AI agent? Yes — it's a standard Apify Actor, callable via the Apify API or the Apify MCP server.

What this is NOT. It is not a paid intent-data feed with proprietary co-op data (Bombora-style) — both signals here are public and keyless, which is also why they're cheap. It does not infer intent from anything private.

Found a wrong result, or need a signal we don't track? Open an issue on this Actor's page.


Built by zinin. Questions? Telegram @timzinin.