Skip to content
meeting-synthesis logo

Meeting Synthesis

meeting-synthesis

Use when extracting product signals from meeting transcripts - systematically identifies asks, problems, quotes, and evidence across time windows with customer attribution

SKILL.md

Full skill instructions

Meeting Synthesis

Purpose

Extract actionable product signals from meeting transcripts:

  • Feature requests and capability asks
  • Pain points and friction areas
  • Customer quotes and verbatim feedback
  • Evidence for epic creation and prioritization
  • Pattern detection across multiple customers

When to Use This Skill

Activate automatically when:

  • product-planning workflow gathers signals for epics
  • cs-prep workflow compiles customer context for QBRs
  • strategy-session workflow needs customer insights
  • User explicitly requests meeting synthesis
  • Any workflow requires customer evidence extraction

Signal Types

1. Feature Requests ("Asks")

Explicit requests for new capabilities or enhancements.

Indicators:

  • "We need..."
  • "Can you build..."
  • "It would be great if..."
  • "Our team wants..."

Extract:

  • What capability is requested?
  • Why is it needed? (business impact)
  • Who requested it? (customer, role)
  • When? (meeting date)

2. Pain Points ("Problems")

Friction, blockers, or inefficiencies users experience.

Indicators:

  • "It's frustrating that..."
  • "We struggle with..."
  • "The current process is..."
  • "Our team spends too much time..."

Extract:

  • What is the pain point?
  • How does it impact workflow/​outcomes?
  • Frequency/​severity?
  • Who experiences it?

3. Onboarding Friction

Specific difficulties during setup or first value realization.

Indicators:

  • "Setup was confusing..."
  • "Took us X weeks to..."
  • "Couldn't figure out how to..."
  • "Documentation unclear on..."

Extract:

  • What step caused friction?
  • How long did it take?
  • Was it eventually resolved?
  • Suggestions for improvement?

4. Integration Gaps

Missing connectors or data sync capabilities.

Indicators:

  • "We use [Tool X] but can't connect..."
  • "Data sync with [Platform Y]..."
  • "Export to [System Z]..."

Extract:

  • What integration is needed?
  • What data needs to flow?
  • Current workaround (if any)?
  • Business impact of gap?

5. Performance Needs

Speed, scale, or reliability requirements.

Indicators:

  • "Too slow when..."
  • "Times out on..."
  • "Can't handle X records..."
  • "Need real-time..."

Extract:

  • What operation is slow?
  • Current performance vs. needed?
  • Scale requirements?
  • Impact on usage?

Synthesis Process

1. Determine Time Window

Inputs:

  • days: Explicit lookback window (e.g., 7, 14, 30)
  • last_run: Timestamp from state file (e.g., datasets/​product/​.meetings-to-backlog-state.json)
  • Default: 3 days if no inputs provided

Calculate cutoff date:

If days provided:
  cutoff_date = current_date - days
Else if last_run exists:
  cutoff_date = last_run timestamp
Else:
  cutoff_date = current_date - 3 days

2. Collect Meeting Files

Scan paths:

datasets/​meetings/​Customers/​**/​YYYY/​*.md  (where date >= cutoff_date)
datasets/​meetings/​Internal/​Product/​YYYY/​*.md  (where date >= cutoff_date)

Use Glob to find files:

Glob pattern: datasets/​meetings/​Customers/​**/​2025/​*.md
Glob pattern: datasets/​meetings/​Internal/​Product/​2025/​*.md

Filter by date:

  • Extract date from filename (YYYY-MM-DD prefix)
  • Compare to cutoff_date
  • Keep only files >= cutoff_date

3. Extract Signals from Each Meeting

For each meeting file:

A. Parse frontmatter:

date: "YYYY-MM-DD"
type: "sales|product|customersuccess|..."
customer: "Company Name"
participants: ["Person A", "Person B"]
tags: ["2025Q3", "keyword"]

B. Read sections:

  • ## ⬇️ AI Summary → High-level signals
  • ## ⬇️ Action Items → Commitments and follow-ups
  • ## ⬇️ Full Transcript → Detailed context and quotes

C. Identify signal candidates: Use pattern matching:

Feature requests: grep -i "we need\|can you\|would be great\|want to" transcript
Pain points: grep -i "frustrat\|struggle\|difficult\|problem\|issue" transcript
Onboarding: grep -i "setup\|onboard\|getting started\|first" transcript
Integrations: grep -i "integrat\|connect\|sync\|export" transcript
Performance: grep -i "slow\|timeout\|performance\|scale" transcript

D. Extract verbatim quotes:

  • Capture 1-3 sentence snippets around signal indicators
  • Preserve exact wording for evidence
  • Include speaker attribution if available

E. Record metadata: For each signal:

{
  "signal_text": "Verbatim quote or paraphrase",
  "signal_type": "ask|problem|friction|integration|performance",
  "customer": "Company Name",
  "date": "YYYY-MM-DD",
  "meeting_type": "sales|product|customersuccess",
  "source_file": "/​path/​to/​meeting.md",
  "section": "AI Summary|Action Items|Full Transcript"
}

4. Cluster Signals

Semantic clustering:

  • Group similar signals across customers
  • Identify common themes
  • Label clusters with action-style names (Verb + Object + Outcome)

Examples:

  • "Revamp onboarding to reduce TTFV" (multiple onboarding friction signals)
  • "Add Google Sheets export capability" (multiple export/​integration requests)
  • "Improve dashboard load performance" (multiple performance complaints)

