mcpbeat Sign in

Meeting Processor Skill for Claude

This skill should be used when processing meeting transcripts to auto-detect meeting type (leadgen, partnership, coaching, internal) and extract type-specific structured analysis. Triggers on "process meeting", "analyze meeting", "meeting summary", or after syncing new Fathom/Granola transcripts.

12k tokens
context cost
the whole folder, loaded on every use
13
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
337
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/glebis/claude-skills --skill meeting-processor

What comes with it

40 899 bytes besides the instruction
.claude-plugin/plugin.json
README.md
process_interactive.sh
scripts/detectors.py
scripts/extractors/__init__.py
scripts/extractors/coaching.py
scripts/extractors/leadgen.py
scripts/extractors/partnership.py
scripts/interactive.py
scripts/process.py
scripts/process_with_answers.py
skill.json

The instruction itself

14 sections, as written by the author

Meeting Processor

Intelligent meeting transcript processor that auto-detects meeting type and applies type-specific extraction with optional interactive clarification.

When to Use

  • After syncing Fathom or Granola transcripts (/fathom --today, /granola export)
  • When asked to process, analyze, or summarize a meeting transcript
  • When a new meeting transcript appears in the vault root matching YYYYMMDD-*.md
  • For coaching sessions, delegate to coaching-session-summarizer skill instead

Prerequisites

pip install openai pyyaml

Requires CEREBRAS_API_KEY environment variable (uses Cerebras API with llama-3.3-70b).

Supported Meeting Types

| Type | Description | Key Extractions |

|------|-------------|-----------------|

| leadgen | Sales/business development calls | Commitments, pain points, budget, timeline, decision makers, deal stage, sentiment |

| partnership | Collaboration/partnership exploration | Opportunity overview, value proposition, strategic alignment, technical needs, fit assessment |

| coaching | Coaching/mentoring sessions | Insights, decisions, action items, themes, emotional arc, techniques, session quality |

| internal | Internal team meetings | Coming soon |

Usage

Interactive Mode (default)

Run the processor, which auto-detects meeting type and asks clarifying questions:

python3 ~/.claude/skills/meeting-processor/scripts/process.py <transcript-file> --mode interactive

Interactive flow:

  • Script analyzes transcript and detects meeting type
  • Extracts structured data via LLM
  • Identifies missing/ambiguous fields
  • Returns questions as JSON (exit code 2 signals interaction needed)
  • Parse the JSON between __INTERACTIVE_QUESTIONS__ markers
  • Use AskUserQuestion to collect answers for each question
  • Save answers to a temp JSON file and re-run with process_with_answers.py

Handling interactive questions:

When the script exits with code 2, parse the output for questions JSON. Each question has:

  • question: The question text
  • header: Short label (used as answer key)
  • options: Array of {label, description} for AskUserQuestion

After collecting answers, create two temp files:

  • questions.json — the original questions context (includes partial_data, meeting_type, transcript_file)
  • answers.json — map of {header_lowercase: selected_label}

Then run:

python3 ~/.claude/skills/meeting-processor/scripts/process_with_answers.py questions.json answers.json

Batch Mode

Extract only high-confidence information without user interaction:

python3 ~/.claude/skills/meeting-processor/scripts/process.py <transcript-file> --mode batch

Force Meeting Type

Skip auto-detection:

python3 ~/.claude/skills/meeting-processor/scripts/process.py <transcript-file> --type leadgen
python3 ~/.claude/skills/meeting-processor/scripts/process.py <transcript-file> --type partnership

Output

Analysis is appended to the transcript file as a ## Meeting Analysis section. Frontmatter is updated with meeting_type, processed_date, and processing_mode.

Leadgen Output Structure

  • Commitments & Actions — with deadlines and owners
  • Follow-up — next meeting date if scheduled
  • Client Context — pain points, budget, timeline, decision makers
  • Deal Assessment — stage (cold/warm/hot), probability (1-5), blocker, sentiment

Partnership Output Structure

  • Opportunity — description and value proposition for both sides
  • Commitments & Actions — with deadlines and owners
  • Follow-up — next meeting date if scheduled
  • Partnership Context — strategic alignment, technical needs, resources, challenges
  • Opportunity Assessment — fit (strong/medium/weak), readiness, success factors, sentiment

