GUIDE

Build Competitive Battle Cards with Claude Code

Product marketers spend weeks on competitive battle cards. Claude Code generates sales-ready cards in minutes from your positioning docs, G2 reviews, and competitor data.

Ashley runs product marketing at a B2B SaaS company. She manages three PMMs. Every quarter, her team burns two full weeks building competitive battle cards from scratch. They're tabbing between G2, competitor pricing pages, LinkedIn posts, changelog updates, and a shared Google Doc that's already stale by the time it ships to sales.

I've trained over 100 people on Claude Code, and product marketers like Ashley are some of the fastest to see results. Battle cards are a perfect use case because they're high-effort, repetitive, and follow a predictable structure. Claude Code tears through them.

Why Battle Cards Are a Perfect Fit for Claude Code

Battle cards look different at every company, but the work behind them is nearly identical. You pull competitor data from scattered sources. You organize it into a consistent format. You write positioning snippets and objection handlers. Then you do it all again next quarter when pricing changes or a competitor ships something new.

Claude Code is built to handle exactly this kind of structured, research-heavy work. It reads files on your machine, pulls content from URLs, and generates formatted output in whatever structure you define. You don't need to be an engineer to use it. If you can describe what you want, Claude builds it.

Setting Up Your Battle Card Project

First, create a project folder with a clear structure. Claude Code works best when it knows where to find inputs and where to put outputs. Here's what I recommend:

battle-cards/
├── CLAUDE.md
├── inputs/
│   ├── our-positioning.md
│   ├── competitor-urls.md
│   └── g2-reviews/
│       ├── competitor-a.md
│       └── competitor-b.md
├── templates/
│   └── battle-card-template.md
└── output/
    └── (generated cards go here)

The CLAUDE.md file is key. It tells Claude who you are, what your product does, and how you want battle cards structured. Think of it as a briefing doc for a new hire on your PMM team. Learn more about this approach in the skills guide.

The CLAUDE.md That Makes This Work

Here's a real example of what your project-level CLAUDE.md should look like:

# Battle Card Generator

## Our Product
- Name: Acme Analytics
- Category: Product analytics for mid-market SaaS
- Key differentiators: real-time event streaming, no-code dashboards, SOC 2 compliant
- Pricing: $499/mo Growth, $1,299/mo Enterprise
- ICP: VP of Product or Head of Data at 100-500 person SaaS companies

## Battle Card Format
Each battle card should include:
1. Competitor overview (2-3 sentences)
2. Pricing comparison (table format)
3. Feature comparison (our strengths, their strengths, gaps)
4. Win themes (3 bullets: when we win against them)
5. Landmines (3 bullets: questions to ask prospects that expose competitor weaknesses)
6. Objection handlers (top 3 objections and responses)
7. Customer proof points (pull from our-positioning.md)

## Tone
- Write for sales reps who have 30 seconds to scan before a call
- Direct, confident language
- No hedging or "it depends" answers
- Bold claims backed by specific data points

That file does 80% of the work. Once Claude knows your product, your format, and your tone, every battle card it generates will be consistent. No more one PMM writing cards differently from another.

The Prompt That Generates a Battle Card

With your project structure in place, open Claude Code in the battle-cards/ directory. Here's the prompt:

Read the competitor info in inputs/competitor-urls.md for Competitor A.
Read our positioning from inputs/our-positioning.md.
Read G2 review data from inputs/g2-reviews/competitor-a.md.

Generate a battle card for Competitor A following the format
in CLAUDE.md. Save it to output/competitor-a-battle-card.md.

For the landmine questions, focus on areas where G2 reviewers
complained most. For objection handlers, use the top 3 reasons
prospects tell us they're considering Competitor A.

Claude reads all your input files, cross-references G2 complaints with your positioning, and produces a complete battle card. The first draft takes about 60 seconds. Compare that to the 4-6 hours a PMM typically spends per competitor.

What the Output Looks Like

Here's a condensed example of what Claude generates:

# Battle Card: Mixpanel

## Overview
Mixpanel is a product analytics platform focused on event-based
tracking. Strong with startups and developer-led teams. Weaker
with non-technical users who need self-serve dashboards.

