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.
npx skills add https://github.com/glebis/claude-skills --skill meeting-processor
Intelligent meeting transcript processor that auto-detects meeting type and applies type-specific extraction with optional interactive clarification.
/fathom --today, /granola export)YYYYMMDD-*.mdcoaching-session-summarizer skill insteadpip install openai pyyaml
Requires CEREBRAS_API_KEY environment variable (uses Cerebras API with llama-3.3-70b).
| 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 |
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:
__INTERACTIVE_QUESTIONS__ markersprocess_with_answers.pyHandling interactive questions:
When the script exits with code 2, parse the output for questions JSON. Each question has:
question: The question textheader: Short label (used as answer key)options: Array of {label, description} for AskUserQuestionAfter 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
Extract only high-confidence information without user interaction:
python3 ~/.claude/skills/meeting-processor/scripts/process.py <transcript-file> --mode batch
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
Analysis is appended to the transcript file as a ## Meeting Analysis section. Frontmatter is updated with meeting_type, processed_date, and processing_mode.
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.
date from frontmatter (YYYYMMDD format)participants from frontmatter (list of names)participants field, extract names from the transcript header or attendee list find <MEETINGS_DIR> -name "YYYYMMDD-prep-*" -type f 2>/dev/null
Where YYYYMMDD is the session date.
date field matches the session dateparticipant field matches one of the session's participants (fuzzy: check both full name and first name, case-insensitive)session_note field is empty ("") — skip already-linked prep notesIn the prep note:
session_note: "[[session-note-filename]]" (without .md extension)status: doneIn the session note:
## See also section exists, add - [[YYYYMMDD-prep-participant-slug]] to it ## Prep Note
- [[YYYYMMDD-prep-participant-slug]]
MEETINGS_DIR from the session note path, not from hardcoded valuesconfig.yaml is available, read prep_notes.prefix (default: prep) and prep_notes.type_tag (default: meeting-prep)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.
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".
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.
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.
A skill that creates new Claude skills and automatically shares them on Slack using Rube for seamless team collaboration and skill discovery.
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.
Prepare meeting materials with Notion context and Codex research; use when gathering context, drafting agendas/pre-reads, and tailoring materials to attendees.
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.
Take glebis/meeting-processor from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
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.
The instructions reference pip.
Without those the skill loads but fails at the first command.