Company Change Event Feed avatar

Company Change Event Feed

Pricing

from $8.50 / 1,000 results

Go to Apify Store
Company Change Event Feed

Company Change Event Feed

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

Rating

0.0

(0)

Developer

Mamba Labs

Mamba Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

20 hours ago

Last modified

Features

Limited permissions

Share

What's new (October 2026)

  • One funded and hiring trigger. A new event_type value, funded_and_hiring, fires when the company has a funding round dated within the last 180 days and its GTM hiring roles rose since the last run. It arrives beside the funding_detected and hiring_ramp events it combines, never instead of them. On by default with the funding and hiring sources; no new request.

No price change. Existing fields and saved inputs work as before.

🔄 What can Company Change-Event Feed do?

Give it a company domain and it returns only what changed since your last run: typed change events across hiring, tech stack, funding, firmographics and social presence. One flat row per company.

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.

📦 What you get⚙️ Features and integrations
🔄 Only the deltas, not a full re-dump
🚦 Severity and confidence on every event
🔍 old_value and new_value plus the source Actor ID
🧾 15 fields, one row per company
📡 Five GTM signal sources in one row
🛟 Partial-failure safe, a dead source never reads as a removal
💾 Snapshot returned to you, or stored per domain
⬇️ Export to JSON, CSV, Excel, HTML or XML

Bought by RevOps teams, outbound agencies and agent builders who need delta intelligence on target accounts rather than a fresh full profile every month.

🚫 The first run for a domain is a baseline and returns no changes. That is not a fault. It records the state to diff against. Every run after that returns the change events since the prior snapshot.

💡 Why use Company Change-Event Feed?

If you wantRead these fields
A trigger worth acting on todayhas_high_severity, changes
Whether anything happened at alltotal_changes, is_baseline
Recencylatest_change_date
Whether the run was completesource_status
To hold the state yourselfsnapshot

🛟 A missed fetch never looks like a removal

Each source is isolated. If one sub-actor errors or times out, the others still produce events, the failed source is marked degraded in source_status, and its prior state is carried forward.

This is the difference between a delta feed you can automate against and one you cannot. Without it, a sub-actor timing out would emit "removed their CRM" and fire an alert on a company that changed nothing.

Read source_status before you act on an absence.

▶️ Ready-to-run examples

ExampleWhat it does
High-Severity Account Signal TriggerAlert only on high-severity changes
Hiring Ramp Signal MonitorWatch for hiring acceleration
Tech Stack Adoption Change AlertFire when a company adopts new tooling
Track Competitor Website ChangesMonitor competitors for changes
Domain Change TrackerTrack changes on a watched domain

📋 What data can Company Change-Event Feed extract?

15 fields per company, with the detail inside changes.

FieldWhat it holds
changesThe typed change events, each with event_type, description, old_value, new_value, severity, confidence (high, medium or low), date, company_domain, and source_actor, the immutable Actor ID of the source that produced it (on funded_and_hiring, the funding and hiring Actor IDs, comma separated). event_type values include hiring_ramp, hiring_decline, funding_detected, and funded_and_hiring
total_changesHow many events this run produced
has_high_severityThe one-field alert gate
latest_change_dateMost recent change in this batch
is_baselinetrue on the first run for a domain
source_statusPer source: ok, degraded, skipped or not_selected
snapshotCurrent state, returned so you can store it yourself
company_domain, company_nameThe identity
run_dateWhen the run happened
sources_requested, min_severityThe sources and severity floor this row was run with
row_statusok, or degraded when any selected source was not ok
error_reasonWhich selected sources were not ok; null on an ok row
billable_events_jsonThis row's billing receipt, for example [{"event":"change-source-resolved","count":1},{"event":"apify-default-dataset-item","count":1}]

Every row carries every key. A value that is unknown is null, never a missing key.

⚠️ Severity is there so you can ignore most of it. CRM adoption, a hiring ramp and a funding round are high severity. Follower drift and an HQ relocation are low. A feed where everything is an alert is a feed nobody reads, so filter on has_high_severity first and treat the rest as context.

