Generate Competitive Positioning Responses
Use Claude to generate tailored competitive positioning responses based on competitor identity, prospect pain profile, and historical win patterns
Instructions
Generate Competitive Positioning Responses
Given a detected competitive objection (prospect evaluating or favoring a specific competitor), deal context, and historical competitive win/loss patterns, use the Claude API to generate a positioning response that differentiates without disparaging.
Prerequisites
- Classified competitive objection data (from
call-transcript-objection-extractionwith competitor context) - Deal record from Attio with pain data, champion info, and deal value
- Battlecard data for the named competitor (from
competitive-intel-aggregationor Attio Competitors object) - Anthropic API key
- Historical competitive win/loss rates (optional, improves framework selection)
API Call
POST https://api.anthropic.com/v1/messages
Authorization: x-api-key {ANTHROPIC_API_KEY}
Content-Type: application/json
Request body:
{
"model": "claude-sonnet-4-20250514",
"max_tokens": 3000,
"messages": [{
"role": "user",
"content": "Generate a competitive positioning response for a sales conversation where the prospect is evaluating a competitor.\n\nCompetitor context:\n- Competitor name: \"{competitor_name}\"\n- Their known strengths (from battlecard): \"{competitor_strengths}\"\n- Their known weaknesses (from battlecard): \"{competitor_weaknesses}\"\n- Our historical win rate against them: {win_rate_against}%\n- Common objections in competitive deals with them: \"{common_objections}\"\n\nObjection details:\n- Prospect quote: \"{objection_quote}\"\n- Objection type: {competitive_objection_type}\n- Emotional tone: {emotional_tone}\n- Severity: {severity}/10\n- Evaluation stage: {evaluation_stage}\n\nDeal context:\n- Company: {company_name}\n- Industry: {industry}\n- Company size: {company_size}\n- Deal value: ${deal_value}/year\n- Top 3 pains: {top_pains_json}\n- Champion: {champion_name}, {champion_title}\n- Decision criteria (if known): {decision_criteria}\n\nGenerate a competitive positioning response. NEVER disparage the competitor directly. Focus on differentiation aligned to the prospect's specific pains. Return this exact JSON:\n{\n \"positioning_framework\": \"pain_alignment|capability_gap|tco_comparison|implementation_risk|customer_proof|strategic_fit\",\n \"verbal_response\": \"The exact words to say on a call (3-5 sentences max). Acknowledge the competitor respectfully, then pivot to differentiation on the prospect's top pain.\",\n \"trap_questions\": [\"2-3 questions that highlight areas where we are strong and the competitor is weak, without naming the competitor. These questions make the prospect discover the gap themselves.\"],\n \"comparison_talking_points\": [\n {\"dimension\": \"dimension name\", \"our_position\": \"what we do\", \"their_gap\": \"what they lack or do differently\", \"why_it_matters\": \"tied to this prospect's specific pain\"}\n ],\n \"follow_up_email\": {\n \"subject\": \"Email subject (no competitor name in subject)\",\n \"body\": \"Follow-up email under 200 words. Lead with the prospect's pain. Show how our approach uniquely solves it. Include one customer proof point. End with a specific next step.\"\n },\n \"champion_ammunition\": {\n \"internal_talking_points\": \"3 bullet points the champion can use when presenting to the buying committee to differentiate us\",\n \"evaluation_criteria_suggestions\": [\"Criteria we should suggest the prospect add to their evaluation that favor our strengths\"]\n },\n \"supporting_asset\": {\n \"type\": \"tco_comparison|feature_matrix|customer_case_study|migration_guide|technical_deep_dive\",\n \"description\": \"What to create or share and why\"\n },\n \"if_they_push_back\": \"What to say if the prospect pushes back on this positioning. Second-level response.\",\n \"deal_risk_assessment\": \"low|medium|high — based on competitor strength against this prospect's specific criteria\"\n}"
}]
}
Competitive Objection Types
Classify the competitive objection before generating a response:
| Type | Signal | Example |
|------|--------|---------|
| active_evaluation | Prospect is comparing side-by-side | "We're also looking at {competitor}" |
| incumbent_loyalty | Prospect already uses competitor | "We're happy with {competitor} but exploring" |
| feature_comparison | Prospect names a specific feature gap | "{competitor} has X, do you?" |
| price_comparison | Competitor is cheaper | "{competitor} quoted us 40% less" |
| social_proof | Competitor has stronger brand/references | "Our peer companies all use {competitor}" |
| switching_cost | Migration fear | "We've invested a lot in {competitor}" |
Positioning Framework Selection
When historical data is not available, use these default mappings:
| Objection Type | Primary Framework | Why | |---------------|------------------|-----| | active_evaluation | pain_alignment | Anchor evaluation to their pains, not features | | incumbent_loyalty | implementation_risk | Show cost of staying (stagnation risk) vs switching | | feature_comparison | capability_gap | Reframe from feature to outcome — what does the feature enable? | | price_comparison | tco_comparison | Expand the comparison from license cost to total cost of ownership | | social_proof | customer_proof | Counter with references from same segment who chose us | | switching_cost | strategic_fit | Reframe from short-term migration cost to long-term strategic alignment |
When historical data IS available, override defaults with the highest win-rate framework for that competitor + objection type, provided sample size >= 5.
Output
JSON response object containing:
- Positioning framework selected
- Verbal response for live conversation
- Trap questions that surface competitor weaknesses organically
- Comparison talking points tied to prospect pains
- Follow-up email with competitive positioning
- Champion ammunition for internal selling
- Supporting asset recommendation
- Second-level response if prospect pushes back
- Deal risk assessment
Store in Attio as a note on the deal record. Log in PostHog as competitive_positioning_generated event.
Guardrails
- NEVER include competitor disparagement — no "they can't," "they're bad at," "they fail." Always frame as "we do X differently because..."
- NEVER lie about competitor capabilities. If uncertain, say "I'd want to verify that" rather than claiming they lack something.
- If the competitor is genuinely stronger on the prospect's top pain, flag this: "Competitor has a strong position on {pain}. Consider whether secondary pains can carry the deal, or whether this is a competitive loss we should qualify out early."
- If
severity >= 8andevaluation_stageis "finalist_comparison", recommend a human-led competitive strategy session rather than automated response. - Rate limit: max 3 positioning generations per deal per day.
Alternatives
| Tool | Method | Notes | |------|--------|-------| | Claude (Anthropic) | Messages API | Best for nuanced competitive positioning with structured output | | GPT-4 (OpenAI) | Chat Completions API | Alternative LLM | | Klue | Competitive intelligence platform | Purpose-built battlecard management, API available | | Crayon | Competitive intelligence platform | Real-time competitor monitoring + battlecards | | Kompyte (Semrush) | Competitive intelligence | Automated competitive tracking | | Manual | Battlecard reference sheet | Fallback for high-stakes enterprise deals |