How I Built a Win/Loss System That Analyzes Thousands of Calls in Minutes

4 attempts, 3 failures, and the system that finally worked


The Problem Nobody Talks About

Every product marketer knows win/loss analysis is valuable. Talk to customers. Find patterns. Improve positioning. Win more deals.

But here's what nobody tells you: doing it properly takes weeks.

I had hundreds of sales calls sitting in Gong. Each one contained gold—why we won, why we lost, what competitors were saying, which pain points kept coming up. But extracting that gold meant going through calls one by one. Listening. Taking notes. Synthesizing.

By the time you're done, the insights are already stale.

I spent a year trying to solve this. Four attempts. Three failures. One system that finally works.

Here's exactly how I built it—including the prompts, architecture, and what broke along the way.


Attempt 1: Gong, One Call at a Time

What I Did: I used Gong's built-in AI features to extract insights from each call. Hundreds of them. One by one.

What Worked: The insights were genuinely valuable. Gong's AI understood conversations well—pain points, objections, competitor mentions. Quality wasn't the problem.

Why I Stopped: The process wasn't sustainable. It took days to get through a meaningful batch. At this rate, I'd spend my entire week just on win/loss analysis. The backlog grew faster than I could process it.

The Lesson: The tool was capable. The workflow was broken.


Attempt 2: ChatGPT, No Structure

What I Did: I downloaded transcripts from Gong and uploaded them into ChatGPT. Sometimes multiple transcripts for the same customer. I'd ask ChatGPT to analyze conversations and identify patterns.

What Worked: Much faster than Attempt 1. I could process several calls in the time it used to take me to do one.

Why I Stopped: Two problems killed this approach.

Problem 1: Inconsistent outputs. Every time I ran the same prompt, I got different structures. Bullet points. Paragraphs. Organized by topic. Organized chronologically. Comparing insights was painful.

Problem 2: Missing metadata. Transcripts didn't include:

  • Company name
  • Industry
  • Buyer title
  • Sales stage
  • Deal size signals

Without metadata, I couldn't filter or segment insights. I wanted to answer questions like "What do healthcare buyers care about?" or "Why do we lose enterprise deals?" But I had no way to slice the data.

And the workflow was still manual. Download. Paste. Copy output. Repeat.

The Lesson: Speed without structure creates a different kind of mess.


Attempt 3: Custom GPT, Strict Formatting

The Goal: Solve both problems from Attempt 2:

  1. Capture missing metadata
  2. Standardize outputs for comparison
  3. Automate saving to eliminate copying and pasting

What I Built: A custom GPT with a detailed prompt that enforced strict formatting and extracted metadata from context clues. Connected to Google Docs via Zapier—each analysis automatically saved by industry.

The Extraction Prompt (Simplified):

You are analyzing a B2B sales call transcript. Extract the following in this exact format:

## METADATA
- Company Name: [extract or mark UNKNOWN]
- Industry: [identify from context]
- Buyer Title(s): [extract from transcript]
- Sales Stage: [discovery / demo / negotiation / won / lost]

## PAIN POINTS
For each pain point:
- Pain: [description]
- Quote: [direct quote]
- Intensity: [high / medium / low]

## OBJECTIONS
- Objection: [description]
- Resolution: [how addressed or UNRESOLVED]

## WHAT RESONATED
- Topic: [what was discussed]
- Reaction: [how they responded]

## COMPETITOR MENTIONS
- Competitor: [name]
- Context: [why they came up]
- Sentiment: [positive / negative / neutral]

## PERSONAS
- Title: [role]
- Concerns: [what they cared about]
- Decision Role: [champion / influencer / blocker / decision-maker]

The Synthesis Layer: Individual analyses were useful, but the real power came from patterns. I built a second GPT for synthesis. Paste in 20 analyses from healthcare companies, and it would surface:

  • Top 5 pain points (with frequency)
  • Most common objections
  • Which competitors came up most
  • What messaging consistently resonated

The Results: Weeks became hours. Strict formatting meant every analysis was comparable. Automatic saves created a searchable archive. The synthesis GPT spotted patterns across dozens of calls in minutes.

What Was Still Missing: I was still uploading transcripts manually. Download from Gong. Paste into GPT. Wait. Repeat. Better, but still a bottleneck.

The Lesson: Structure matters. But manual workflows still create bottlenecks.


Attempt 4: Claude Code, Fully Automated

The Goal: Eliminate all manual steps. Pull calls automatically, analyze them, surface patterns—without me touching anything.

Why Claude Code: Custom GPTs have limitations. No direct API access. No persistent state. No ability to run scheduled jobs. Claude Code let me build workflows that GPTs couldn't handle.

The Architecture:

  1. Gong API Connection: Claude Code connects directly to Gong's API to fetch call transcripts automatically.

  2. Metadata Enrichment: Before analysis, the system enriches each transcript with data from our CRM—company name, industry, deal size, win/loss outcome, buyer titles.

  3. Batch Analysis: The extraction prompt runs on batches of calls. Claude analyzes thousands of transcripts in minutes.

  4. Structured Storage: Outputs save to a database, not docs. Filterable by industry, persona, sales stage, outcome.

  5. Pattern Detection: A synthesis agent runs weekly to identify trends. New objections. Competitor momentum shifts. Feature requests spiking.

The Prompts: Same extraction and synthesis structure from Attempt 3, but now running automatically at scale.

The Results: Thousands of calls analyzed in minutes. No manual uploads. Insights that shaped positioning decisions, content angles, and competitive strategy—surfaced automatically and accessible across the team.

The Lesson: True automation requires going beyond GPTs.


If You Can't Code: Start With the Custom GPT

Most marketers don't have time to build Attempt 4. You don't need to. The custom GPT approach (Attempt 3) delivers 80% of the value with 20% of the effort.

The Manual Workflow:

  1. Download transcripts from Gong for relevant calls
  2. Paste into your custom GPT with the extraction prompt
  3. Save the structured output to a Google Doc (manually or via Zapier)
  4. Batch 20-30 analyses and run them through a synthesis GPT
  5. Iterate on your prompt based on what's useful

This took me from weeks to hours. It's not fully automated, but it's a massive improvement.


What I'd Do Differently

1. Start with the Custom GPT. Prove the value first with a manual workflow before investing in infrastructure.

2. Get the extraction prompt right before scaling. Run your prompt on 20-30 calls manually. Watch for missing categories, hallucination patterns, and edge cases.

3. Think about synthesis from day one. Design your extraction format with pattern detection in mind. Ask: "If I had 100 of these, what questions would I want to answer?"

4. Capture all metadata early. Industry, title, sales stage, deal size, outcome. You'll want to filter later. Capture everything now.

5. Build incrementally. Each attempt taught me something:

  • Attempt 1: Insights are valuable, workflow is broken
  • Attempt 2: Speed matters, but so does structure
  • Attempt 3: Automation at the edges helps a lot
  • Attempt 4: True automation requires going beyond GPTs

I couldn't have built Attempt 4 without Attempts 1-3.


What's Next

This system is core to how our team operates, but it's not done. I'm working on:

  • Automated Slack summaries pushed to relevant channels weekly
  • Real-time alerts when competitors get mentioned 3x more than usual or new objection patterns emerge
  • CRM integration so reps see pain points, objections, and key quotes when they open opportunities