Competitor Change Rollup — Weekly Watch Card avatar

Competitor Change Rollup — Weekly Watch Card

Pricing

Pay per event

Go to Apify Store
Competitor Change Rollup — Weekly Watch Card

Competitor Change Rollup — Weekly Watch Card

Watch one competitor's domain and get a weekly card of what actually changed — tech stack, hiring activity, and funding-filing mentions — rolled up from our own live lead-gen Actors. Run it on a schedule and stop manually re-checking three different tools every Monday.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Tim Zinin

Tim Zinin

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Watch one competitor's domain and get a weekly card of what actually changed — tech stack, hiring activity, and funding-filing mentions — rolled up from three of our own live lead-gen Actors. Schedule it weekly and stop manually re-checking three different tools every Monday.

What you get

  • One card per check: the first run establishes a baseline, every run after that reports ONLY what moved since last time — never a full re-summary you have to compare yourself.
  • Three signals combined in one watch: tech-stack changes (new tools, CMS, ecommerce platform), hiring momentum shifts, and new SEC funding-filing mentions.
  • Honest about uncertainty: a guessed hiring board is checked against its public owner signal when available. A confirmed mismatch is excluded from the snapshot and cannot create a paid change. Funding name matches remain unverified.
  • A quiet week costs nothing — the "no changes" notice is free, you only pay when something real actually moved.
  • Runs on Apify: schedule it weekly, call it from the API, export to JSON/CSV/Excel or push straight into your competitive-intel pipeline.

How to run it

  1. Click Try for free — no card needed on the free plan.
  2. Paste the competitor's domain into Competitor domain.
  3. Optionally set Role keywords to flag hiring for specific roles.
  4. Hit Start. The first run creates the baseline; schedule it weekly to get a stream of change cards.

Pricing

Pay-per-event: $0.005 per run start + $0.05 per baseline established / change detected. The "no changes this week" notice and any error row are never charged. 10 changes detected cost about $0.51 (the one-time start fee plus 10 billed rows).

Input

FieldRequiredWhat it does
domainyesThe competitor's domain to watch, e.g. "stripe.com".
role_keywordsnoWords to match against open job titles (default: ["sales","marketing"]).
company_name_overridenoOverride our guessed ATS token/company name (see limitation below).
baseline_keynoName for this watch, in case you run more than one on the same domain. Defaults to the domain itself.
{
"domain": "stripe.com",
"role_keywords": ["sales", "marketing"]
}

⚠️ Important limitation: guessed company identity for 2 of the 3 signals

The tech-stack signal works directly off the domain — no ambiguity. The hiring and funding signals need a company NAME or ATS token, not a domain, so by default we guess one from the domain itself. This guess can attach an unrelated company's data to your watch — every week. Verified live (same underlying issue as our own lead-list-qualifier Actor): guessing "example" as a company slug for example.com returned real hiring data for a completely unrelated company that happens to sit under that token on one of the job boards we check. Every row exposes matchBasis, attributionConfirmed (true, false, or null), and attributionEvidence. A false hiring match is excluded and any legacy misattributed hiring values are removed from the baseline without charging for that correction. null means ownership evidence was unavailable, not confirmed. If you know the competitor's real ATS token or legal entity name, set company_name_override to remove the guesswork.

Output

Baseline established (first run — real output, live run 30.07.2026):

{
"domain": "stripe.com",
"baselineKey": "selftest-live-run",
"found": true,
"baselineCreated": true,
"changed": false,
"changedFields": [],
"techStack": "Next.js,Nginx",
"hiringMomentum": "aggressive hiring",
"openRolesCount": 539,
"matchedRolesCount": 112,
"fundingFilingsSeenCount": 11,
"companySlugUsed": "stripe",
"identityConfidence": "guessed",
"matchBasis": "guessed-domain",
"attributionConfirmed": true,
"error": "",
"summary": "First check for \"stripe.com\" (watch \"selftest-live-run\") — baseline established (hiring/funding signals here are UNVERIFIED — guessed company slug, see README). Future weekly runs report only what changed.",
"checkedAt": "2026-07-30T10:48:45.157Z"
}

Change detected (real output, live run 30.07.2026 — reproduced via a controlled baseline change to prove the diff engine catches it, since a competitor's real headcount doesn't reliably shift within seconds):

{
"domain": "stripe.com",
"baselineKey": "selftest-live-run",
"found": true,
"baselineCreated": false,
"changed": true,
"changedFields": [
{ "field": "openRolesCount", "from": 1, "to": 539 }
],
"newFundingFilingsCount": 0,
"newFundingFilings": [],
"identityConfidence": "guessed",
"error": "",
"summary": "Change detected for \"stripe.com\" (watch \"selftest-live-run\") (hiring/funding signals here are UNVERIFIED — guessed company slug, see README): openRolesCount: \"1\" -> \"539\".",
"checkedAt": "2026-07-30T10:49:19.857Z"
}
FieldMeaning
foundtrue for a real, billable result (baseline established or a real change); false for a notice/error row.
baselineCreatedtrue only on the first-ever run for this watch.
changed / changedFieldsWhether anything moved since the last check, and exactly which field(s) with old/new values.
techStack, ecommerce, cmsCurrent tech-stack snapshot.
hiringMomentum, openRolesCount, matchedRolesCountCurrent hiring snapshot, keyed on companySlugUsed.
fundingFilingsSeenCount, newFundingFilingsCount, newFundingFilingsCumulative SEC filings seen for this watch, and any new ones this run — always check newFundingFilings yourself, see the limitation above.
identityConfidence"guessed" or "override" — see the limitation above.
matchBasis, attributionConfirmed, attributionEvidenceHow the hiring token was chosen and whether the board owner's public signal matched this domain. null is unknown.
partial / partialReasontrue when some (not all) of the three sources failed to respond this run — whatever DID answer is still reported/billed.
errorEmpty string when the check completed (including "nothing changed"); non-empty only when ALL THREE sources failed to respond.

Other tools we built

Related tools for adjacent workflows in B2B lead generation and data enrichment, e-commerce.

ActorWhat it does
Tech Stack Change DetectorPair it in the B2B lead generation and data enrichment workflow: Detect a website's current technologies (CMS, ecommerce, analytics, marketing/CRM, framework, hosting/CDN,...
Company Profile LookupPair it in the B2B lead generation and data enrichment workflow: Turn a domain or company name into one unified company card: website tech stack (CMS, ecommerce, key tech)...
Company Hiring RadarPair it in the B2B lead generation and data enrichment workflow: Pull every open role a company is hiring for from its public job board (Greenhouse, Lever, Ashby) and turn...
Shopify Price Change MonitorPair it in the e-commerce workflow: Watch a list of Shopify stores and get alerted when their price range, catalog size, or estimated revenue...
B2B Lead EnricherPair it in the B2B lead generation and data enrichment workflow: Turn a list of company websites into sales-qualified lead cards: detected tech stack, a rough revenue...

FAQ / Limitations

Can I watch several competitors? Yes — run one watch per domain (each gets its own domain/baseline_key); this Actor scores one competitor per run.

What happens if I change role_keywords or company_name_override for an existing watch? The watch keeps comparing against whatever it last saw, so changing settings can produce a "change detected" row that simply reflects the new settings, not a real change at the competitor. Use a new baseline_key for an intentionally different watch.

What this is NOT. This is not a verified company database and does not confirm that the domain and a matched hiring board or funding filing are the same legal entity — see the limitation section above. It is a change-tracking heuristic, not proof.

Found a bug or need another signal rolled into the card? Issues on the Actor's page.