## Pricing Comparison
| Plan       | Acme Analytics | Mixpanel     |
|------------|---------------|--------------|
| Growth     | $499/mo       | $833/mo      |
| Enterprise | $1,299/mo     | Custom       |
| Free tier  | 10K events    | 20M events*  |
* Mixpanel's free tier has limited saved reports and no cohorts.

## Win Themes
- When the buyer is non-technical (VP Product, not Head of Data)
- When real-time matters (Mixpanel has 30-60 min event delay)
- When compliance is a factor (our SOC 2 vs their SOC 2 in progress)

## Landmines
Ask the prospect:
- "How long does it take your team to build a new dashboard today?"
  (Mixpanel's UI requires SQL for custom queries — G2 #1 complaint)
- "Do you need real-time data, or is a 30-minute delay acceptable?"
- "Who on your team will actually use this day-to-day?"

## Objection Handlers
**"Mixpanel has a more generous free tier."**
→ Their free tier caps saved reports at 5. Our Growth plan includes
  unlimited reports, real-time streaming, and dedicated support.

**"Our engineers already know Mixpanel's SDK."**
→ Our SDK is a drop-in replacement. Migration takes <1 day.
  We'll assign a solutions engineer to handle it at no cost.

**"Mixpanel has better integrations."**
→ We support 140+ integrations vs their 100+. The gap is closing.
  Ask which specific integrations they need — we likely have them.

That's a sales-ready battle card. Your PMM can review it, tweak the tone, and ship it in 15 minutes instead of building it from scratch over two days.

How to Iterate and Refine

The first output is rarely perfect. Here's how to tighten it up, and this is where Claude Code really shines compared to ChatGPT or other tools. Because Claude is working inside your project with your files, you just keep talking:

  • "Make the objection handlers shorter. Sales reps need one-line responses, not paragraphs."
  • "Add a section called 'Competitive Moves' that tracks their last 3 product announcements."
  • "The tone is too soft. Our sales team wants confident, almost aggressive positioning. Rewrite the win themes."
  • "Pull the latest G2 review data and update the landmine questions."

Each iteration takes 30-60 seconds. You're giving feedback like you'd give to a junior PMM, except this one executes instantly and never forgets your preferences.

Scaling to Your Full Competitive Set

Once your first card is dialed in, scaling is trivial. Drop new competitor data into the inputs/ folder and run the same prompt with a different competitor name. Claude follows the same format, same tone, same structure. Your entire competitive set gets the same quality treatment.

I've seen PMMs generate 8-10 battle cards in a single afternoon. The same work used to take their team two weeks. That's not a marginal improvement; it's a structural shift in how competitive intelligence gets done.

Keeping Cards Fresh

Stale battle cards are worse than no battle cards. Sales reps stop trusting them. The real power here is that updating a card takes 2 minutes. When a competitor changes pricing, drop the new info into your inputs folder and tell Claude: "Competitor B changed their pricing. Update the battle card." Done.

You can even set up a monthly ritual: spend 30 minutes updating input files with the latest competitor moves, then regenerate all cards in one batch. Your sales team always has current intel.

What PMMs Get Wrong

The biggest mistake I see: treating Claude Code like a chatbot. Pasting competitor URLs into ChatGPT and asking for a battle card gives you generic slop. Claude Code is different because it works inside your file system, reads your positioning docs, follows your templates, and produces output you can version-control and distribute.

The second mistake: skipping the CLAUDE.md setup. Without that context file, Claude doesn't know your product, your ICP, or your preferred format. Five minutes of setup saves hours of back-and-forth. Read the best practices guide to understand why context is everything.

Get Started Today

If you're a PMM spending days on battle cards, you can cut that to hours. If you're a PMM leader like Ashley, you can free your team to do the strategic work that actually moves pipeline instead of copying and pasting competitor pricing into a Google Doc.

New to Claude Code? Start with the step-by-step tutorial to get set up in 10 minutes.

Want to go deeper? ClaudeFluent is our premium training program where I teach product marketers, PMs, and operators how to use Claude Code for real workflows. Battle cards, launch briefs, competitive analysis, and dozens of other use cases. Join us for the next cohort.

Related Guides

WANT MORE LIKE THIS?

Learn to build with Claude Code

6 hours of hands-on training. Build real projects. Ship without waiting on engineering.

View Class Details