For each cluster:

{
  "cluster_label": "Action-style theme name",
  "mention_count": N,  # Total signal occurrences
  "unique_accounts": N,  # Distinct customers
  "unique_functions": N,  # Customer vs. internal sources
  "signals": [array of signal objects],
  "recentness_weight": calculated_score  # Newer = higher
}

5. Compute Signal Metrics

For each cluster:

A. Mention count: Total occurrences across all meetings.

B. Unique accounts: Distinct customer names in signal sources.

C. Unique functions: Count of different source types:

  • External customers
  • Internal product team
  • Partner/​agency feedback

D. Recentness weight:

For each signal in cluster:
  days_ago = current_date - signal.date
  recentness_score = max(0, 30 - days_ago) / 30  # Linear decay over 30 days
Average recentness across all signals in cluster

E. Source diversity: Mix of meeting types:

  • Sales calls
  • Product feedback sessions
  • Customer success check-ins
  • Onboarding calls

Higher diversity = stronger signal.

6. Output Synthesized Data

Return structured object:

{
  "time_window": {
    "start_date": "YYYY-MM-DD",
    "end_date": "YYYY-MM-DD",
    "days_scanned": N,
    "meetings_processed": N
  },
  "clusters": [
    {
      "label": "Cluster name",
      "mention_count": N,
      "unique_accounts": N,
      "unique_functions": N,
      "recentness_weight": 0.0-1.0,
      "source_diversity": 0.0-1.0,
      "signals": [
        {
          "text": "Quote or paraphrase",
          "customer": "Company",
          "date": "YYYY-MM-DD",
          "meeting_type": "...",
          "source_file": "..."
        }
      ]
    }
  ],
  "raw_signals": [all unclustered signals for reference]
}

Filtering and Scoping

Customer Filter

Input: include_customers (comma-separated list)

Behavior:

  • If provided: Only process meetings where customer field matches list
  • If not provided: Process all customers

Example:

include_customers: "PrettyBoy,CompoundStudio,Joy Organics"
→ Only synthesize signals from these three customers

Function Filter

Input: include_internal_functions (comma-separated list)

Behavior:

  • If provided: Only process internal meetings from specified functions
  • Functions: Product, CS, Sales, Marketing, Ops

Example:

include_internal_functions: "Product,CS"
→ Process internal Product and CS meetings, skip Sales/​Marketing/​Ops

Signal Thresholds

Input filters:

  • min_mentions: Minimum total mentions to qualify (default: 1)
  • min_sources: Minimum distinct sources (customers/​functions) to qualify (default: 1)

Application: After clustering, filter out clusters that don't meet thresholds:

Keep cluster if:
  cluster.mention_count >= min_mentions AND
  cluster.unique_accounts + cluster.unique_functions >= min_sources

Type Exclusions

Input: exclude_types (comma-separated list)

Behavior: Ignore signals matching certain categories.

Default exclusions:

exclude_types: "bugs,housekeeping"

Examples:

  • "bugs": Bug reports (should go to issue tracker, not epics)
  • "housekeeping": Internal cleanup tasks
  • "research": Exploratory ideas (not ready for roadmap)

Integration with Workflows

Product Planning Integration

Invoked by:

  • product-planning workflow

Inputs:

  • Time window (days or last_run)
  • Customer filter (optional)
  • Function filter (optional)
  • Thresholds (min_mentions, min_sources)

Outputs:

  • Clustered signals ready for epic creation
  • Evidence for epic "Why now" sections
  • Customer quotes for epic proposals

CS Prep Integration

Invoked by:

  • cs-prep workflow

Inputs:

  • Specific customer name
  • Time window (typically 30-90 days for QBR prep)

Outputs:

  • Customer-specific signal history
  • Pain points and friction areas
  • Feature requests and timeline
  • Quotes for QBR discussion

Strategy Session Integration

Invoked by:

  • strategy-session workflow

Inputs:

  • Time window (often broader, e.g., 90 days)
  • Optional topic filter

Outputs:

  • Cross-customer patterns
  • Market trends from customer feedback
  • Evidence for strategic decisions

Success Criteria

Meeting synthesis complete when:

  • All meetings in time window processed
  • Signals extracted and categorized
  • Clustering applied (semantic grouping)
  • Metrics computed (mentions, accounts, recency)
  • Output structured for consuming workflows
  • Verbatim quotes preserved for evidence

Common Mistakes

MistakeFix
Paraphrasing customer quotesPreserve verbatim text for accuracy
Ignoring meeting date filtersRespect cutoff_date strictly
Missing signal categorizationTag each signal as ask/​problem/​friction/​etc.
Not recording source file pathsTrack every signal back to source meeting
Skipping semantic clusteringGroup similar signals for pattern detection

Related Skills

  • meeting-schema-validation: Validates meetings before synthesis
  • priority-scoring: Uses synthesis output for epic prioritization
  • product-planning: Primary consumer of synthesis output

Anti-Rationalization Blocks

Common excuses that are explicitly rejected:

RationalizationReality
"Close enough" on quotesPreserve exact wording or mark as paraphrase.
"Skip old meetings"Process all meetings in time window.
"This signal doesn't fit categories"Categorize as best match or flag as uncategorized.
"Single mention isn't worth tracking"Track all signals, filter by thresholds later.

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View