After the meeting analysis is complete (Step 1), automatically link any matching meeting-prep notes to the session note. This replaces the need to manually run /meeting-prep link.

How It Works

  • Derive the meetings directory from the processed session note's parent directory (do not hardcode paths).
  • Extract session metadata from the processed note:
  • date from frontmatter (YYYYMMDD format)
  • participants from frontmatter (list of names)
  • If no participants field, extract names from the transcript header or attendee list
  • Search for matching prep notes:
   find <MEETINGS_DIR> -name "YYYYMMDD-prep-*" -type f 2>/dev/null

Where YYYYMMDD is the session date.

  • Validate the match: For each candidate prep note, read its frontmatter and confirm:
  • The date field matches the session date
  • The participant field matches one of the session's participants (fuzzy: check both full name and first name, case-insensitive)
  • The session_note field is empty ("") — skip already-linked prep notes
  • Update both files when a match is found:

In the prep note:

  • Set session_note: "[[session-note-filename]]" (without .md extension)
  • Set status: done

In the session note:

  • If a ## See also section exists, add - [[YYYYMMDD-prep-participant-slug]] to it
  • Otherwise, append a new section at the end:
     ## Prep Note
     - [[YYYYMMDD-prep-participant-slug]]
  • Never create duplicate links — check if the link already exists before adding
  • Report in the processing output which prep notes were linked, skipped, or not found.

Rules

  • Derive MEETINGS_DIR from the session note path, not from hardcoded values
  • If the meeting-prep config.yaml is available, read prep_notes.prefix (default: prep) and prep_notes.type_tag (default: meeting-prep)
  • This step is non-blocking: if it fails or finds no prep notes, processing still succeeds

Other skills for the same job

different authors, same section of the catalogue
Meeting Insights Analyzer
by frostant
×8

Analyzes meeting transcripts and recordings to uncover behavioral patterns, communication insights, and actionable feedback. Identifies when you avoid conflict, use filler words, dominate conversations, or miss opportunities to listen. Perfect for professionals seeking to improve their communication and leadership skills.

3k tokens
Slack Gif Creator
by JayZeeDesign
×7

Toolkit for creating animated GIFs optimized for Slack, with validators for size constraints and composable animation primitives. This skill applies when users request animated GIFs or emoji animations for Slack from descriptions like "make me a GIF for Slack of X doing Y".

53k tokens scripts
Developer Growth Analysis
by frostant
×6

Analyzes your recent Claude Code chat history to identify coding patterns, development gaps, and areas for improvement, curates relevant learning resources from HackerNews, and automatically sends a personalized growth report to your Slack DMs.

4k tokens
Slack Gif Creator
by anthropics
vendor ×5

Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like "make me a GIF of X doing Y for Slack.

11k tokens scripts
Skill Share
by frostant
×4

A skill that creates new Claude skills and automatically shares them on Slack using Rube for seamless team collaboration and skill discovery.

728 tokens
Electron
by vercel-labs
vendor ×2

Automate Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify, etc.) using agent-browser via Chrome DevTools Protocol. Use when the user needs to interact with an Electron app, automate a desktop app, connect to a running app, control a native app, or test an Electron application. Triggers include "automate Slack app", "control VS Code", "interact with Discord app", "test this Electron app", "connect to desktop app", or any task requiring automation of a native Electron application.

2k tokens
Notion Meeting Intelligence
by openai
vendor ×2

Prepare meeting materials with Notion context and Codex research; use when gathering context, drafting agendas/pre-reads, and tailoring materials to attendees.

18k tokens
Daily Meeting Update
by softaworks
×2

Interactive daily standup/meeting update generator. Use when user says 'daily', 'standup', 'scrum update', 'status update', 'what did I do yesterday', 'prepare for meeting', 'morning update', or 'team sync'. Pulls activity from GitHub, Jira, and Claude Code session history. Conducts 4-question interview (yesterday, today, blockers, discussion topics) and generates formatted Markdown update.

8k tokens scripts

How to use it

Copy the folder

Take glebis/meeting-processor from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.

Install what it needs

The instructions reference pip. Without those the skill loads but fails at the first command.