🎛️ Choosing sources and a severity floor

Two settings shape a run, and both were fixed before 2026-08-22: every run paid for five sub actor runs, and every change came back regardless of how small it was.

{ "domain": "stripe.com", "sources": ["hiring", "funding"], "min_severity": "high" }

sources picks which of the five to monitor: hiring, tech_stack, firmographic, funding, social. Leave it empty for all five. A source you do not select is reported as not_selected in source_status, which is deliberately a different value from degraded. degraded means the actor tried and could not read it. not_selected means nobody asked, so the absence of a change there is not a claim that nothing changed.

min_severity sets the floor on the changes array:

ValueWhat survives
lowEverything. The historical behavior and still the default.
mediumMaterial changes: role count moves, headcount jumps, tool changes, funding, exec moves.
highMajor changes only: funding rounds, acquisitions, exec moves, a CRM or sequencer appearing or disappearing, a large hiring ramp.

high is the setting for an alerting feed. A change carrying a severity the actor does not recognize is kept rather than dropped, so a labelling bug can never silently hide an event.

Both settings come back on the row as sources_requested and min_severity, so a row with an empty changes array is never confused with a row where only major changes were asked for.

🛠️ How to track changes at a company

  1. Open the Input tab and put a bare domain in domain.
  2. Run it once. That run is your baseline and returns no changes.
  3. Run it again on your chosen cadence, weekly or monthly.
  4. Filter on has_high_severity and read changes.
  5. Check source_status before you act on something disappearing.

🧪 Using it in Clay

Add an Apify enrichment column and map your domain column to domain, which is the per-row enrichment shape. For a batch outside Clay, fill domains on the Input tab, one domain per line.

Because the actor stores a per-domain snapshot itself, you do not have to persist anything. If you would rather hold the state, take snapshot from the output and pass it back as previous_snapshot on the next run.

⏱️ Choosing a cadence

Monthly suits firmographics and social. Weekly suits hiring and tech stack, which move faster. Running it more often than the underlying sources change produces empty runs you still pay for.

💵 How much does it cost to track a company's changes?

You are charged once per company analyzed by this actor, and separately by each sub-actor it calls. Both parts are on your account. The worked example below is the number that matters.

Priced per source that answers, as of 2026-08-22. A small base charge per company row, plus one charge per change source that actually returned something.

PlanBase per companyPer source that answers1 source3 sources5 sources
Free$0.0100$0.0100$0.0200$0.0400$0.0600
Bronze$0.0095$0.0095$0.0190$0.0380$0.0570
Silver$0.0090$0.0090$0.0180$0.0360$0.0540
Gold$0.0085$0.0085$0.0170$0.0340$0.0510

A five source run costs exactly what it always cost. That column is the old flat price, to the cent, on every plan. Nothing you already do got more expensive. Everything smaller got cheaper, in proportion to the work it actually does.

Two things are never charged: a source you did not select is not run, and a source that was selected but could not be reached delivered nothing. Both are free, and source_status on the row tells you which happened.

The two events by name: the base charge per company row is apify-default-dataset-item, and the charge per source that answers is change-source-resolved. There is also a start event, apify-actor-start, at $0.00005, charged once per run per GB of memory.

Free plan monthly cap

Free Apify plan users get 300 results per calendar month from this actor, reset each month. A run that reaches the cap stops and says so in the status message. Paid Apify plans are not capped. The sub-actors apply their own free plan caps.

Maximum charge

The actor honors the maximum cost per run you set in Apify: before each company it checks that the row and its selected sources still fit, and when the platform reports the limit reached it stops cleanly and keeps every row already charged. You can also set max_charge_usd on the Input tab as a second ceiling for this actor's own charges.

