ooligo
claude-skill

Battlecards competitivos auto-gerados a partir do Gong

Dificuldade
intermediário
Tempo de setup
60min
Para
revops · ae
RevOps

Stack

Uma Claude Skill que minera conversas de win/loss no Gong, reconcilia contra resultados de deals no Salesforce e produz um battlecard interno que o rep consegue ler a caminho da call. O card é estruturado: resumo de posicionamento, onde você ganha, onde você perde, talk-tracks por objeção (cada uma marcada como interna ou voltada ao cliente), e uma lista curta de “armadilhas a evitar”. Substitui o battlecard escrito pelo PMM, que era verdade no dia em que saiu e está desatualizado no trimestre seguinte.

Quando usar

Use essa skill quando um deal ativo em pipeline cita um concorrente que você já acompanha e o card existente tem mais de ~30 dias. O rep precisa de uma folha de objection-handling hoje, não na próxima sprint. A skill roda em cerca de 90 segundos contra uma janela de 180 dias do Gong e produz um card em Markdown que o rep cola no registro do deal.

O bundle em apps/web/public/artifacts/competitive-battlecard-skill/ contém:

  • SKILL.md — a definição da Skill com seções When to invoke, Inputs, Method, Output format e Watch-outs.
  • references/1-battlecard-format.md — o esqueleto Markdown literal que a Skill preenche, com regras de ordenação das seções.
  • references/2-objection-talk-track-library.md — handlers canônicos para os cinco padrões recorrentes de objeção (agressão de preço, profundidade de integração, esforço de migração, qualidade de suporte, segurança e compliance) mais a exceção de gap real de feature.
  • references/3-internal-vs-external.md — as regras de classificação que decidem quais linhas podem sair da empresa, incluindo a blocklist de métricas exclusivamente internas e o comportamento de auto-redação.

Quando NÃO usar

Pule a skill em qualquer destes casos — rodar mesmo assim produz um artefato que desperdiça o tempo do rep ou, pior, dispara FUD.

  • O concorrente tem menos de ~5 menções na janela de lookback. A Skill devolve “sinal insuficiente” em vez de encher linguiça; não re-rode com uma janela mais larga na esperança de mais dados.
  • Você precisa de uma página de comparação voltada ao cliente. Essa Skill produz um battlecard interno. As regras de classificação em references/3-internal-vs-external.md existem justamente para que linhas internas nunca vazem; para páginas de comparação voltadas ao cliente, construa um artefato separado revisado por PMM e jurídico.
  • O “concorrente” é o status quo (Excel, script in-house, nenhuma ferramenta). Vender contra status quo é uma motion diferente — não há posicionamento de concorrente nomeado a extrair. Use um script de discovery.
  • Você só tem deals ganhos taggeados. Sem dados de loss, a Skill não consegue extrair padrões de perda, e um battlecard que só descreve vitórias é reconfortante, mas inútil.

Setup

  1. Tagueie os deals. Todo deal Closed Won e Closed Lost dos últimos 12 meses precisa de pelo menos um concorrente preenchido na Opportunity. Se a cobertura está abaixo de ~70%, rode um backfill único — o Claude consegue ler as notas do deal e propor tags de concorrente para aprovação humana. Faça isso primeiro; tudo a jusante depende da cobertura de tagueamento.
  2. Instale a Skill. Coloque o bundle em ~/.claude/skills/ (ou o equivalente em escopo de projeto). Defina GONG_API_KEY e SFDC_TOKEN no ambiente. Confirme com /skills que a Skill competitive-battlecard resolve e a descrição renderiza.
  3. Configure o escopo. Edite references/competitor-list.md (você cria a partir do stub do template) com os 3-5 concorrentes que você acompanha ativamente, os aliases (variantes de caixa e de módulo de produto — Competitor X — Core versus Competitor X — Enterprise — explicitamente), e a motion de vendas com que cada um lidera.
  4. Substitua os referenciais-template. O objection-talk-track-library.md e o internal-vs-external.md que vêm no bundle são templates com handlers placeholder. PMM e jurídico revisam e substituem pelos handlers reais do seu time e pela blocklist real do seu time antes da primeira geração. Não pule — a Skill alegremente preenche templates com especificidade alucinada se o conteúdo dos referenciais for genérico.
  5. Gere. Invoque competitive-battlecard(competitor="competitor-x", lookback_days=180). Passe deal_id se o card é para um deal ao vivo específico, para que os talk-tracks pesem em direção às objeções levantadas naquela thread. Passe prior_card_path para receber um diff “o que mudou desde o último refresh” anexado.
  6. Refresh em cadência de 30 dias por concorrente. Agende a geração. Mais velho que 30 dias e o card prepende um banner “verifique antes de usar” — isso é feature, não bug, mas chateia os reps.

