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:

  1. Step 0 - Normalize common name variations (Eric → Erik, etc.)
  2. Step A - Generate executive summary and topic analysis (30-60 seconds)
  3. Step B - Enhance frontmatter with tags, links, and metadata (20-30 seconds)
  4. Step 2.5 - Extract year/quarter from filename
  5. Step 3 - Archive transcript to separate file
  6. 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.