I've been automating meetings for a 236-person company for the past year.
Every week, the same problem: important decisions and tasks from meetings disappearing into chat history. Managers leaving voice notes at 11pm. The next shift arriving at 6am with no idea what was decided.
So I built MeetingMind: a tool that takes any meeting transcript or audio file, extracts every task and decision using AI, and creates structured Notion pages -- automatically -- via the Notion MCP server.
GitHub: github.com/AlessandroTrimarco/meetingmind
The Problem (From Real Production)
At a restaurant chain with 236 employees across 14 locations, shift handoffs happen by voice note. Manager A leaves a 3-minute audio at 11pm. Manager B arrives at 6am. Without a system, critical context gets lost.
Before MeetingMind:
- Action items were forgotten
- Decisions were not documented
- People left meetings with different understanding of what was agreed
After MeetingMind:
- Every meeting structured Notion page in ~3 seconds
- 0 missed follow-ups
- Full searchable history of every decision
Demo
# From transcript file
python meetingmind.py --transcript meeting.txt --notion-db YOUR_DB_ID
# From audio (local Whisper, no API cost)
python meetingmind.py --audio standup.mp3 --notion-db YOUR_DB_ID
# Test extraction without writing to Notion
python meetingmind.py --dry-run --transcript example_transcript.txt --notion-db x
Real output from the included example:
Extracted:
Title : Team Standup - March 24, 2026
Date : 2026-03-24
Participants: 3
Action Items: 6
Decisions : 3
Blockers : 0
Sentiment : positive
Full JSON with assignees, due dates, and priority levels -- all pushed to Notion via MCP.
Architecture
Meeting transcript or audio
|
[Optional] Whisper (local, free)
|
Claude Haiku via OpenRouter (~$0.001/meeting)
|
Notion MCP Server (@notionhq/notion-mcp-server)
|
Structured Notion page:
- Action items (assignee + due date + priority)
- Decisions (context + owner)
- Blockers
- Participants
- Meeting sentiment
Why Notion MCP?
The Notion MCP server handles authentication, API versioning, and error handling. My code focuses only on the intelligence layer. This is how MCP is supposed to work -- infrastructure you don't maintain.
The Prompt Pattern That Works
After months in production, this made the biggest difference:
Extract ONLY factual information explicitly stated.
Do NOT infer or add context.
Mark as null anything not explicitly mentioned.
That last rule cut hallucinations by 60%. LLMs want to be helpful and fill in gaps. For operational data, you want facts only.
Setup (5 minutes)
git clone https://github.com/AlessandroTrimarco/meetingmind
cd meetingmind
pip install -r requirements.txt
npm install -g @notionhq/notion-mcp-server
cp .env.example .env
# Edit .env: OPENROUTER_API_KEY and NOTION_TOKEN
python meetingmind.py --dry-run --transcript example_transcript.txt --notion-db x
Full code on GitHub -- MIT license, ready to use.
Top comments (0)