competitive-battlecard-builder
Competitive Battlecard Builder
Compatibility
The interactive app output and the PowerPoint export both require Code Interpreter available to the agent. Without it, present the battlecard as formatted chat text instead.
When writing Python for Code Interpreter, avoid building scripts through shell heredocs or string concatenation that has to escape the battlecard data inline, especially once brand colors, hex codes, or parenthesized function calls like RGBColor(...) are involved, unbalanced quotes or parens in the data will break the heredoc before your code ever runs. Write the JSON data to its own file (json.dump) and have the script json.load it, or write the whole script as a single Python file directly rather than assembling it through shell quoting.
Step 1: Gather the inputs
- Which kind of comparison this is — ask first, before anything else: is this a sales battlecard advocating for one specific product against competitors, or a neutral, unbiased comparison with no side taken? This determines the entire shape of what you build next, not just the wording:
- Battlecard: one product is "ours," the rest are competitors, compared pairwise (us vs. each one). Objection handling applies (Step 3's
objectionsarray), since that's inherently a sales concept, what a prospect pushes back with and how to respond. - Neutral comparison: there is no "ours." Every item is a peer, laid out as one shared matrix, all items as columns, one set of dimensions as rows, no anchor item privileged over the others. Never use the word "competitor" anywhere in this mode, not in what you say to the person, not in the data. Skip objection handling entirely, there's no seller position to defend. Gather comparably balanced detail on every item.
- Battlecard: one product is "ours," the rest are competitors, compared pairwise (us vs. each one). Objection handling applies (Step 3's
- The items being compared — for a battlecard: your product/company (name and a one-line positioning statement) plus one or more competitors. For a neutral comparison: two or more named items, genuinely peers, no ordering implication.
- What the person already knows — pitch, strengths, weaknesses for each item, and (battlecard only) objections prospects commonly raise. This is the primary source of truth. Ask for it directly rather than assuming you already know the landscape.
- Permission to supplement with web research (optional) — ask whether they'd like you to search for additional public information (pricing pages, marketing claims, review sites) to round out gaps. If they decline, work only from what they gave you.
Optionally ask for category tags (e.g. Pricing, Security, Integration, Support, Ecosystem) if they want the comparison filterable by category as well as by item. If they don't have a preference, pick 3-5 sensible categories based on the content itself.