💳 This is an orchestrator, so the sub-actors it calls bill you too. The price above is for this actor. Each of the five fleet sub-actors it invokes charges its own per-domain event against the token that started the run, which is yours. Budget for the orchestrator plus the sources, not the orchestrator alone. A baseline run costs the same as a delta run, because it does the same work.

🧾 What a run really costs, measured end to end

The five sub-actors cost more than this actor does. Here is a real run rather than an estimate. Measured 2026-08-12 on a single company.

Charged to your Apify accountCost
This actor, 1 company plus the start event$0.0600
gtm-hiring-signal-scraper, $0.05 per company$0.0501
funding-press-signal-scanner, $0.03 per company$0.0301
company-social-presence-mapper, $0.015 per company$0.0150
gtm-tech-stack-signal-scraper, $0.015 per company$0.0150
company-firmographic-enricher, $0.004 per domain$0.0040
Total for that run$0.1743

The five sub-actors were 66% of that bill. The effective price was $0.174 per company, not the $0.06 headline, so budget roughly three times the headline rate for a full run.

sources is the single biggest lever on this bill, and since 2026-08-22 it moves both halves of it. A source you do not select is not run by the orchestrator and not charged by the sub-actor, and it is no longer charged by this actor either.

What you monitorThis actorSub-actorsTotal
All five$0.0600$0.1143$0.1743
Hiring only$0.0200$0.0501$0.0701
Firmographics only$0.0200$0.0040$0.0240

Watching firmographics alone was $0.064 the day the source selector shipped, before this actor's own price followed the work. It is now $0.024, about a seventh of a full run.

The default is still all five, so an existing task, saved input or schedule costs exactly what it cost before.

⌨️ Input

Everything is on the Input tab. The options worth explaining:

FieldTypeDefaultWhat it does
domainstringnoneBare company domain. The per-row enrichment shape.
company_namestringnoneImproves attribution on the news and identity sources.
domainsarraynoneBatch mode, one domain per line. One row per domain. Fill this or domain.
previous_snapshotobjectnoneDiff against a snapshot you hold rather than the stored one (JSON). Single company only.
sourcesarrayall fiveWhich sources to monitor. Unselected sources are not run and not charged.
min_severitystringlowReport only changes at or above this severity.
sub_actor_timeout_secsinteger300Per sub-actor ceiling. Lower it for a quick test. API only, not on the form.
max_charge_usdnumbernoneOptional ceiling in USD for this actor's charges in this run. The run stops before crossing it.

📤 Output

One flat row per company, exportable as JSON, CSV, Excel, HTML or XML.

{
"company_domain": "stripe.com",
"company_name": "Stripe",
"is_baseline": false,
"total_changes": 3,
"has_high_severity": true,
"latest_change_date": "2026-06-21",
"changes": [
{
"company_domain": "stripe.com",
"date": "2026-06-21T16:20:11Z",
"event_type": "tech_stack_added",
"description": "HubSpot was detected in the tech stack.",
"old_value": null,
"new_value": "HubSpot",
"severity": "high",
"confidence": "high",
"source_actor": "qyd7nNyqFPelQViBx"
}
],
"sources_requested": "hiring,tech_stack,firmographic,funding,social",
"min_severity": "low",
"source_status": {
"hiring": "ok",
"tech_stack": "ok",
"firmographic": "ok",
"funding": "ok",
"social": "degraded"
},
"run_date": "2026-06-21T16:20:11Z",
"row_status": "degraded",
"error_reason": "sources not ok: social degraded",
"billable_events_json": "[{\"event\":\"change-source-resolved\",\"count\":1},{\"event\":\"change-source-resolved\",\"count\":1},{\"event\":\"change-source-resolved\",\"count\":1},{\"event\":\"change-source-resolved\",\"count\":1},{\"event\":\"apify-default-dataset-item\",\"count\":1}]"
}

💡 Tips

  • Alert on has_high_severity only. Store the rest as account context.
  • Every event carries the Actor ID of the source that produced it, so you can always trace a change back to the actor that saw it and re-run just that one.
  • Lower sub_actor_timeout_secs when you are testing. The default is tuned for completeness, not speed.
  • Do not treat a degraded source as "nothing changed there". It means nobody looked.

