Company Change-Event Feed - GTM Signal Delta Tracker
Pricing
from $51.00 / 1,000 results
Company Change-Event Feed - GTM Signal Delta Tracker
Detects what changed at a company across hiring, tech stack, funding, firmographics, and social. Returns only the deltas as typed change events in flat, Clay-ready JSON for RevOps and outbound.
Pricing
from $51.00 / 1,000 results
Rating
0.0
(0)
Developer
Mamba Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
Categories
Share
Company Change-Event Feed monitors a company domain for changes across hiring, tech stack, funding, firmographics, and social presence, then diffs the current state against your last run and returns only what changed as typed change events. Flat, Clay-ready JSON, one row per company, built for RevOps teams, outbound agencies, Clay users, and AI agents that need delta intelligence on target accounts.
It is an orchestrator: it does no scraping of its own. It calls fleet sub-actors, normalizes their output into one company state, stores a per-domain snapshot, and on the next run returns the deltas. The first run for a domain records a clean baseline (no changes); every run after that returns the change events since the prior snapshot.
Features
- Only the deltas. After a baseline run, you get a list of typed change events, not a full re-dump. Each event carries old_value, new_value, severity, confidence, and the immutable Actor ID of the source that produced it.
- Five GTM signal sources in one row. Hiring activity, tech stack, funding and press, firmographics, and social presence, normalized into one unified change-event schema.
- Temporal diff with a bounded snapshot. The actor keeps a per-domain snapshot of latest state and diffs against it. The snapshot is returned in the output so you can also store it yourself and pass it back via
previous_snapshot. - Partial-failure safe. Each source is isolated. If one sub-actor errors or times out, the others still produce events, the failed source is marked
degraded, and its prior state is carried forward (so a missed fetch never looks like a removal). - Severity and confidence on every event. Prioritize high-severity buying signals (CRM adoption, hiring ramps, funding) over low-severity noise (follower drift, HQ relocation).
- Clay-native and batch-ready. One row per company, flat top-level scalars, single
domaininput for per-row enrichment, hiddendomains[]for batch.
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
domain | string | yes | stripe.com (prefill) | Company domain to monitor, without https or www. Main input for single-company and Clay per-row use. |
company_name | string | no | (none) | Optional search hint when the domain does not match the brand name. Single-company runs only. |
domains | array | no | (none) | Batch list of domains. Overrides domain when set. Hidden from the Store form; for API and Clay batch use. |
previous_snapshot | object | no | (none) | A snapshot object from a prior run, used as the baseline instead of stored state. Single-company runs only; ignored in batch mode. |
sub_actor_timeout_secs | integer | no | 90 | Per-child run timeout in seconds (5 to 300). Children run in parallel, so wall time is about the slowest child. Hidden. |
Output
One row per company. changes[] is the primary array. source_status and snapshot are structured fields (see Clay Compatibility).
| Field | Type | Description | Example |
|---|---|---|---|
company_domain | string | Normalized input domain | stripe.com |
company_name | string | Resolved company name | Stripe |
run_date | string | ISO timestamp of this run | 2026-06-21T00:00:00Z |
is_baseline | boolean | True on the first run for a domain (no prior snapshot) | false |
total_changes | number | Number of change events this run | 3 |
has_high_severity | boolean | True if any change is high severity | true |
latest_change_date | string | Most recent date across the change events | 2026-06-28T00:00:00Z |
changes | array | Typed change-event objects (see below) | see below |
source_status | object | Per-source status: ok, degraded, or skipped | {"hiring":"ok",...} |
snapshot | object | Current full state, for next-run comparison or external storage | (opaque blob) |
Each object in changes[]:
| Field | Type | Description | Example |
|---|---|---|---|
event_type | string | One of the 13 event types below | hiring_ramp |
company_domain | string | The company this event belongs to | stripe.com |
date | string | Event date (funding) or run date (field diffs) | 2026-06-28T00:00:00Z |
description | string | Human-readable summary | GTM hiring roles increased from 5 to 9. |
severity | string | high, medium, or low | high |
source_actor | string | Immutable Actor ID of the source sub-actor | D7O1SA2EqwHGsGr1P |
old_value | any | Prior value (null for newly detected) | 5 |
new_value | any | Current value | 9 |
confidence | string | high, medium, or low | high |
event_type values: hiring_ramp, hiring_decline, tech_stack_added, tech_stack_removed, funding_detected, revenue_change, headcount_change, industry_change, social_change, exec_move, product_launch, acquisition, other.
Pricing
This actor charges a flat orchestrator fee per company. Because it calls sub-actors on your account, you also pay each sub-actor's own pay-per-event fee (pass-through). The table below is the orchestrator fee with Store discount tiers.
| Tier | Discount | Per result | Per 1K results |
|---|---|---|---|
| Free (no plan) | 0% | $0.060 | $60.00 |
| Starter (Bronze) | ~5% | $0.057 | $57.00 |
| Scale (Silver) | ~10% | $0.054 | $54.00 |
| Business (Gold) | ~15% | $0.051 | $51.00 |
Actor start event: $0.00005 (flat, negligible). Free tier: 25 results per month included.
All-in cost per company
All five sources are active. Your all-in cost per company is the orchestrator fee plus the sub-actor pass-through:
| Component | Cost |
|---|---|
| GTM Hiring Signal Scraper (pass-through) | $0.050 |
| GTM Tech Stack Signal Enrichment (pass-through) | $0.015 |
| Company Firmographic Enricher (pass-through) | $0.004 |
| Company Social Presence Mapper (pass-through) | $0.015 |
| Funding & Press Signal Scanner (pass-through) | $0.030 |
| Sub-actor pass-through total | $0.114 |
| Orchestrator fee (this actor) | $0.060 |
| All-in per company | ~$0.174 |
Each sub-actor pass-through is independently subject to your own Store discount tier on that actor, so paid plans pay less than the figures above.
Usage Examples
Apify Console / API
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });// First run records a baseline (changes is empty). Run again later for deltas.const run = await client.actor('company-change-event-feed').call({domain: 'stripe.com',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0].is_baseline, items[0].total_changes, items[0].changes);
Clay Integration
- Add an enrichment column and select this actor (or call it via the HTTP API / Apify integration).
- Map your domain column to the
domaininput. - Run once to seed the baseline, then run on your schedule (for example weekly). Each later run returns only what changed.
- Map output columns:
total_changes,has_high_severity,latest_change_date, and thechangesarray. Usehas_high_severityas a trigger for change-driven plays. - Leave
snapshotunmapped (see Clay Compatibility); it is internal delta state.
MCP Integration
An MCP wrapper is published separately so AI agents can call this actor as a tool. See the Mamba Labs suite listing for the npm package and configuration.
Clay Compatibility
This actor follows the fleet's flat, one-row-per-company rule for all scalar fields, with three deliberate structured fields:
changes[]is the primary structured array and the field you map in Clay. Each element is a flat change-event object (event_type, severity, old_value, new_value, source_actor, confidence). Expand or iterate it in Clay to drive change-triggered workflows.source_statusis a flat five-key status lookup (hiring,tech_stack,firmographic,funding,social), each set took,degraded, orskipped. Read it to know which sources were live on a given run.snapshotis an opaque passthrough blob used only for delta tracking on the next run. It is not intended for direct Clay column mapping. Map the top-level scalar fields and thechanges[]array, not the snapshot object.
If you store snapshots outside Apify, capture the snapshot field and pass it back as previous_snapshot on the next single-company run.
Error Handling
| Condition | Behavior | Output |
|---|---|---|
| One sub-actor errors or times out | Isolated; logged with context; others continue | source_status.<source> = "degraded"; prior section carried forward; no false events |
| First run for a domain | State recorded, no diff | is_baseline = true, changes = [], snapshot populated |
| All sub-actors fail | Valid empty row still pushed | buildEmptyRecord, all sources degraded |
| Free-tier monthly cap reached | Graceful exit, no charge | Run logs the cap and stops |
| No valid domain provided | Warns and exits | No rows |
| Snapshot store outage | Fail open: treated as a baseline run | Run proceeds, logged |
Limitations
- Run duration (orchestrator subclass). This actor waits on up to five sub-actors running in parallel, so a typical run is about 60 to 180 seconds, longer than a single-source actor. For a quick test, lower
sub_actor_timeout_secs. This is expected for an orchestrator and does not indicate a fault. - Free-plan sub-actors. If you are on the free Apify plan, a sub-actor may hit its own monthly free-tier cap and return no data; that source is reported as
degradedrather than silently empty. - Social removals are not emitted. Social profile detection is noisy, so a profile that disappears between runs is not reported as a removal (only new profiles and significant follower swings are emitted).
- Snapshot is latest-state only. The snapshot holds current state plus the most recent funding event keys (bounded), not full history. It is sized for next-run diffing, not as an archive.
previous_snapshotis single-company only. It is ignored in batch (domains[]) mode, where per-domain stored snapshots are used.
Part of the Mamba Labs GTM Intelligence Suite
| Actor | Actor ID |
|---|---|
| GTM Hiring Signal Scraper | D7O1SA2EqwHGsGr1P |
| GTM Tech Stack Signal Enrichment | qyd7nNyqFPelQViBx |
| GTM Signals Aggregator | xKdRfnfFNkdMpFuNs |
| Job Board Keyword Signal Scanner | 4DvqpvhMR74NLcDDY |
| Domain to LinkedIn URL Resolver | 3HtnSaqPHOg1Qg5gx |
| ICP Fit Scorer | W161DT8W4kW55dMFh |
| Company Firmographic Enricher | YlUtLWjfPpqykmB8g |
| Company Social Presence Mapper | 4k6CCemkgBDz18m2h |
| Funding & Press Signal Scanner | FS13X6dhQVgX3XOM6 |
| Company Change-Event Feed - GTM Signal Delta Tracker | (this actor; ID assigned at publish) |
npm: @mambalabsdev/ats-scrapers
Built by Mamba Labs.