| 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. |
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.
- "competitor scan" / "competitive sweep"
- "battlecard for {company}"
- "what is {competitor} doing"
- Scheduled biweekly run (when enabled — currently deferred per
tasks/scheduled.md)
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.
- 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
- 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
- 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).
- 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?
- 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. - Update battlecards. One battlecard per competitor in
briefs/battlecards/{competitor}.md(create folder if missing). Update vs overwrite — preserve history with dated sections. - 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").
- Run brand-voice lint on the summary (battlecards are internal so light review; the summary will be shared).
- Write to outbox at
assets/outbox/{YYYY-MM-DD}-competitor-scan.mdwith targetslack, channelmarketer-approve(gated because anything based on competitor moves needs human eyes before any external response). - Append to tasks. Action items derived from gaps go to
tasks/active.md.
---
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}---
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 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.