GTM Signals Aggregator avatar

GTM Signals Aggregator

Pricing

from $90.00 / 1,000 results

Go to Apify Store
GTM Signals Aggregator

GTM Signals Aggregator

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 $90.00 / 1,000 results

Rating

0.0

(0)

Developer

Mamba Labs

Mamba Labs

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

2

Monthly active users

3 days ago

Last modified

Share

One call, both GTM signals. Hiring intent plus tech stack in a single flat row, ready to drop into Clay.

Give this actor a company domain. It runs GTM Hiring Signal Scraper and GTM Tech Stack Signal Enrichment in parallel over the Apify API, merges both results into one flat row, and adds a composite signal score plus a plain-English summary on top. No nested JSON, no second lookup, no glue code.


What's New

  • Free tier monthly cap. Free Apify-plan users get 10 results per calendar month (resets on the 1st); any paid plan is unlimited. See "Free tier vs paid usage" under Pricing. Upgrade for unlimited: https://apify.com/pricing
  • Pricing reduced. $0.09 per result, down from $0.12. No subscription, no contract.
  • Clay table template available. Pre-built table with the enrichment column and formula columns for composite score, recommended action, and signal summary. Open the template →

One call, both signals

This actor is for teams who want hiring and tech stack signals merged into one row with a composite score. If you only need one signal type, call that actor directly:

This actor runs both in parallel, merges the output into one flat row, and adds three fields the standalone actors do not produce: composite_score (0-100), recommended_action (priority outreach / nurture / deprioritize), and gtm_signal_summary (plain-English briefing). One API call, one row, no glue code.

Why use this instead of running both actors separately

Convenience and the composite layer. Running Actor 1 and Actor 2 separately gives you two rows per company that you merge yourself in Clay. This actor gives you one row with everything merged, plus a composite score, a recommended next action, and a plain-English summary that the standalone actors do not produce. No column merging, no formula columns to maintain, no integration code.


Input

FieldTypeRequiredNotes
company_domainStringYesBare domain, for example stripe.com. The actor strips https://, www., and any trailing path for you.
include_summaryBooleanNoInclude the plain-English gtm_signal_summary field. Default: true.
explain_modeBooleanNoSwitch gtm_signal_summary from a short summary to a 3 to 5 sentence agent briefing. Default: false.

Example input:

{
"company_domain": "stripe.com",
"include_summary": true,
"explain_mode": false
}

Output

One flat row per domain. All 32 fields are present in every row, including error rows. Missing values are null, never absent. No nested objects, so every field maps straight to a Clay column.

Composite fields (added by this actor)

FieldTypeDescription
company_domainStringThe normalized domain, echoed from input.
composite_signalStringhigh, medium, or low. Derived from composite_score.
composite_scoreIntegerNumeric signal score from 0 to 100. See the scoring section below.
recommended_actionStringpriority outreach, nurture, or deprioritize. Derived from composite_score.
gtm_signal_summaryStringPlain-English read on the combined signals. A 1 to 2 sentence summary by default, or a 3 to 5 sentence briefing when explain_mode is true. Null when include_summary is false.

Hiring signal fields (from GTM Hiring Signal Scraper)

FieldTypeDescription
gtm_hiring_signalBooleanTrue if any GTM role is detected.
signal_strengthStringHiring signal strength: high, medium, or low.
gtm_role_countIntegerNumber of open GTM roles detected.
top_gtm_roleStringHighest-tier role found.
gtm_roles_detectedStringComma-separated list of the role categories matched.
most_recent_posting_dateStringISO date of the most recent GTM posting, or null if not available.
ats_platformStringgreenhouse, lever, ashby, workday, rippling, or none.
career_page_urlStringDirect link to the detected career page.

Tech stack fields (from GTM Tech Stack Signal Enrichment)

