Meeting Automation

Real-Time Transcription to Claude-Formatted BSP Meeting Notes

🎯

What This Does

Two pipelines for turning Monday standups (and any Google Meet call) into structured BSP meeting notes automatically:


Google Meet
Transcription
(Tactiq / Deepgram)
Claude API
(BSP System Prompt)
Structured Notes
(Decisions + Actions + Revenue)

Output format: Executive Summary → Decisions Table → Numbered Action Items → Revenue Impact (Eq 1/2/3) → Sacred v2 Recommendations → Parking Lot

Options Compared

POWER USER

Pipeline 2: Deepgram + Python + Claude

~$0.0043/min

Best for: True real-time, full control, already have API key

Setup time: 30-45 minutes

  • TRUE real-time transcription (sub-second)
  • Deepgram API key already on VM
  • Speaker diarization built in
  • Full control over processing pipeline
  • Can process every 5 min during meeting
  • Works with any audio source
  • Requires VB-CABLE or Stereo Mix for system audio
  • Python + PyAudio install on Windows
  • More moving parts
FREE

Option 3: Whisper (Local)

$0 (GPU recommended)

Best for: Offline, privacy-first, post-meeting

Setup time: 1-2 hours

  • 100% free, runs locally
  • No data leaves your machine
  • Excellent accuracy with large model
  • NOT real-time (batch processing)
  • Needs GPU for reasonable speed
  • Record meeting first, then transcribe
ALTERNATIVE

Option 4: AssemblyAI

$0.015/min

Best for: If Deepgram has issues

Setup time: 30 minutes

  • Excellent accuracy + LeMUR AI summaries
  • Real-time WebSocket streaming
  • Built-in summarization (less Claude needed)
  • No existing API key (need to sign up)
  • 3.5x more expensive than Deepgram
  • Same VB-CABLE requirement

Quick Decision Matrix

CriteriaTactiq + ZapierDeepgram + PythonWhisperAssemblyAI
Setup Time15 min30-45 min1-2 hrs30 min
Real-TimeAfter meetingYes (sub-sec)No (batch)Yes
Cost/Meeting$0 (10 free)~$0.26/hr$0$0.90/hr
BSP API KeyN/AAlready on VMN/ANeed signup
Speaker LabelsYesYesLimitedYes
Code RequiredZeroPython scriptPython + GPUPython script

Pipeline 1: Tactiq + Zapier + Claude (Recommended)

How It Works

Join Google Meet
Tactiq Chrome Extension
auto-transcribes
Meeting ends →
Zapier trigger fires
Zapier sends transcript
to Claude API
Structured notes
posted to Slack / saved

Install Tactiq Chrome Extension

  1. Open Chrome, go to Tactiq in Chrome Web Store
  2. Click Add to Chrome
  3. Sign up with Google account
  4. Free tier: 10 meetings/month (enough for Monday standups)
  5. Pin the extension to toolbar for easy access

Configure Tactiq Settings

  1. Click Tactiq icon → Settings
  2. Enable: Auto-start transcription for Google Meet
  3. Enable: Speaker identification
  4. Set language: English (US)
  5. Under Integrations, connect Zapier

Create Zapier Account + Zap

  1. Go to Zapier: Tactiq + Claude
  2. Click Connect Tactiq + Anthropic (Claude)
  3. Trigger: Tactiq → "Meeting Transcript Is Ready"
  4. Action: Anthropic Claude → "Send Message"
  5. Configure Claude action (see next step)

Configure Claude Action in Zapier

  1. API Key: Use the BSP Anthropic key from VM .env
  2. Model: claude-sonnet-4-20250514
  3. System Prompt: Copy from the System Prompt section below
  4. User Message: Map Tactiq transcript field:
    Process this meeting transcript from: {{meeting_title}}
    Date: {{meeting_date}}
    Participants: {{participants}}
    TRANSCRIPT: {{transcript}}
  5. Max Tokens: 4096

Add Output Action (Choose One)

Add a second action step in the Zap to deliver the Claude output:

  • Slack (recommended): Post to #bsp-meetings channel. Map Claude response to message body.
  • Google Docs: Create new doc in BSP Meeting Notes folder. Title: meeting name + date.
  • Email: Send to Robert + Stephanie. Subject: "BSP Meeting Notes - [date]"
  • Webhook: POST to Nexus VM endpoint for Sacred v2 auto-update.

