Skip to content

Latest commit

 

History

History
133 lines (101 loc) · 5.81 KB

File metadata and controls

133 lines (101 loc) · 5.81 KB
name competitor-scan
description Periodic competitive intelligence sweep. Pulls each competitor's site, blog, social, GitHub (if open-source), and recent news; produces a battlecard plus a content-gap report. Use when the user says "competitor scan", "what's {competitor} up to", "battlecard for {company}", or when running a scheduled biweekly intel sweep.

competitor-scan

Inspired by anthropics/marketing/competitive-analysis. Lightweight and recurring, not exhaustive analyst-grade. The point is to catch movement and identify gaps in our messaging — not to produce a 50-page report.

When to trigger

  • "competitor scan" / "competitive sweep"
  • "battlecard for {company}"
  • "what is {competitor} doing"
  • Scheduled biweekly run (when enabled — currently deferred per tasks/scheduled.md)

Default competitor set

Read the bridge brain folder for the canonical anti-positioning list. Default scan set:

  • Glean — anchor competitor in enterprise search
  • Microsoft Copilot — for buyers in MS-locked orgs
  • Notion AI / Notion Q&A — overlap on team knowledge
  • Hebbia / AlphaSense — financial-research adjacent
  • Workday Assistant / similar in-app — narrow but worth tracking

User can add/remove competitors per scan; this is the v0 default.

Inputs

  • Competitor list — defaults above; override per request
  • Surfaces to check — site, blog, careers, pricing, social, GitHub (if applicable), recent news. Default: all.
  • Look-back window — defaults to 14 days for biweekly cadence, 30 days for ad-hoc

Workflow

  1. For each competitor, gather in parallel:
    • Marketing site homepage + product page (lead with: positioning headline, primary CTA, whose attention they're chasing)
    • Recent blog posts in window (titles + leads)
    • Pricing page if visible
    • LinkedIn / X presence (recent posts; rough cadence)
    • Open positions (careers page) — hiring signals
    • GitHub activity if open-source
  2. Identify movement. What's new since last scan? New products, repositioned messaging, new vertical focus, hires that signal direction (e.g. "5 enterprise SE hires in Germany" = enterprise EU push).
  3. Compare messaging. For each, note: what claim are they leading with? What audience? What proof points do they cite? Where do their claims overlap or diverge from Amaro's anchor claim?
  4. Identify content gaps. Where are they writing about a topic Amaro hasn't? Where is Amaro writing about a topic they're getting traction on? Surface as opportunities for content-draft.
  5. Update battlecards. One battlecard per competitor in briefs/battlecards/{competitor}.md (create folder if missing). Update vs overwrite — preserve history with dated sections.
  6. Produce scan summary. Top 3 movements across the set, top 3 content gaps Amaro should fill, one strategic note (e.g. "Glean leaning hard into Slack integration — implies our MCP-anywhere pitch is undervalued and we should publicize it more").
  7. Run brand-voice lint on the summary (battlecards are internal so light review; the summary will be shared).
  8. Write to outbox at assets/outbox/{YYYY-MM-DD}-competitor-scan.md with target slack, channel marketer-approve (gated because anything based on competitor moves needs human eyes before any external response).
  9. Append to tasks. Action items derived from gaps go to tasks/active.md.

Battlecard template (per competitor)

---
competitor: {name}
last_scanned: {YYYY-MM-DD}
maintained_by: competitor-scan
---

# Battlecard — {Competitor}

## Their pitch (current)
{One paragraph — what they're claiming, who they're chasing, primary CTA}

## What's new ({window})
- {YYYY-MM-DD}: {movement} — {one-line implication}
- ...

## Where they win
- {Honest assessment — don't dismiss}

## Where Amaro wins
- {Specific, defensible claim}

## How we respond if asked
- "{Customer asks: 'How is Amaro different from {them}?'}" → "{2-sentence answer that acknowledges what they do well and pivots to what Amaro does that they don't}"

## Don't say
- {Things sales/marketing should avoid claiming about this competitor — exaggerations, outdated info, etc.}

## Source links
- Site: {URL}
- Blog: {URL}
- Last 3 posts: {titles + URLs}

Scan summary output (the thing posted to Slack)

---
target: slack
channel: marketer-approve
status: pending
created: {ISO}
created_by: competitor-scan
requires_approval: true
---

# Competitor scan — {YYYY-MM-DD} ({window} window)

## Top movements
1. **{Competitor}**: {what changed} — {implication}
2. **{Competitor}**: {what changed} — {implication}
3. **{Competitor}**: {what changed} — {implication}

## Content gaps to fill
- {Topic} — {who's covering it, why we should}
- {Topic} — {ditto}
- {Topic} — {ditto}

## Strategic note
{One short paragraph — a meta-observation across the set.}

## Approval requested
- **What**: post this scan summary internally + spin out 3 content-draft tasks for the gaps
- **Where**: #marketer (summary), tasks/active.md (gaps)
- **Why**: {one line}
- **Risks**: {one line}
- **Reversibility**: high — internal-only output

## Updated battlecards
- {competitor1} — see briefs/battlecards/{competitor1}.md
- {competitor2} — ...

Don't

  • Don't fabricate competitor moves. If a source is paywalled or you can't verify, mark it explicitly: [unverified — needs human check].
  • Don't recommend reactive copy (writing a blog post tearing down a competitor's claim) without #marketer-approve. Reactive content has high reputational reversibility cost.
  • Don't refresh battlecards more often than the scan cadence. Stale-but-stable beats churn.
  • Don't put competitor names in customer-facing copy without sign-off — the style guide's anti-positioning rules apply.