Skip to content

Workflow · Research

Build a Competitive Intel Monitor

A weekly agent that tracks competitors — pricing, features, launches, hiring, and positioning — and delivers a cited briefing to Slack or email.

Intermediate3–4 hoursStack: Claude or GPT-5, Tavily / Brave / Exa Search API, n8n or cron + Python, Slack / email
ResearchCompetitive IntelAgentMonitoring
Edited by The AIKnowHub team · Editorial team

Problem

Founders and PMs know they should track competitors but don't. Manual checks are sporadic, notes live in scattered bookmarks, and the team finds out about a rival's launch from Twitter instead of an internal briefing.

Final output

A scheduled pipeline that outputs a Markdown briefing: per-competitor deltas since last run, pricing changes, feature launches, notable hires, positioning shifts — each claim cited with URL and date. Delivered to #competitive-intel on Slack every Monday 8am.

Architecture

Cron (weekly) or n8n schedule
  → Load competitor list + last-run snapshot (JSON on disk / S3)
  → Per competitor, parallel searches:
      news (last 7 days)
      pricing page fetch + diff
      changelog / blog RSS
      job postings (optional)
  → Fetch + extract top URLs
  → Diff LLM: what's new vs last snapshot?
  → Synthesis LLM: executive briefing with [n] citations
  → Save new snapshot + post to Slack / email

Step-by-step

  1. 01

    Define the competitor registry

    YAML or JSON: name, domain, pricing URL, changelog URL, LinkedIn company ID, 3–5 search query templates. Version-control this file — it's your source of truth.

  2. 02

    Scheduled search per competitor

    Tavily/Brave/Exa for '{company} launch', '{company} pricing', '{company} funding'. Fetch pricing and changelog pages directly. Deduplicate URLs.

  3. 03

    Extract and normalize

    Readability on HTML pages. Truncate each source to ~1.5K tokens. Store raw extracts with fetch timestamp for audit.

  4. 04

    Diff against last snapshot

    Feed last week's summary + this week's sources to a diff LLM. Output structured deltas: { type, summary, evidence_url, significance: high|medium|low }.

  5. 05

    Write the briefing

    Synthesis pass: executive summary, per-competitor section, 'So what for us' recommendations. Require [n] citations. Flag low-confidence items.

  6. 06

    Deliver and persist

    Post Markdown to Slack (mrkdwn). Save briefing + snapshot to disk. Keep 12 weeks of history for trend charts.

What you'll build

A weekly competitive intelligence agent that watches your rivals, spots what changed, and tells your team what it means — with citations.

Built on the same bones as the AI Research Assistant, but scheduled, diff-aware, and tuned for founders and PMs.

Architecture

Competitor registry (YAML)
  → Weekly cron
  → Parallel search + page fetch per competitor
  → Diff vs last snapshot
  → Synthesis briefing with citations
  → Slack / email + save snapshot

Step 1 — Competitor registry

Version-control a file — it's how you add/remove rivals without touching code:

competitors:
  - name: Acme Analytics
    domain: acmeanalytics.com
    pricing_url: https://acmeanalytics.com/pricing
    changelog_url: https://acmeanalytics.com/changelog
    search_queries:
      - "Acme Analytics product launch"
      - "Acme Analytics pricing"

Five to ten competitors. Quality over quantity.

Step 2 — Search + fetch

Per competitor, run in parallel:

SignalSource
NewsTavily / Brave — last 7 days filter
PricingDirect fetch of pricing_url
Product changesChangelog RSS or blog
HiringOptional — site:linkedin.com/jobs "{company}"

Cache by URL. Most pricing pages change monthly, not hourly.

Step 3 — Mechanical diffs first

Before the LLM:

  • Hash pricing page text — if unchanged, skip LLM diff for pricing.
  • Parse RSS — new entries are deterministic.

LLM diffs are for interpretation, not detection.

Step 4 — LLM diff pass

Feed last week's snapshot + this week's extracts. The model outputs structured deltas with significance tiers.

High significance: pricing change, major launch, enterprise tier added, key exec hire. Medium: blog positioning shift, integration announced. Low: minor copy changes, conference sponsorship.

Suppress low-significance noise in the executive summary — keep it in the appendix.