Test It

  1. Join a test Google Meet call
  2. Verify Tactiq shows "Transcribing" overlay
  3. Talk for 2 minutes, end the call
  4. Check Zapier history: Zap should trigger within 60 seconds
  5. Verify Claude output follows BSP format
  6. Confirm output delivered to Slack/Docs/Email
🔊

Pipeline 2: Deepgram Real-Time Listener

Architecture

Google Meet
(Chrome tab)
System Audio
(VB-Cable / Stereo Mix)
PyAudio
capture stream
Deepgram WebSocket
nova-2 + diarize
Live transcript
+ Claude every 5 min

Key advantage: True real-time. You see transcript lines appearing as people talk. Claude processes every 5 minutes during the meeting, plus a full summary at the end.

Install VB-CABLE (System Audio Capture)

  1. Download VB-CABLE (free, donationware)
  2. Run installer as Administrator
  3. Reboot Windows
  4. Open Sound Settings → set CABLE Input as default playback device
  5. This routes all system audio through VB-CABLE
  6. Alternative: Enable Stereo Mix in Sound → Recording → right-click → Show Disabled Devices

Tip: To hear audio yourself while capturing, use VB-CABLE + "Listen to this device" in Recording properties. Or use VoiceMeeter Banana (free) for proper audio routing.

Install Python Dependencies (Windows)

pip install deepgram-sdk pyaudio anthropic

If PyAudio fails to install:

pip install pipwin pipwin install pyaudio

Or download the .whl from Unofficial Binaries

Find Your Audio Device

python build_meeting_automation.py

This lists all input devices. Look for:

  • VB-CABLE * -- if you installed VB-CABLE
  • LOOPBACK * -- if Stereo Mix is enabled
  • WASAPI -- Windows audio loopback

Note the device ID number (e.g., 3)

Run the Listener

# Basic: just transcribe to terminal python build_meeting_automation.py --device 3 # With Claude processing (generates BSP notes) python build_meeting_automation.py --device 3 --claude # Save transcript to file python build_meeting_automation.py --device 3 --claude --output standup_2026-04-14.txt # Transcribe a recording instead python build_meeting_automation.py --file meeting_recording.wav --claude

Join Google Meet, start the listener, and watch transcript appear in real-time.

Press Ctrl+C to stop. Claude generates full meeting notes automatically.

Output Files

  • bsp_meeting_transcript_YYYYMMDD_HHMMSS.txt -- Raw transcript with timestamps + speakers
  • bsp_meeting_notes_YYYYMMDD_HHMMSS.md -- Claude-formatted BSP meeting notes
🏗

Full Architecture

PIPELINE 1: TACTIQ (POST-MEETING, ZERO CODE) ============================================= Google Meet Tactiq Extension Zapier Claude API Output +-----------+ +----------------+ +---------------+ +----------------+ +----------------+ | Join call |------>| Auto-transcribe|----->| Trigger: |----->| System prompt: |----->| Slack #meetings| | (Chrome) | | Speaker labels | | Transcript | | BSP format | | Google Doc | | Talk... | | No bot visible | | Ready | | Eq 1/2/3 ties | | Email summary | | End call | | Stores locally | | Send to Claude | | Action items | | Webhook to VM | +-----------+ +----------------+ +---------------+ +----------------+ +----------------+ PIPELINE 2: DEEPGRAM (REAL-TIME, PYTHON) ========================================= Google Meet Windows Audio Python Script Deepgram API Claude API +-----------+ +----------------+ +---------------+ +----------------+ +----------------+ | Join call |------>| VB-CABLE or |----->| PyAudio |----->| WebSocket |----->| Every 5 min: | | (Chrome) | | Stereo Mix | | capture stream | | nova-2 model | | Process chunk | | Talk... | | routes system | | 16kHz mono | | Diarization | | At end: | | | | audio to input | | 256ms chunks | | Smart format | | Full summary | +-----------+ +----------------+ +---------------+ +----------------+ +----------------+ | | v v +---------------+ +----------------+ | Terminal output| | Raw transcript | | (live text) | | .txt file | +---------------+ +----------------+
📝

BSP Meeting System Prompt

Copy this system prompt into Zapier (Pipeline 1) or use it with the Python script (Pipeline 2, built-in).

BSP Meeting Intelligence System Prompt

You are Nexus AI, the meeting intelligence system for Bright Side Plumbing (BSP).
You process real-time meeting transcripts and produce structured meeting notes.

FORMAT YOUR OUTPUT EXACTLY AS FOLLOWS:

## Executive Summary
(3 sentences max. Lead with the SOLUTION or key decision, not the problem.)