O que a skill faz de fato

Cinco passos, em ordem, sem paralelismo — passos posteriores dependem de contexto dos anteriores.

  1. Puxar o corpus de calls. Consulte o Gong para toda call na janela de lookback em que o concorrente ou um dos aliases (conforme references/competitor-list.md) é mencionado. Extraia uma janela de transcrição de 60 segundos para cada lado da menção. Hard cap em 200 calls; acima disso, estreite a janela antes de amostrar.
  2. Reconciliar com os outcomes do Salesforce. Junte o deal ID de cada call contra a Opportunity. Coloque em buckets won, lost, open e unknown (sem match no SFDC). O bucket unknown é descartado da síntese — viés de seleção alto demais — mas a contagem é reportada como nota de qualidade de dados.
  3. Extrair padrões de loss. Duas passadas. A primeira classifica cada snippet de deal perdido em um dos padrões canônicos de references/2-objection-talk-track-library.md ou em other. A segunda promove um padrão novo apenas se o mesmo tema aparece em 3+ deals; abaixo desse limiar, as citações saem cruas, sem generalização. O limiar de três deals é a linha “ruído versus sinal” — qualquer coisa abaixo inventa padrões a partir de uma ou duas anedotas.
  4. Extrair padrões de win. A mesma abordagem de duas passadas contra o bucket de ganhos. A citação “escolhemos vocês porque…” é o artefato de maior sinal e sai verbatim com o ID da call.
  5. Montar o card e classificar cada linha. Preencha o esqueleto de references/1-battlecard-format.md. Carimbe cada linha com [INTERNAL] ou [EXTERNAL_OK] segundo as regras de references/3-internal-vs-external.md. Auto-redija métricas internas em linhas [EXTERNAL_OK] para que o talk-track permaneça utilizável diante de um cliente sem vazar o número subjacente.

A realidade do custo

Uma execução típica puxa de 50 a 150 calls de janelas de transcrição de 60 segundos, mais as páginas públicas do concorrente (pricing, produto, blog posts recentes). O custo em tokens fica em aproximadamente 40-80k input tokens e 8-15k output tokens por battlecard, ou cerca de US$ 0,20-US$ 0,50 de Claude Sonnet nos preços atuais. Três concorrentes com refresh mensal sai bem abaixo de US$ 5/mês; a história de custo é dominada pelo tempo humano poupado (um battlecard escrito pelo PMM é meio dia de trabalho), não pelo modelo.

O custo não-trivial é a cadência de refresh de 30 dias por concorrente acompanhado. Se você acompanha 3 concorrentes, é uma geração a cada dez dias em média. Agende; não rode sob demanda ou você vai esquecer. O card carrega um banner “verifique antes de usar” assim que qualquer fonte pública nele tem mais de 30 dias, que é o cão de guarda para quando a cadência derrapa.

O custo oculto é a revisão de PMM e jurídico dos referenciais antes da primeira execução. Uma instalação pela primeira vez exige ~2 horas de tempo de PMM substituindo o template do talk-track-library pelos handlers reais do seu time, e ~1 hora de tempo de jurídico confirmando a blocklist interna-versus-externa. Pule isso e a Skill entrega handlers genéricos com especificidade que parece confiante — o pior modo de falha possível.

Métrica de sucesso

Duas métricas vale acompanhar, nenhuma delas “battlecards gerados”:

  • Win rate contra o concorrente nomeado, medido trimestralmente, escopado a deals em que o rep usou o battlecard mais recente (acompanhe via um campo “battlecard version” na Opportunity). A baseline é seu win rate atual; a barra a vencer é +5 pontos percentuais em até dois trimestres após adoção. Abaixo desse delta, ou os battlecards não estão sendo lidos, ou os dados por baixo deles são rarefeitos demais — diagnostique antes de continuar.
  • Time-to-battlecard-refresh, medido como idade mediana do card usado em um deal no momento em que o deal fechou. Antes da Skill, essa mediana é o que fosse a cadência de PMM — geralmente trimestres. Depois, deve ser abaixo de 30 dias. Se não for, o agendamento está quebrado e o banner “verifique antes de usar” está sendo ignorado.

vs alternativas