⚠️ Known limits

Runs take longer than a single-source actor. This actor waits on up to five sub-actors running in parallel, so a typical run is about 60 to 180 seconds. That is expected for an orchestrator and does not indicate a fault.

Free-plan sub-actors can hit their own caps. If you are on the free Apify plan, a sub-actor may hit its own monthly free-tier limit and return no data. That source is reported as degraded rather 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.

The snapshot is latest-state only. It holds current state plus the most recent funding event keys, bounded. It is sized for next-run diffing, not as an archive.

previous_snapshot is single-company only. It is ignored in batch mode, where per-domain stored snapshots are used.

❓ FAQ

Why did my first run return no changes?

Because it was the baseline. It recorded the state to diff against. Run it again on your cadence and you will get deltas.

One source says degraded. Is the row still usable?

Yes. The other sources still produced events and the degraded source's prior state was carried forward, so nothing is falsely reported as removed. Just do not read an absence there as a change.

Does it scrape anything itself?

No. It orchestrates fleet sub-actors and normalizes their output into one change-event schema.

Do I have to store the snapshot?

No. The actor stores a per-domain snapshot itself. snapshot is returned in case you would rather hold it, and you can pass it back as previous_snapshot.

Why is a follower count change low severity?

Because acting on it is almost always wrong. Severity exists so a real buying signal is not buried under drift.

🧩 Want other GTM data?

Mamba Labs builds a fleet of enrichment actors that share one flat output convention:

