Flagship system
MeetingMind AI
Local-First AI · Knowledge Systems
A meeting-intelligence platform that turns raw audio and video into transcripts, grounded summaries and tracked work — running entirely locally with no paid APIs, cloud AI or commercial SDKs.
- 13
- Technologies
- 3
- Domains
- 7
- Capabilities
- 1
- Public links
Who it's for
Teams and organisations that record meetings but can't ship confidential audio to a cloud AI — legal, healthcare, finance, or anyone who values data sovereignty.
Where it fits
On-premise or self-hosted deployments where transcripts, summaries, decisions and action items must stay inside the organisation's own infrastructure.
Screenshots

The hard part
The problem
Meeting assistants that summarise calls and extract action items almost always ship your audio to a cloud AI provider. For confidential conversations that is a non-starter — and it means the product stops working the moment an API key or budget runs out.
Key constraints
Every AI capability — speech-to-text, summarisation, chat, embeddings, diarisation — had to run on local models by default, so the product works end to end after a clone and setup, yet can swap in optional cloud providers by configuration alone. And the AI must never fabricate: summaries and answers have to trace back to the source.
Architecture overview
Every AI capability sits behind a provider interface defaulting to a local engine. An asynchronous Celery/Redis pipeline (validate → media-inspect → extract → normalise → transcribe → diarise → summarise → index) runs all long work off the request path. On top sits a bitemporal, event-sourced knowledge hub and a 12-agent intelligence layer, each agent reaching data only through a permissioned tool registry.
Asynchronous pipeline → event-sourced knowledge
Event-sourced knowledge hub
append-only · time-travel queries · conflict detection
Human-approved work items
AI suggests with evidence — a person approves, edits or rejects
How it works
What's actually in it.
- 01Offline transcription via Faster-Whisper + FFmpeg, emitting timestamped editable transcripts in TXT, MD, SRT, VTT and JSON with graceful degradation.
- 02Grounded local AI: Ollama/Llama 3.2 produces summaries, action items, decisions and risks; RAG chat answers with clickable-timestamp citations and refuses to go beyond the source.
- 03Reusable background-job engine: self-registering stages, dependency-graph ordering, per-stage retry with backoff, idempotent resume and live progress.
- 04Bitemporal, event-sourced knowledge hub with 'what did we know as of…' time-travel queries, decision-evolution history and conflict detection.
- 0512 declarative, owner-scoped agents coordinated by a planner (intent → agent selection → parallel execution → merge → conflict resolution).
- 06Speaker diarisation with SpeechBrain ECAPA embeddings and a cross-meeting voice registry that reuses persisted embeddings.
- 07Universal media import (YouTube, Vimeo, direct URLs, podcast/RSS) with SSRF protection and three-layer deduplication.
Engineering decisions
Human-in-the-loop, never auto-create
The AI never silently creates tasks, decisions or risks. It emits confidence-scored suggestions with full explainability — source meeting, segment, speaker, quote and reason — that a person approves, edits or rejects. Only then do real work items materialise, each carrying an immutable audit trail back to its evidence.
The trade-off
Requiring human approval means the system produces less 'automatic' output than a fully autonomous assistant. That friction is the point: in a knowledge system, a wrong fact that looks confident is worse than a missing one.
The obvious approach
Call a hosted LLM API for transcription, summaries and chat — fastest path to a working demo.
Why I didn't choose it
It sends confidential audio off-device, creates per-call cost and vendor lock-in, and makes 'why did it say that?' unanswerable.
My approach
Run local models (Faster-Whisper, Ollama, SpeechBrain) behind provider interfaces, with RAG grounded in local embeddings + Postgres full-text and citations that refuse to answer beyond the source.
Trade-offs
Local inference is slower and more operationally involved than a hosted API, but the data never leaves and every answer is auditable.
Technical highlights
- Runs end to end with zero paid APIs — local by default, cloud by configuration.
- RAG answers are citation-bound and refuse to hallucinate beyond source material.
- Reproducible diarisation benchmark harness with provenance-stamped runs.
Claims & evidence
Executive dashboard health, score and analytics are materialised incrementally (around 14 ms dashboard reads) rather than recomputed per request.
Measured · Author benchmark (MeetingMind incremental materialisation)
Built solo across 15 phases — backend, background engine, local AI stack, knowledge layer, multi-agent platform and dashboard.
Qualitative · MeetingMind project scope
Every statement above carries its evidence class — nothing is invented.
Tech stack
- Python
- Django 5
- Django REST Framework
- Celery
- Redis
- PostgreSQL
- Faster-Whisper
- Ollama (Llama 3.2)
- SpeechBrain ECAPA
- FFmpeg
- pgvector
- Next.js 16
- TypeScript
Want to go deeper on MeetingMind AI?
I'm happy to walk through the architecture and the decisions behind it.