Automatic Summarization of Meeting Transcripts: An LLM Pipeline
A 60-minute meeting generates 10,000–12,000 words of transcript. 80% of that volume is context, repetitions, and conversational filler. Without a summarization system, you spend 15–30 minutes manually extracting decisions — and the result suffers from subjectivity and omissions. We implement automatic summarization pipelines using LLMs that extract the semantic core in seconds and produce a structured summary with topics, decisions, and next steps.
In one project, we processed meetings for a team of 20 people — 3–5 meetings per day. After deployment, the time to prepare a summary dropped from 30 minutes to 20 seconds per meeting, and the quality became consistent. Time savings per meeting: up to 30 minutes, which at 50 meetings per month translates to 25 hours. Typical time savings: up to 95% per meeting.
How the Summarization Pipeline Works
The pipeline takes raw transcript (plain text or JSON with speaker labels) and returns a summary in this format:
- Short summary (2–3 sentences)
- Key topics
- Decisions made
- Open questions
- Participants and their positions
For short meetings (under 30 minutes, <6000 tokens), we use a direct prompt — latency 5–15 seconds. For long meetings, we apply map-reduce:
[Transcript]
→ [Preprocessing: split into chunks of 3000 tokens]
→ [Map: summarize each chunk]
→ [Reduce: synthesize final summary]
→ [Structuring: topics, decisions, next steps]
| Parameter | Direct Prompt | Map-Reduce |
|---|---|---|
| Meeting length | up to 30 min | from 30 min |
| Tokens | ≤ 6000 | > 6000 |
| Latency | 5–15 s | 20–60 s |
| Processing cost | from $0.02 | from $0.05 |
Comparison: Manual vs. Automated Summarization
| Criterion | Manual Processing | LLM Pipeline |
|---|---|---|
| Time per meeting | 15–30 min | 10–60 s |
| Subjectivity | high | none (uniform template) |
| Missed details | frequent | rare (depends on prompt) |
| Scalability | limited | any number of meetings |
An LLM pipeline summarizes a meeting 30 times faster than a human and eliminates subjectivity.
Which LLMs to Choose for Summarization?
Model selection depends on speed, cost, and quality requirements. For everyday meetings (status updates, planning), compact models like GPT-4o-mini or LLaMA 3 8B are optimal — they process short transcripts in 5–10 seconds and cost pennies. For technical discussions (architecture, code reviews), we use GPT-4o or Mistral Large — their deep context understanding reduces hallucinations. If data is confidential, we deploy locally with Qwen 72B or Mistral 7B using INT8 quantization. In any case, we use few-shot prompts with 2–3 examples to stabilize the output format.
Benefits of Automating Summarization
Manual summarization takes 15–30 minutes per meeting and is subjective. An LLM pipeline delivers a structured result in 10–60 seconds, consistently across all meetings. Our engineers, with 5+ years of experience, guarantee quality at the level of a senior analyst. For most companies, the processing cost per meeting is negligible, and the time savings pay off within the first few weeks. Contact us for a preliminary assessment — we will design an architecture for your volumes and demonstrate a working pipeline. Request a consultation to discuss your scenarios.
What's Included in the Work?
- Audit of current processes: transcript format, sources, summary requirements.
- Pipeline design: model selection, chunk definition, prompt engineering with few-shot examples.
- Integration with sources: Zoom (Whisper + API), Google Meet (Speech-to-Text), Microsoft Teams (Graph API), Fireflies.ai / Otter.ai (webhook).
- Deployment: containerization (Docker), deploy to your infrastructure or cloud.
- Documentation and team training.
- Support for 30 days after launch.
Example Python Implementation
from langchain.chains.summarize import load_summarize_chain
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.chat_models import ChatOpenAI
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0)
text_splitter = RecursiveCharacterTextSplitter(chunk_size=3000, chunk_overlap=200)
chain = load_summarize_chain(llm, chain_type="map_reduce")
Example output for a "Sprint Review" meeting:
{
"summary": "The team discussed progress on three tasks. Decision: extend deadline for task A by 2 days.",
"topics": ["Progress on task A", "Blocker on task B", "Sprint planning"],
"decisions": ["Task A deadline moved to Friday", "Decompose task B into subtasks"],
"action_items": ["@alice: update Jira", "@bob: estimate effort"]
}
Integrating the Pipeline with Your Sources
- Zoom — Zoom AI Companion API or Download recordings API + Whisper for transcription.
- Google Meet — Google Meet API + Speech-to-Text.
- Microsoft Teams — Graph API transcripts.
- Fireflies.ai / Otter.ai — webhook with ready transcript.
The result is saved to Notion, Confluence, Jira, or corporate wiki via their APIs. The approach is described in the LangChain documentation.
Timeline and Cost
Timeline: from 5 to 20 days depending on integration complexity and the need for map-reduce. Cost is calculated individually — depends on the number of sources, required accuracy, and custom prompts. Get a consultation: our engineers will analyze your processes and propose the optimal solution.







