DEV Community

Ale Santini
Ale Santini

Posted on

Meeting Intelligence Notion: Auto-extract tasks and decisions from any meeting transcript

Notion MCP Challenge Submission 🧠

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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.
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Full code on GitHub -- MIT license, ready to use.

Top comments (0)