Meeting Processing
The Meeting Processing module transforms raw meeting transcripts into structured, searchable notes with AI-generated summaries, action items, and metadata. This is the core value-add of the AI Executive Assistant.
Prerequisites
- Foundation module completed (vault structure and AI provider configured)
- Python 3.11+ installed
- ~20 minutes to complete setup
What You'll Get
- Executive Summaries - 4-sentence distillation of key outcomes and decisions
- Topic Analysis - Structured breakdown with findings, challenges, and solutions
- Action Items - Extracted tasks in @Owner format for easy tracking
- Frontmatter Metadata - Auto-tagged with categories, attendees, dates, and links
- Transcript Archival - Raw transcripts separated into dedicated folder for clean notes
Meeting Types
The processing scripts support two distinct meeting types, each with specialized analysis:
Group Meetings
For team meetings, staff meetings, and project syncs. Analysis focuses on:
- Topic-based summaries with findings and recommendations
- Cross-functional challenges and solutions
- Multiple attendees and action item distribution
- Quarterly organization (Q425, Q125, etc.)
One-on-One Meetings
For personal check-ins and 1:1s. Analysis includes:
- Coaching and growth opportunities
- Professional development tracking
- Automatic linking to person's note page
- Growth witnessed and future coaching suggestions
Setup
Step 1: Install Dependencies
Create a requirements.txt file in your scripts folder:
google-cloud-aiplatform>=1.38.0
vertexai>=1.0.0
pyyaml>=6.0 Install the dependencies:
pip install -r requirements.txt Step 2: Download Processing Scripts
Download the processing scripts to your vault's scripts folder:
cd ~/Documents/MyVault/scripts
curl -O https://example.com/process_mtg_notes.py
curl -O https://example.com/process_one-on-one_notes.py
curl -O https://example.com/transcript_archiver.py
chmod +x *.py Step 3: Configure Environment Variables
If you're using Vertex AI (Google Cloud), set these environment variables in your shell profile:
# For Vertex AI only
export GOOGLE_CLOUD_PROJECT=your-project-id
export GOOGLE_IMPERSONATE_SERVICE_ACCOUNT=your-service-account@project.iam.gserviceaccount.com For other AI providers (Ollama, OpenAI, Claude), no environment variables are needed beyond API keys.
Executive Summary
The 4-sentence executive summary is designed for leadership who need to quickly understand:
- What happened - Key decisions and outcomes
- Why it matters - Business impact and context
- What's next - Immediate action items and follow-ups
- What to watch - Risks, blockers, or dependencies
The summary uses informal, direct language and avoids corporate jargon. It's written to be read standalone, without requiring the full transcript.
Example Executive Summary
## Executive Summary
We aligned on the Q1 roadmap priorities and identified three critical dependencies
on the platform team. Budget approval is needed by end of week to avoid a two-week
slip in the delivery timeline. The team raised concerns about resource allocation
for the new feature set, which we'll address in Friday's planning session. Overall
momentum is good, but we need to lock down the API contract by next Monday to stay
on track. Topic Analysis
The AI automatically identifies key topics discussed in the meeting and structures them with:
- Key Findings - What was discovered or decided
- Challenges - Obstacles, blockers, or concerns raised
- Potential Solutions - Proposed approaches to address challenges
- Recommendations - Suggested next steps or decisions needed
Example Topic Analysis
## Summary & Analysis
**Budget Review**
- **Key Findings**: Current burn rate is 15% below forecast, giving us headroom for Q2 hiring
- **Challenges**: Engineering budget is constrained by infrastructure costs growing faster than expected
- **Potential Solutions**: Renegotiate cloud contracts or shift some workloads to reserved instances
- **Recommendations**: Schedule deep-dive with FinOps team to optimize cloud spend
**Roadmap Priorities**
- **Key Findings**: Stakeholders aligned on prioritizing mobile app over web redesign
- **Challenges**: Mobile team is at capacity and can't start until Q2 without adding headcount
- **Potential Solutions**: Contract with external agency for initial prototyping phase
- **Recommendations**: Get budget approval for 2 contract positions by end of week Action Items
The AI extracts all action items from the transcript and formats them consistently:
## Action Items
- [ ] @Erik — Schedule budget review with FinOps team
- [ ] @Sarah — Draft contract job description for mobile developers
- [ ] @Team — Review and comment on API contract by Monday
- [ ] @Jason — Update stakeholders on timeline change This format is compatible with Obsidian's task tracking plugins and can be queried using Dataview.
Frontmatter Enhancement
The scripts automatically add structured metadata to the top of each note:
---
title: "Q1 roadmap planning and budget review"
category: team-meeting
tags:
- planning
- budget
- roadmap
attendees:
- erik
- sarah
- jason
links:
- "[[@ Sarah Chen]]"
- "[[@ Jason Smith]]"
year: 2025
quarter: Q1
--- Metadata Fields
- title - Auto-generated summary (under 20 words)
- category - Meeting type (e.g., team-meeting, one-on-one, planning)
- tags - Topical tags from your Tag Reference file
- attendees - List of participant first names
- links - WikiLinks to attendee person notes (format: [[@ First Last]])
- year - Extracted from filename (MM-DD-YY format)
- quarter - Auto-calculated from meeting date
Customizing Prompts
The analysis prompts are embedded in the Python scripts. To customize the AI's analysis style:
For Group Meetings
Edit process_mtg_notes.py and modify the STEP_A_PROMPT variable (around line 261):
STEP_A_PROMPT = """
You are an expert executive assistant. Based on the meeting notes...
## Executive Summary
[Your custom instructions here]
## Topics Covered
[Your custom instructions here]
""" For One-on-One Meetings
Edit process_one-on-one_notes.py and modify the STEP_A_PROMPT variable (around line 356):
STEP_A_PROMPT = """
Based on the meeting notes...
## Coaching & Growth
- **Growth Witnessed**: [Your custom instructions]
- **Growth Opportunities**: [Your custom instructions]
""" Running Manually
Process a single meeting note by running the script from your vault root:
Group Meeting
cd ~/Documents/MyVault
./scripts/process_mtg_notes.py "Meetings/12-09-25 - Staff Meeting.md" One-on-One Meeting
cd ~/Documents/MyVault
./scripts/process_one-on-one_notes.py "Meetings/12-09-25 - 1-1 with Sarah.md" Processing Steps
The script will:
- Step 0 - Normalize common name variations (Eric → Erik, etc.)
- Step A - Generate executive summary and topic analysis (30-60 seconds)
- Step B - Enhance frontmatter with tags, links, and metadata (20-30 seconds)
- Step 2.5 - Extract year/quarter from filename
- Step 3 - Archive transcript to separate file
- Step 4 - Clean up any code block formatting
Verify It Works
Create a test meeting note to verify the setup:
cd ~/Documents/MyVault/Meetings
cat > "12-09-25 - Test Meeting.md" << 'EOF'
# Test Meeting
**Attendees:** Erik, Sarah, Jason
**Discussion:**
- Reviewed Q1 budget and confirmed we're under forecast
- Decided to prioritize mobile app over web redesign
- Need to hire 2 contract developers by end of week
**Action Items:**
- Erik will schedule follow-up with FinOps
- Sarah will draft job descriptions
- Jason will update stakeholders on timeline
EOF Process the test note:
cd ~/Documents/MyVault
./scripts/process_mtg_notes.py "Meetings/12-09-25 - Test Meeting.md" Expected output:
Processing Meetings/12-09-25 - Test Meeting.md...
Step 0 (Prompt A): Normalizing names and acronyms...
Step 0 (Prompt A): Complete.
Step 1 (Prompt B): Generating summary and analysis...
Step 1 (Prompt B): Summary prepended (after front-matter).
Step 2 (Prompt C): Generating and merging front-matter...
Step 2 (Prompt C): Front-matter merged.
Step 2.5: Ensuring year/quarter from filename...
Step 2.5: added year, added quarter
Step 3: Archiving transcript...
Step 3: transcript archived to Transcripts/12-09-25 - Test Meeting - transcript.md
Step 4: Cleaning up any code block formatting...
Step 4: No code block formatting found at top of file.
All steps complete for Meetings/12-09-25 - Test Meeting.md.
Logged: 2,341 in / 892 out = $0.12 Troubleshooting
Error: Vertex AI authentication failed
Ensure you've set GOOGLE_CLOUD_PROJECT and GOOGLE_IMPERSONATE_SERVICE_ACCOUNT environment variables.
For other providers, check your API key is set correctly.
Error: Reference file not found
The script expects a Tag Reference file at Templates/Tag Reference.md in your vault.
Create this file with your tag taxonomy and meeting categories.
Processing is slow (90+ seconds)
This is normal for large transcripts (10,000+ words). Consider switching to a faster model like
gemini-1.5-flash or gpt-4o-mini in your config.
Action items not being extracted
Make sure your transcript includes clear action language like "will do", "needs to", "action item", or explicit task lists. The AI looks for commitment language and responsibility assignments.
Next Steps
Now that your meetings are being processed and enriched, continue to RAG Search to enable semantic search across your entire knowledge base.