FieldTypeDescription
crm_detectedStringhubspot, salesforce, pipedrive, zoho, or none.
seq_tool_detectedStringoutreach, salesloft, apollo, instantly, lemlist, reply, or none.
uses_hubspotBooleanHubSpot detected.
uses_salesforceBooleanSalesforce detected.
uses_clayBooleanClay detected.
uses_apolloBooleanApollo detected.
uses_outreachBooleanOutreach detected.
uses_gongBooleanGong detected.
uses_zoominfoBooleanZoomInfo detected.
uses_driftBooleanDrift detected.
uses_intercomBooleanIntercom detected.
uses_marketoBooleanMarketo detected.
marketing_automation_detectedStringmarketo, pardot, hubspot, eloqua, or none.
gtm_tool_countIntegerCount of distinct GTM tools detected.
tech_stack_signalStringTech stack signal strength: high, medium, or low.

Run metadata

FieldTypeDescription
actor1_errorBooleanTrue if the hiring signal scraper failed. Tech stack fields still populate.
actor2_errorBooleanTrue if the tech stack actor failed. Hiring fields still populate.
run_time_msIntegerWall-clock milliseconds from the start of processing to the dataset push.
run_dateStringISO timestamp of the run.

How the composite score works

composite_score is an integer from 0 to 100, built by adding points from both signal sides:

  • GTM hiring signal present: 20 points.
  • Hiring signal strength: 20 points for high, 10 for medium, 5 for low.
  • Open GTM roles: 5 points per role, capped at 20.
  • CRM detected (anything other than none): 15 points.
  • Sequencer detected (anything other than none): 10 points.
  • GTM tool count: 3 points per tool, capped at 15.

The total is capped at 100. composite_signal and recommended_action then fall out of the score:

Scorecomposite_signalrecommended_action
60 to 100highpriority outreach
30 to 59mediumnurture
0 to 29lowdeprioritize

Filter on composite_score in Clay when you want to set your own cutoff, or on composite_signal when the three bands are enough.


Sample output

A real run against stripe.com:

{
"company_domain": "stripe.com",
"composite_signal": "high",
"composite_score": 60,
"recommended_action": "priority outreach",
"gtm_signal_summary": "Actively hiring GTM roles (159 open, top: UAE Chief Risk Officer and Compliance and Money Laundering Reporting Officer (CRO/COMLRO)). Strong buying signal.",
"gtm_hiring_signal": true,
"signal_strength": "high",
"gtm_role_count": 159,
"top_gtm_role": "UAE Chief Risk Officer and Compliance and Money Laundering Reporting Officer (CRO/COMLRO)",
"gtm_roles_detected": "AE, GTMEngineering, Partnerships, BizDev, CS, Growth, SalesManager, HeadOfRevenue, HeadOfSales, SDR, AM, CRO",
"most_recent_posting_date": null,
"ats_platform": "greenhouse",
"career_page_url": "https://boards.greenhouse.io/stripe",
"crm_detected": "none",
"seq_tool_detected": "none",
"uses_hubspot": false,
"uses_salesforce": false,
"uses_clay": false,
"uses_apollo": false,
"uses_outreach": false,
"uses_gong": false,
"uses_zoominfo": false,
"uses_drift": false,
"uses_intercom": false,
"uses_marketo": false,
"marketing_automation_detected": "none",
"gtm_tool_count": 0,
"tech_stack_signal": "low",
"actor1_error": false,
"actor2_error": false,
"run_time_ms": 12610,
"run_date": "2026-05-27T10:23:38.601Z"
}

Use with MCP (AI Agents)

This actor is callable as a tool over MCP (Model Context Protocol) by AI clients like Claude Desktop, Cursor, VS Code (GitHub Copilot), Windsurf, and any other MCP-compatible client. Apify hosts the MCP server at mcp.apify.com, so no custom server code is needed.

What this actor does in an MCP context

This is the one-call GTM signal aggregator. A single tool call returns hiring intent and tech stack data merged into one flat row, along with a composite score and a plain-English summary your agent can drop straight into a prompt. Use it when you want a complete GTM profile in one shot instead of calling the per-signal scrapers and stitching the output together.

Example prompts:

  • "Give me a full GTM signal profile for stripe.com."
  • "Score this company's GTM activity across hiring and tech stack and recommend a next action."
  • "Run a complete GTM audit on hubspot.com and summarize the buying signals in two sentences."

Supported MCP clients

Claude Desktop, Cursor, VS Code (GitHub Copilot), Windsurf, and any MCP-compatible client.

Add this entry to your MCP client config. The OAuth variant prompts you to authorize on first connect, so no token sits in your config file.