## Decisions Made
| Decision | Owner | Deadline | Revenue Impact |
|----------|-------|----------|----------------|
| ... | ... | ... | Eq 1/2/3 |

## Action Items
1. **[OWNER]** Task description -- Deadline: DATE
2. **[OWNER]** Task description -- Deadline: DATE
(Assign to: Robert, Stephanie, Kalen, Ashton, or Audrey)

## Revenue Impact
- Tie each action item to one of the 3 Equations:
  - Eq 1 (Revenue): R = leads x booking_rate x avg_ticket
  - Eq 2 (ROAS): Revenue_attributed / Ad_spend
  - Eq 3 (Profit): P = R - COGS - OpEx - Marketing

## Sacred v2 Update Recommendations
- Which sections of the Sacred HTML data_weapons_plan.html should be updated based on this meeting
- Specific data points or status changes

## Parking Lot
- Items mentioned but deferred for later discussion

RULES:
- Phone: (913) 963-1029 | Address: 12022 Blue Valley Pkwy, Overland Park, KS 66213
- Client: Bright Side Plumbing (NO heating)
- Ashton King is HE (never she/her)
- Kalen: never mention his parents or full public name. Use "our master plumber."
- No em dashes in any client-facing copy
- Stephanie format: SOLUTION first, 3-bullet executive, zero tech terms
- If financials are mentioned: QB P&L is SSoT. Q1 2026: $333K income, -$18K net.
- ServiceTitan revenue: ONLY count job_status = 'completed'
🔧

Setup Guide: Quick Start

For Monday Standup (Pipeline 1 - Tactiq)

StepActionTime
1Install Tactiq Chrome extension2 min
2Create Zapier account (free tier)3 min
3Create Zap: Tactiq trigger → Claude action5 min
4Paste BSP system prompt into Claude action1 min
5Add output action (Slack / Google Doc / Email)3 min
6Test with a short call2 min

Total: ~15 minutes. Ready for next Monday.

For Real-Time (Pipeline 2 - Deepgram)

StepActionTime
1Install VB-CABLE (or enable Stereo Mix)5 min + reboot
2pip install deepgram-sdk pyaudio anthropic2 min
3Set env vars: DEEPGRAM_API_KEY, ANTHROPIC_API_KEY2 min
4Run python build_meeting_automation.py to list devices1 min
5Run with --device N --claude during meeting1 min
6Ctrl+C when done. Notes auto-generated.0 min

Total: ~30 minutes first time. 10 seconds each subsequent meeting.

Environment Variables (set on Windows)

# PowerShell (persistent) [Environment]::SetEnvironmentVariable("DEEPGRAM_API_KEY", "cdae9c752bef9d52da1e37aa4463ed742d8344eb", "User") [Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", "your-key-from-vm-env", "User") # Or set per-session in CMD set DEEPGRAM_API_KEY=cdae9c752bef9d52da1e37aa4463ed742d8344eb set ANTHROPIC_API_KEY=your-key-from-vm-env

Note: API keys are already on the VM at /opt/nexus/nexus/config/.env. Copy them to your local Windows env.

🚀

Advanced: Future Enhancements

Chrome Extension for Tab Audio (No VB-CABLE)

A custom Chrome extension using chrome.tabCapture API can capture audio directly from the Google Meet tab and stream it to Deepgram via WebSocket. This eliminates the need for VB-CABLE and captures only meeting audio (not all system sounds).

The open-source Recall.ai Chrome Recording Extension provides a working reference implementation.

Build priority: LOW. VB-CABLE works fine. Only build if Robert wants tab-specific capture.

Auto-Update Sacred v2

After Claude generates meeting notes, a webhook can POST the action items and decisions to the Nexus VM, which automatically updates the relevant sections of data_weapons_plan.html.

# Zapier webhook action -> VM endpoint POST https://morpheus.callbrightside.com/api/meeting-notes { "decisions": [...], "action_items": [...], "revenue_impact": [...] }

VM-Side Processing (Headless)

For meetings where Robert is not at his Windows machine, the Deepgram script can run on the VM. Record the meeting (Google Meet has built-in recording for Workspace users), SCP the file to the VM, and process:

# On VM python3 build_meeting_automation.py --file /tmp/meeting.webm --claude

Integration with Nexus Intelligence Stack

Meeting notes can be ingested into Zeus RAG for future reference:

  • Meeting decisions become searchable knowledge chunks
  • Action items feed into the session enforcer checklist
  • Revenue impacts update the Math Engine projections
  • Context Harness can surface relevant past meeting decisions when similar topics arise