B2B Buying Signals: Hiring + Tech Stack Intent for Clay
Pricing
from $76.50 / 1,000 results
B2B Buying Signals: Hiring + Tech Stack Intent for Clay
Combines GTM hiring signals and tech stack detection into one flat Clay-ready row with composite score, recommended action, and plain-English summary. Runs two sub-actors in a single call. Built for Clay enrichment and outbound qualification. MCP-ready for Claude Desktop and AI agents.
Pricing
from $76.50 / 1,000 results
Rating
0.0
(0)
Developer
Mamba Labs
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
0
Monthly active users
7 days ago
Last modified
Categories
Share
๐ก What can B2B Buying Signals Aggregator do?
Give it a company domain and it returns both GTM buying signals in one flat row: hiring intent and tech stack, merged, plus a composite score from 0 to 100, a recommended action and a plain-English summary.
It runs GTM Hiring Signal Scraper and Tech Stack Detector in parallel, merges both results, and adds the composite layer on top. No nested JSON, no second lookup, no glue code.
| ๐ฆ What you get | โ๏ธ Features and integrations |
|---|---|
๐ฏ composite_score, 0 to 100 from both signal sides๐ฆ recommended_action, prioritize, nurture or deprioritize๐ Plain-English gtm_signal_summary๐งพ 32 flat fields, both signals in one row | โก Both sources run in parallel ๐ Partial results by design, one side failing keeps the other ๐ Published score model, rebuild it yourself โฌ๏ธ Export to JSON, CSV, Excel, HTML or XML |
Bought by teams who want one qualification number per account rather than two rows to merge and a formula column to maintain.
๐ซ This actor does no fetching of its own. It is orchestration only: it calls the two sub-actors over the Apify API and merges what they return. That is also why there is no proxy setting here; the sub-actors handle their own network access.
๐ก Why use B2B Buying Signals Aggregator?
Running the two actors separately gives you two rows per company that you merge yourself. This gives you one row with everything merged, plus a composite score, a recommended next action and a summary the standalone actors do not produce.
| If you want | Read these fields |
|---|---|
| One number to sort your list by | composite_score |
| Three bands instead of a number | composite_signal, recommended_action |
| A sentence for a rep or an agent | gtm_signal_summary |
| The hiring side | gtm_hiring_signal, gtm_role_count, signal_strength, top_gtm_role |
| The tech stack side | crm_detected, seq_tool_detected, gtm_tool_count, the uses_* flags |
| Whether the row is complete | actor1_error, actor2_error |
๐ฏ How the composite score works, in full
composite_score is an integer from 0 to 100, built by adding points from both sides:
| Contribution | Points |
|---|---|
| GTM hiring signal present | 20 |
| Hiring signal strength | 20 for high, 10 for medium, 5 for low |
| Open GTM roles | 5 per role, capped at 20 |
| CRM detected | 15 |
| Sequencer detected | 10 |
| GTM tool count | 3 per tool, capped at 15 |
The total is capped at 100. composite_signal and recommended_action then fall out of it:
| Score | composite_signal | recommended_action |
|---|---|---|
| 60 to 100 | high | priority outreach |
| 30 to 59 | medium | nurture |
| 0 to 29 | low | deprioritize |
Filter on composite_score when you want your own cutoff, or on composite_signal when the three
bands are enough.
โถ๏ธ Ready-to-run examples
| Example | What it does |
|---|---|
| Score GTM Buying Signals 0 to 100 | Blend both signals into one composite score |
| One-Line Outreach Recommendation | Fast triage: prioritize, nurture or deprioritize |
| Generate an AI Lead Briefing | A 3 to 5 sentence agent-ready briefing |
| Combined Hiring and Tech Stack Enrichment | Both signals merged into one row |
| Fast Score Without the Summary | Scoring only, for high-volume passes |
๐ What data can B2B Buying Signals Aggregator extract?
32 fields per company, from three layers.
| Layer | Fields |
|---|---|
| Composite | composite_score, composite_signal, recommended_action, gtm_signal_summary |
| Hiring | gtm_hiring_signal, signal_strength, gtm_role_count, top_gtm_role, gtm_roles_detected, most_recent_posting_date, ats_platform, career_page_url |
| Tech stack | crm_detected, seq_tool_detected, marketing_automation_detected, gtm_tool_count, tech_stack_signal, and the uses_* flags for HubSpot, Salesforce, Clay, Apollo, Outreach, Gong, ZoomInfo, Drift, Intercom and Marketo |
| Run | company_domain, actor1_error, actor2_error, run_time_ms, run_date |
โ ๏ธ Partial results are expected behavior, not a fault. If one sub-actor fails, the other side still populates and the matching
actor1_errororactor2_errorflag is set. Check those flags first if a block of fields is null, because a failed side drags the composite score down exactly as if the signal were absent.
โ ๏ธ
falseandnullmean different things on every row.falseis a measurement: the actor looked and the answer was no.nullis the absence of one: the actor could not look. When something it needed fails, the row comes back withdegraded: true, a plain-languagedegradation_reason, and every field it could not measure set tonullrather than to a confidentfalseor0. Filter ondegradedbefore you trust a negative.
๐ ๏ธ How to score a company's buying signals
- Open the Input tab and put a bare domain in
company_domain. - Leave
include_summaryon unless you are running high volume and do not need the sentence. - Click Start.
- Sort by
composite_score, or filter onrecommended_action. - Check
actor1_errorandactor2_errorbefore trusting a low score.
๐งช Using it in Clay
Add an Apify enrichment column and map your domain column to company_domain. Every field is a
top-level key.
There is a prebuilt Clay table with the enrichment column and formula columns for composite score, recommended action and signal summary: open the template.
โก Running at volume
Set include_summary to false for a lighter, faster pass when you only need the score. Turn on
explain_mode when you want to see why a score came out where it did.
๐ต How much does it cost to score buying signals?
You are charged once per company scored.
| Plan | Per company | Per 1,000 companies |
|---|---|---|
| Free | $0.09 | $90.00 |
| Bronze | $0.0855 | $85.50 |
| Silver | $0.081 | $81.00 |
| Gold | $0.0765 | $76.50 |
There is also an Actor start event at $0.00005, charged once per run per GB of memory.
๐ณ This is an orchestrator, so the two sub-actors bill you as well. The price above is for this actor's merge and scoring layer. GTM Hiring Signal Scraper and Tech Stack Detector each charge their own per-domain event against the token that started the run, which is yours. Budget for all three, not just this one. Free Apify plans get 10 results per calendar month, resetting on the 1st; paid plans are unlimited.
๐งพ What a run really costs, measured end to end
A real run rather than an estimate. Measured 2026-08-12 on a single company.
| Charged to your Apify account | Cost |
|---|---|
| This actor, 1 company plus the start event | $0.0900 |
gtm-hiring-signal-scraper, $0.05 per company | $0.0501 |
gtm-tech-stack-signal-scraper, $0.015 per company | $0.0150 |
| Total for that run | $0.1552 |
The two sub-actors were 42% of that bill. The effective price was $0.155 per company, not the $0.09 in the table above.
Both sub-actors run on every company, because the score needs both signal sources to compute. There is no input that turns one off, so the ratio above is stable rather than input-dependent.
โจ๏ธ Input
Everything is on the Input tab.
| Field | Type | Default | What it does |
|---|---|---|---|
company_domain | string | required | Bare company domain. |
include_summary | boolean | true | Produce the plain-English summary. Off is faster at volume. |
explain_mode | boolean | false | Show how the composite score was arrived at. |
๐ค Output
One flat row per company, exportable as JSON, CSV, Excel, HTML or XML.
{"company_domain": "example.com","composite_score": 72,"composite_signal": "high","recommended_action": "priority outreach","gtm_signal_summary": "Example is hiring three AEs and an SDR, and runs HubSpot with Outreach. Strong pipeline investment underway.","gtm_hiring_signal": true,"signal_strength": "high","gtm_role_count": 4,"top_gtm_role": "Enterprise Account Executive","ats_platform": "greenhouse","career_page_url": "https://boards.greenhouse.io/example","crm_detected": true,"seq_tool_detected": true,"uses_hubspot": true,"uses_outreach": true,"gtm_tool_count": 3,"tech_stack_signal": "high","actor1_error": false,"actor2_error": false,"run_time_ms": 18420,"run_date": "2026-06-18T16:21:40.382Z"}
๐ก Tips
- Sort by
composite_scorerather than filtering oncomposite_signalwhen your list is large. The bands are coarse by design. - Always check
actor1_errorandactor2_errorbefore writing off a low scorer. A failed side looks identical to an absent signal in the score. - Drop
include_summaryfor bulk passes and turn it back on for the shortlist. - The score model is published above. If your ICP weights hiring more heavily than tooling, rebuild it from the raw fields, which are all on the row.
โ ๏ธ Known limits
Hiring detection covers Greenhouse, Lever and Ashby. Companies on other platforms return no hiring data, which reads as an absent signal rather than an error.
Tech stack detection reads public-facing scripts and network calls. Tools loaded server-side or behind an auth wall may not appear, and backend-only tools such as Clay leave no detectable signal at all.
A failed sub-actor lowers the composite score. The error flags exist so you can tell that apart from a genuinely quiet company. They are not decorative.
Sub-actor cold starts affect run time. Most runs finish in well under a minute, but a cold container can add a few seconds.
No proxy configuration here. This actor does no fetching of its own.
โ FAQ
Why should I use this instead of running both actors myself?
One row instead of two, plus a composite score, a recommended action and a summary the standalone actors do not produce. No column merging and no formula columns to maintain.
Why is a block of fields null?
One of the two sub-actors failed. actor1_error and actor2_error tell you which.
Can I change the scoring weights?
Not inside the actor, but the full model is published above and every raw field is on the row, so you can compute your own score downstream.
Does it cost more than running the two actors separately?
It costs this actor's fee plus both sub-actors' fees. What you buy for the extra is the merge, the score and the summary.
Is there a proxy setting?
No, and there is nothing this actor could use one for. The sub-actors handle their own network access.
๐งฉ Want other GTM data?
Mamba Labs builds custom actors for B2B go-to-market teams. The public versions of that work live here on the Store, so our users get the same tooling we build under contract.
Every actor in the suite takes a domain or a company and returns one flat row, so they stack in the same Clay table without reshaping anything.
๐ ๏ธ Need something custom built for you or your team? Tell us what you are trying to find and we will build it. Talk to Mamba Labs.
๐ Support
Found a bug or want a field added? Open an issue on the Issues tab. Response time is typically within 48 hours.
โน๏ธ Sourcing and legal. This actor fetches nothing itself. Hiring data comes from the public job board APIs of Greenhouse, Lever and Ashby; tech stack data comes from rendering the company's own public web pages. No personal data is collected: the output describes a company's hiring posture and its website's software, not people. You are responsible for how you use the output.
Built by Mamba Labs.