vs Klue / Crayon (plataformas prontas de inteligência competitiva): Klue e Crayon são mais fortes no lado de fontes públicas — eles raspam páginas de pricing e features de concorrentes em cadência e mostram diffs sem você precisar montar. São mais fracos no lado do corpus interno de calls; integração com Gong + Salesforce existe mas não é o centro de gravidade do produto, e os battlecards resultantes pendem para “o que o site deles diz” em vez de “o que seus clientes de fato disseram na sala”. Essa Skill é o inverso: corpus interno primeiro, fontes públicas como complemento. A escolha é em que lado dos dados você confia mais — para uma motion de vendas em que o fator decisivo é objection handling ancorado em evidência interna, é essa Skill. Para um cenário competitivo de 50 concorrentes em que amplitude importa mais que profundidade em cada, é Klue ou Crayon.

vs battlecards escritos pelo PMM no Notion/Confluence: o card escrito pelo PMM tem prosa melhor e posicionamento mais apertado. Ele também envelhece em cadência trimestral na melhor das hipóteses, e representa o que o PMM acha que os clientes dizem em vez do que os clientes de fato disseram. Use o output da Skill como input para o card escrito pelo PMM — deixe o PMM curar voz e estrutura, mas ancore toda afirmação nos padrões + citações + IDs de call do Gong da Skill. A motion combinada é mais forte que qualquer uma sozinha.

vs DIY (analistas em um Google Doc): dá para fazer com pessoas e uma tarde por concorrente por trimestre. A razão para automatizar é a cadência — battlecards uma-vez-por-trimestre estão desatualizados no segundo mês — não o custo por card.

Pontos de atenção

  • Risco de difamação. Toda afirmação comparativa sobre produto, preço ou suporte do concorrente precisa rastrear até uma fonte pública que o concorrente publicou. Guarda: a Skill rejeita qualquer linha [EXTERNAL_OK] que não carregue uma URL fonte buscada na execução atual; ela vira a linha para [INTERNAL] e registra a razão no apêndice de auditoria.
  • Dados públicos desatualizados. Páginas de pricing de concorrentes mudam sem aviso. Um battlecard construído em cima de um screenshot de 6 meses vai envergonhar o rep na call. Guarda: toda URL de fonte pública no card carrega uma data fetched; se qualquer fonte tem mais de 30 dias no momento da geração, o card prepende um banner “verifique antes de usar”.
  • FUD versus fato. Reps querem one-liners que esmaguem o concorrente; o Claude obedece de bom grado a menos que restringido. Guarda: a Skill rejeita qualquer handler cujo sujeito é o concorrente e cujo predicado não é diretamente atribuível a uma citação de cliente ou a uma fonte pública do concorrente. Se nenhuma das duas existe, o handler é reescrito em chave produto-positiva (“é assim que fazemos X”) em vez de concorrente-negativa (“eles não fazem X”).
  • Vazamento interno-versus-externo. Um handler marcado [EXTERNAL_OK] pode ainda embutir um dado exclusivamente interno (contagem de deals, win rates, benchmarks internos de preço). Guarda: a passada de classificação varre cada linha [EXTERNAL_OK] contra a blocklist em references/3-internal-vs-external.md e auto-redige matches como [REDACTED — internal metric] para que o talk-track permaneça utilizável sem vazar o número.
  • Viés de seleção no tagueamento de loss. Reps sub-registram o concorrente em deals perdidos — as perdas dolorosas são as menos prováveis de serem taggeadas. Guarda: a nota de qualidade de dados sempre reporta a contagem de unknown; sempre que ela passa de 20% das calls puxadas, o card prepende um banner “cobertura de tagueamento de concorrente está baixa — interprete padrões de loss com cautela”.
  • Acurácia de citação. A transcrição do Gong distorce termos técnicos. Guarda: a Skill marca qualquer citação cujo confidence score do Gong está abaixo de 0,85 com [low-confidence transcript]; reps são instruídos no cabeçalho do formato a verificar antes de usar.
  • Sprawl de battlecard. Três a cinco concorrentes ativos é suficiente. Além disso, você produz artefatos que nenhum rep lê, e o custo de mantê-los atualizados excede o ganho de win rate. Limite a lista de concorrentes explicitamente e poda anualmente.

Stack

  • Gong — corpus de calls e voz do cliente; a evidência de citação won/lost vem daqui.
  • Salesforce — ground truth de outcome de deal; a divisão das calls em won/lost/open/unknown depende dos dados de Opportunity.
  • Claude — extração, classificação, adaptação de talk-track, carimbo interno-versus-externo.
  • Notion ou Confluence (opcional) — destino para o card curado pelo PMM se você passar o output da Skill por uma camada editada por humano; a Skill emite Markdown que cola limpo em qualquer um dos dois.

Arquivos deste artefato

Baixar tudo (.zip)