OAuth (recommended):

{
"mcpServers": {
"mamba-labs-gtm-aggregator": {
"url": "https://mcp.apify.com?tools=mambalabs/gtm-signals-aggregator"
}
}
}

Bearer token:

{
"mcpServers": {
"mamba-labs-gtm-aggregator": {
"url": "https://mcp.apify.com?tools=mambalabs/gtm-signals-aggregator",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}

Setup: Full Mamba Labs GTM Suite

Load all 6 Mamba Labs GTM actors as tools in a single MCP server entry.

OAuth:

{
"mcpServers": {
"mamba-labs-gtm-suite": {
"url": "https://mcp.apify.com?tools=mambalabs/gtm-hiring-signal-scraper,mambalabs/gtm-tech-stack-signal-scraper,mambalabs/gtm-signals-aggregator,mambalabs/job-board-keyword-signal-scanner,mambalabs/domain-to-linkedin-url-resolver,mambalabs/icp-fit-scorer"
}
}
}

Bearer token:

{
"mcpServers": {
"mamba-labs-gtm-suite": {
"url": "https://mcp.apify.com?tools=mambalabs/gtm-hiring-signal-scraper,mambalabs/gtm-tech-stack-signal-scraper,mambalabs/gtm-signals-aggregator,mambalabs/job-board-keyword-signal-scanner,mambalabs/domain-to-linkedin-url-resolver,mambalabs/icp-fit-scorer",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}

Setup: Local server (for development and testing)

npx @apify/actors-mcp-server --tools mambalabs/gtm-signals-aggregator

Full suite:

npx @apify/actors-mcp-server --tools mambalabs/gtm-hiring-signal-scraper,mambalabs/gtm-tech-stack-signal-scraper,mambalabs/gtm-signals-aggregator,mambalabs/job-board-keyword-signal-scanner,mambalabs/domain-to-linkedin-url-resolver,mambalabs/icp-fit-scorer

What the output looks like

Flat JSON, one row per domain, no nested objects, typically under 2KB. The 32 fields combine hiring signals from Actor 1 with tech stack detection from Actor 2 plus a composite layer on top. Most important fields for an agent:

  • composite_signal (high, medium, or low)
  • composite_score (0 to 100)
  • recommended_action (priority outreach, nurture, or deprioritize)
  • gtm_signal_summary (plain-English read on the combined signals)
  • gtm_hiring_signal and gtm_role_count (hiring side)
  • crm_detected and seq_tool_detected (tech stack side)
  • tech_stack_signal (high, medium, or low)

Set explain_mode to true and gtm_signal_summary switches from a 1 to 2 sentence summary to a 3 to 5 sentence briefing you can pass straight to your model as lead context.

Billing

MCP runs use the same pay-per-event pricing as direct API or Console runs. Each successful result costs $0.09.

Notes

This actor orchestrates Actor 1 (hiring signals) and Actor 2 (tech stack detection) internally. A single call returns the combined GTM signal profile. Typical run time 10 to 30 seconds; if your MCP client shows a loading indicator, that is normal. You do not need to call Actors 1 and 2 separately when using this aggregator.

Part of the Mamba Labs GTM Suite

This actor is part of the Mamba Labs GTM Suite. See all 6 actors at https://apify.com/mambalabs


Clay Table Template

A pre-built Clay table template is available with the enrichment column, formula columns, and views ready to use.

Open the Clay template →

The template includes:

  • A Run Apify Actor enrichment column wired to mambalabs/gtm-signals-aggregator
  • Formula columns for composite_signal, composite_score, recommended_action, and gtm_signal_summary
  • Both hiring and tech stack output fields mapped to named columns

Manual setup

Add this actor as an HTTP API enrichment column in any Clay table.

  1. In your Clay table, click Add Enrichment, then choose HTTP API.
  2. Set the method to POST.
  3. Set the URL to https://api.apify.com/v2/acts/mambalabs~gtm-signals-aggregator/run-sync-get-dataset-items?token=YOUR_TOKEN, with your own Apify token.
  4. Set the body to:
{
"company_domain": "{{domain}}"
}
  1. The endpoint returns an array with one result row. Map the fields you want to columns, for example composite_signal, composite_score, recommended_action, and gtm_signal_summary.

Each row costs $0.09 and returns all 32 fields. No prompt to write, no AI credits to burn, and the output shape is the same on every row, so your column mappings never break.


Pricing

$0.09 per result. Pay per event, billed per domain processed. No subscription, no seat license, no contract.

VolumeCost
100 domains$9.00
1,000 domains$90.00
10,000 domains$900.00

We recently reduced pricing across the Mamba Labs actor suite to bring more value to GTM teams running enrichment at scale.

This actor calls GTM Hiring Signal Scraper and GTM Tech Stack Signal Enrichment internally. You pay one price ($0.09) and get both signal sets plus a composite score and plain-English summary that the standalone actors do not produce.

How that compares:

  • A Claygent column that researches tech stack typically burns 3 to 5 credits per row, roughly $0.015 to $0.025 on Clay's standard plan, and needs a custom prompt that you maintain. This actor returns structured, consistent fields with no prompt to write and no column merging.
  • BuiltWith and ZoomInfo sell tech stack and company data on subscription plans billed per seat or per tier. This actor is pay-per-result, so you can enrich a 50-row list or a 50,000-row list and pay only for the rows you run. Output is structured, consistent, and ready to drop into Clay with no column merging.

All figures are list prices at the time of writing. Third-party pricing changes; check each vendor for current numbers.

Free tier vs paid usage

PlanLimit
Free Apify plan10 results per calendar month (resets on the 1st)
Any paid Apify planUnlimited results, no cap

Free-plan usage is counted cumulatively across all of your runs in a month, not per run, so single-domain Clay runs and larger batches both draw from the same monthly allowance. How it behaves when you hit the limit:

  • Within the monthly allowance: every submitted domain is processed normally.
  • A run that crosses the limit: the remaining allowance is delivered, then one final notice row explains the cap and how to upgrade. The run still finishes successfully.
  • Already at the limit: the run exits immediately with no results and no sub-actor calls, and an upgrade message in the run status. Upgrade for unlimited: https://apify.com/pricing

Sub-actor cap interaction (specific to this aggregator): Because this aggregator runs the Hiring Signal and Tech Stack actors as child actor runs under your account, those child runs also count against those actors' own free-tier monthly caps. A free-plan user's aggregator runs therefore also draw down their standalone Hiring Signal and Tech Stack allowances. This is expected.


Known Limitations

  • No proxy configuration. This actor is orchestration only. It calls the two sub-actors over the Apify API and does no fetching of its own, so there is no proxy setting to configure here. The sub-actors handle their own network access.
  • Hiring detection covers Greenhouse, Lever, Ashby, Workday, and Rippling. Companies on iCIMS or other platforms return no hiring data.
  • Tech stack detection reads public-facing scripts and network calls. Tools loaded server-side or behind an auth wall may not appear.
  • Partial results are expected behavior. If one sub-actor fails, the other side still populates and the matching actor1_error or actor2_error flag is set to true. Check those flags first if a block of fields is null.
  • Sub-actor cold starts affect total run time. Most runs finish in well under a minute, but a cold container can add a few seconds.

Issues and Feature Requests

Found a bug or want to request a feature? Open an issue in the Issues tab above. Response time: typically within 48 hours.

All Mamba Labs actors output flat, Clay-ready JSON. Use them together or individually.

  • GTM Hiring Signal Scraper, $0.05/result. Detects GTM hiring activity on Greenhouse, Lever, and Ashby. Returns role counts, signal tags, and velocity tracking.
  • GTM Tech Stack Signal Enrichment, $0.015/result. Detects CRM, sequencer, and marketing automation from a company's public-facing scripts. Flat boolean output.
  • Job Board Keyword Signal Scanner, $0.05/result. Scans Greenhouse, Lever, Ashby, Workday, and Rippling for any role category you define. GTM, Engineering, Finance, or custom keywords.
  • Domain to LinkedIn URL Resolver, $0.006/result. Resolves company domains to LinkedIn URLs with confidence scoring, firmographics, and social links in one flat row.
  • ICP Fit Scorer, $0.05/result. Scores companies against your ICP using weighted signals. Returns icp_score 0-100, icp_tier A-D, and per-signal breakdown.

Built by Mamba Labs