Fathom Notetaker
A weekend of work, and real gaps remain.
A meeting recorder that joins the call, transcribes it, and writes a summary with the action items pulled out.
Build the meeting notes I actually need instead of Fathom — and read the consent paragraph before the stack. **In many places recording a conversation requires everyone's agreement.** The announcement is the law rather than a courtesy, and it must happen before anything is captured, audibly and visibly, with the fact recorded. Check the rules where the people on the call are, not where you are. And note the money: the free tier here records and transcribes, so the reason to build is that the recordings stay on your machine. STACK - Node 20+ with Fastify - SQLite through better-sqlite3, WAL mode, with FTS5 - whisper.cpp or an equivalent local model — this is the half that used to be impossible and now runs on a laptop - ffmpeg for audio - Caddy in front, on a private network START WITH THE EASY PATH - Upload a recording the meeting platform already produced, or point at its file. That covers most of the value with none of the difficulty, and it is where to begin - The bot that joins a call is the hard path: a headless client, an account, and per-platform behaviour that changes. **Check first whether your platform offers a proper API for it** — several do now, and if yours does the problem disappears THE DATA MODEL - meetings: id, title, source, starts_at_utc, timezone, audio_path, duration_ms, consent_announced_at, created_by - participants: id, meeting_id, name, email, speaker_label - segments: id, meeting_id, speaker_label, start_ms, end_ms, text, confidence, is_edited — **as rows rather than one blob**, which is what makes search, editing and playback alignment possible - summaries: id, meeting_id, kind, body_md, model_version, generated_at, is_edited - actions: id, meeting_id, segment_id, text, assignee, due_at, status — extracted, then confirmed by a person TRANSCRIPTION - Chunk with overlap so a word split across a boundary is not lost, and stitch - Store confidence per segment and show low-confidence text differently. A transcript that hides its uncertainty gets quoted wrongly - **A custom vocabulary of names, products and jargon, applied as a post-pass.** This is the single biggest quality improvement available and it costs almost nothing - Diarisation gives labels, not names. Let a person name each speaker once and remember the voice, which is enough without solving the general problem SUMMARIES, HONESTLY - Generate from the transcript with a local model, and label it as generated - **Never present a summary without the transcript beside it.** A summary is a lossy reading of a conversation people are accountable for, and the source must be one click away - Action items extracted then confirmed by a person before they become tasks. An automatically assigned action nobody agreed to is worse than none PRIVACY - This holds recordings of colleagues talking. Encrypt at rest, restrict access, **log every playback**, and set a real retention with a sweeper that deletes - No third-party transcription without saying so explicitly, at the moment of upload WHAT MATTERS MOST Consent, custom vocabulary and timestamp alignment. Build the upload path before the bot, and never let a summary stand without its source.
What you lose
- A bot that joins every call without anybody remembering to press record
- Speaker separation across overlapping voices
- Summaries good enough that people stop taking notes
- A generous free tier, which makes the money argument thin
If you would rather not build
- The meeting platform’s own recording plus a local transcription pass
- Writing notes, which is free and makes you listen
The escape hatch
open source · no votes, no paid placement
whisper.cpp
$0Fast local speech recognition with word-level timestamps.
ggml-org/whisper.cppfree · open source
WhisperX
$0Adds alignment and speaker diarisation on top of local transcription.
m-bain/whisperXfree · open source
Why this verdict
our own opinion · changed only by a person
45/100
Verdict kinda at 45: local transcription is now genuinely good and free, so the build is real. The bot that joins is the awkward half, and the free tier makes the saving small.
History
tracked since 14 Aug 2026 · nothing is ever overwritten
Nothing recorded yet. This chart fills in once the page has visitors, votes or prompt copies — it will not draw a flat line to look busy.
Questions about Fathom Notetaker
answered from the record above
Is Fathom Notetaker free?
No — the plan we track is $19 a month. Premium at $19 per user per month billed monthly, around $15 annually; a free tier records and transcribes.
Can you replace Fathom Notetaker by building your own?
ALMOST. A weekend of work, and real gaps remain. Replacement score 45 out of 100, build time a weekend. Read what you lose before you decide.
How much does Fathom Notetaker cost?
$19 a month on Premium — $228 a year. Recorded 14 Aug 2026.
What do you lose by replacing Fathom Notetaker?
A bot that joins every call without anybody remembering to press record; Speaker separation across overlapping voices; Summaries good enough that people stop taking notes; A generous free tier, which makes the money argument thin. If any of those carry weight for you, keep paying.
Is there an open-source alternative to Fathom Notetaker?
Yes: whisper.cpp, WhisperX. The prompt on this page is for when you want it your way instead.
Related entries
same category first, most replaced first
Every week, something stops being worth paying for.
New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.
free forever · no tracking pixel · stored here, never passed to anyone