ActorActor ID
Account Hiring WatchgRAZA5WBi1r6L0gy7
Agent Accessibility AuditoranxbRv0lKrpQ1pnua
Agent to Brokerage ResolverePRRGLxOGyaVHO4dI
AI Answer Visibility TrackerRJZvzKniYK4nswcMg
AI List Extractor for Any WebsiteD5hOdIez45M0NX5jD
AI Tooling DetectorEwkHhmqiuJgRoVEbE
Amazon Product, Price, and Stock TrackerMtJPZoyjJ3IeqTFyo
API Deprecation and Breaking Change MonitorpHsbS3xXUK8Jqutz5
App Store and Google Play Review MonitorMaCMEhGrbchxQZ92G
B2B Reddit Conversation MonitorSoDryzzsjmY3SsiyG
Bluesky Brand Presence MappereLpxzP4IuXznlFVND
Bluesky Posts ScraperKldSjS7wjoeZ7vQGm
Brand Sponsor FinderPPgK6xrgOmvL7Nrys
Bulk WHOIS and RDAP Domain Age LookupMTrkG5FLU6SjqLdJY
Business PDF Field ExtractorvM7JCk0CMAx5W0oJh
Career Change Signal EnginevX2Yga1a6wGaXaP14
Company Careers Page Jobs, 17 ATS BoardsizP0rfIgf5YaRZfIh
Company Change Event FeedoX44rS0fkEJ3rXLWe
Company Discovery List Builderjch0HdaZnpbMqlcGS
Company Firmographic EnricherYlUtLWjfPpqykmB8g
Company Funding RecordOFS4Mt1gyYNtGfUbE
Company Headcount EstimatoraHC4GROnNt6kfZe5r
Company Identity Resolverlr8fTRAmZCBZmuwwh
Company Role Email, Phone and Address Finder4mMncKaJykiq94grz
Company Social Presence Mapper4k6CCemkgBDz18m2h
Competitor Price, Stock, and Changelog MonitoryxdgCbUQ4PYQWwRNU
Contact Classifier0lGSeYJmniXhGANnO
Contractor License Search, CA, TX, WA, OR, LAWBYK3CPI2kdeq4bP1
CRM Contact Job Change CheckerL8UbEmMJC1XYPSZOb
Domain Deliverability Checker0tVgxI7A6o9jMlxmc
Domain to LinkedIn URL Resolver3HtnSaqPHOg1Qg5gx
Ecommerce Platform Profiler5G2NeYjBbQTjaTn9L
Ecommerce Store DiscoveryPeHu4sLyFvQHXUUrX
Email List Verifier, Bring Your Own KeyCzVJ4NlaCKk80xpgE
Event Presence IndexWLhMy8fMDgsxdYxv5
Eventbrite Events Scrapersgc6znyrbjOy5Yk9f
Expert Witness Finder, US and AustraliaLIpwlgfE3LaQBaXd4
Facebook Posts ScraperT6jxIeq4ua0SLXnqG
Funding and Press Signal ScannerFS13X6dhQVgX3XOM6
GDPR Cookie Banner and Consent CheckerTrKyOS0KBoGC35nbr
GitHub Followers and Following ExportSGNxDmFb9v3tRDaFI
GitHub Organization Signal ScannerahF8RRpv5mzPao5CN
Google Ads Transparency Center Scraper by Domain1eOwxhBVxzvOXAm4s
Google Maps Places ScraperSuvHCNJ7pIuw6gn54
Google Trends ScraperOeDzaACKmBYJXzHZk
GTM Hiring Signal ScraperD7O1SA2EqwHGsGr1P
GTM Signals AggregatorxKdRfnfFNkdMpFuNs
Healthcare Provider NPI EnricherMrgbHzcpDq3mOv9Df
ICP Fit ScorerW161DT8W4kW55dMFh
Influencer Change Monitord2VVgahNL6UmcLkhg
Influencer Lead List BuilderKnmByszcv135yM30G
Influencer Profile ScraperEqEnklDVMIcB1V499
Influencer Search Across TikTok, Instagram and YouTubetpkedmloIIWtXx6sg
Influencer Talent Agency LookupzCuX4Mgyg6JvXgGzd
Instagram Facebook Brand Presence MapperHXh65I0JBjPsunbY8
Integration and Marketplace Presence MapperV0guNuvM85Q61f2gj
Job Board Keyword Signal Scanner4DvqpvhMR74NLcDDY
Job Posting MonitorQCfICD9kOPiOdj5iI
Journalist and Media List BuildermAfizsZC8qRoR0ecS
Launch Directory List BuildercRq3bmvEZxZtioQ7U
Lead File Import CheckerRwlGVXTf46LqZdUgt
Legal Entity ResolverKHFyPCDIx7CyqULYm
Link in Bio Scraper and Newsletter DetectorOorucdheTIgu7RFzK
LinkedIn Company Page MapperzOPm6A9JEhUGcIdFW
LinkedIn Jobs FeedSH6N0d8cz46BhCC8B
LinkedIn Post TrackeroiGLNPuaf5BRaz9K5
Local Business Lead BuilderqMN97aoHhsAS5bznV
Local Rank and Map Pack Trackergv0kyHGDIg8XscclB
Lookalike Companies from Seed Domainse2O426WBAbLLQL4Z2
Manufacturer and Supplier FinderQcsdmd0lUfPzVkonh
MCP Server Change and Health MonitorIeqjWF9U0BdDQFY08
Media URL TranscriberSyfr7Ya3EsHgWfrB6
Meta Ad Library Ads by Company, Graph APIJ1GWlSXfSGU3u8Wng
Mobile Phone Waterfall6OOgPktf7RIa5XCOP
Multi Platform Social Posts and CommentsicFuHR1EzDvUcfCQ5
Netherlands Rental ListingssGKGsbwoX18lFb6dR
New Hire FindercKuc38p4nYHNF3IW8
Newly Registered Companies, UK, Norway, Finland, Franceg2WfZhWvCtc57g2Jo
News and Media Mention Monitorgol1PPUKrsIk4QLBd
News Site Article ArchiveNjcF3UD8791raFNHh
Newsletter Sponsor TrackerqSwpqxD1TiPZpLQHv
Open Tender and RFP FinderkPTGz6t6TFoUUyfaO
Outbound Stack Detectorv43UJC8r7qW7cBSTG
Page Finder and ExtractorTpurgcOZbVnknlaiC
Partner and Member Directory ExtractorZX0XJPPUvnFJxeC1a
People Finder & Email VerifierLEgloG7tWgQl4o6TD
Person LinkedIn URL ResolverssuyPV8LnEsL8qbnb
Person Social Footprint MapperjfQXa2zW9FHCJot9K
Personal Email to Company ResolverAefT5Ye6YNPFQwJBf
Pinterest Brand Presence Mapperd1HvjZfKhgvWsoEwn
Podcast Guest and Host Findero2MGSvgbSLeeXOsIo
Product Hunt Daily Launches with Maker DomainsO4VX63drWK9Y9x641
Property Owner Records0J7ovG1iaZpQD1P0T
Prospect Engineq9rT6v64nUJdPexOQ
Public Feature Board and Roadmap MonitorrcHF5gj5r2Vqnry35
Publishing Frequency TrackerTbLwaUUATdYb6wp4N
Recent Funding Rounds FeedKueVp9MOz7iOoAgDp
Reddit Brand Presence MapperpKQZmDaT70SEb54bZ
Reddit Search and Thread Scraper4Gsth5cP2Xt9V2xDN
Reporting Window FinderuINxR7a1IW8qUTRUX
Research Topic Institutions and AuthorsOH8ANqt7bCKbo72Gk
Semrush Domain Metrics3dqa0abJrpssHtrYL
Sequencer Event PollerS6s8Rjd61tGdrMRk4
Sequencer Lead Push0Jv27VeWM5tSZQs9x
Shopify App Store and Chrome Web Store ListingsgaY0BzkLyN77mD3wI
Site Crawler for Links and TableslLLJ6JxZ4XqN8ULz0
Substack Newsletter and Posts ScraperUEFsdwiPLmPNVy9xd
Team Page People Extractorj8a9zX0k4mNbvDbWK
Tech Stack Signal Detectorqyd7nNyqFPelQViBx
Tennis Match Datav3OX6zxXHZOf2yurO
Threads Posts by Keyword, Exact Match2OT8K8RiEEWtaj2MW
Ticketmaster Event PricesCrvPX4IwLXQX9bls1
TikTok Brand Presence Mapperfco8FvoJcSafbeyd1
Trustpilot Reputation Enricher3lIqfCt61j4hqE1xz
US and UK Contract Award Winners by CompanyzhEtllASykOcx9hJ8
US Import Records Buyer FinderVIMafpKF5ggOw0COU
VC and Accelerator Portfolio List BuilderchH8hrfuoqqolW06m
Website Accessibility Checker, WCAG 2.2 AAP3jBj3FRghKEhX52z
Website Phrase and Business Model ClassifierCBuZ9k7sRwBeiKiCS
Website Traffic Rank EstimatorGnOFUzlNVIoXgeJjH
Work Email WaterfallOT6xqTFThC0Rjf7Zj
Workplace Program DetectorLi6pPDhqbdzFz3h7G
X Brand Presence MapperoLOgadhHUkNAyDA3w
YouTube Channel and Video List ScrapertxaAjeBqgj5MStFE4
YouTube Channel Email FinderIDgKZcmeeuunUbccN
YouTube Channel from Company Domain6hSpD3kd2s2IQ4VSs
Zillow Listing DetailsyG4zM0Enfsw2NefJ1

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.

🆘 Support

Something wrong, or a change event you did not expect? Open an issue on the Issues tab with the domain and the row, and we will look at it.

ℹ️ Sourcing and legal. This actor scrapes nothing directly. Every field comes from Mamba Labs fleet sub-actors, each of which reads public company data: job boards, company websites, public news and press, and public social pages. Each change event carries the Actor ID of the source that produced it, so any value is traceable. You are responsible for how you use the output.

Built by Mamba Labs.