Step 5 — The briefing

Every Monday, leadership gets:

  1. 3-bullet executive summary — only high-significance items.
  2. Per-competitor sections — skip empty ones.
  3. So what for us — "Consider matching their API pricing" / "Accelerate SSO — they just shipped it."
  4. Watch list — signals too weak to call but worth another week.

Every claim gets [n] citations linking to source URLs.

Step 6 — Delivery

Slack — post to #competitive-intel with mrkdwn. Pin high-significance weeks.

Email — alternative for execs who don't live in Slack.

Save briefings/2026-06-02.md and snapshots/2026-06-02.json for history.

Orchestration options

ApproachBest for
n8n schedule triggerTeams already on n8n, visual debugging
Python + cron on a $5 VPSGit-versioned logic, easier snapshot storage
GitHub Action on scheduleBriefings committed to a private repo

See n8n vs Zapier vs Make if you're picking an automation layer.

Operating the monitor

  • Monthly: review competitor list — add emerging rivals, drop irrelevant ones.
  • Quarterly: audit citation accuracy on 10 random claims.
  • After fundraising news: temporary daily mode for 1 week, then revert.

Extensions

  • Battlecard generator — per-competitor sales one-pager from accumulated briefings.
  • Alert mode — Slack ping within 1 hour when significance=high (pricing, launch).
  • Internal metric overlay — "they dropped price 20%; our win rate vs them last month was X%."
  • Screenshot diff — visual pricing page comparison for rebrand detection.

At ~$0.65/week, this is the highest-leverage research automation most product teams haven't built yet.

Prompt examples

Copy any of these, replace the placeholders, run.

Weekly diff extractor

You are a competitive intelligence analyst.

Compare LAST WEEK's snapshot to THIS WEEK's sources for {{competitor_name}}.

LAST WEEK:
{{last_snapshot}}

THIS WEEK'S SOURCES:
{{sources}}

Output JSON:
{
  "deltas": [
    {
      "type": "pricing" | "feature" | "launch" | "hiring" | "positioning" | "partnership" | "other",
      "summary": "one sentence",
      "evidence_url": "url",
      "significance": "high" | "medium" | "low",
      "confidence": 0-1
    }
  ],
  "no_material_change": boolean
}

Rules:
- Only report changes supported by this week's sources.
- If unsure, lower confidence — do not invent launches.
- Pricing: note exact old vs new if both are visible.

Executive briefing

Write a weekly competitive intel briefing for {{your_company}} leadership.

Audience: founders + PMs. 500–800 words. No fluff.

Structure:
1. Executive summary (3 bullets — only high-significance deltas)
2. Per-competitor sections (skip if no_material_change)
3. "So what for us" — 2–3 actionable recommendations
4. Watch list — things to monitor next week

Cite every factual claim with [n] matching source index.

Deltas:
{{all_deltas}}

Sources:
{{numbered_sources}}

Cost estimate

Line itemApprox. cost
Search API (~50 queries/week)$0.15
Page fetches$0.00
Diff + synthesis LLM (Sonnet)$0.50
Per weekly run$0.65
Per year (52 runs)$34.00
Total per run (approx.)~$35.30

Costs depend on model choice, content length, and how aggressively you cache.

Optimizations

  • Cache fetched pages by URL with 24h TTL — pricing pages don't change hourly.
  • Run competitor searches in parallel — 10 competitors in ~30 seconds.
  • Skip synthesis when all competitors report no_material_change — send a one-liner.
  • Use RSS/changelog feeds before search when available — cleaner signal, lower cost.
  • Store pricing HTML hashes — diff mechanically before involving the LLM.

Common mistakes

  • Tracking 30 competitors — signal drowns in noise. Start with 5–10 that actually matter.
  • No snapshot persistence — you can't diff without last week's baseline.
  • Letting the LLM infer pricing from third-party articles — always fetch primary pricing pages.
  • Daily runs by default — weekly is enough for most B2B SaaS; daily creates alert fatigue.
  • Missing 'So what' — executives ignore pure news digests without recommendations.

Frequently asked questions

Google Alerts are noisy, uncited, and don't diff. This pipeline structures deltas, cites sources, compares to last week, and adds strategic recommendations.