Fathom's core is a transcript and a summary of a call, and a local app on whisper.cpp or faster-whisper plus any language model does that in an afternoon from a recording on disk. The weekend goes into what makes Fathom feel automatic: recording that starts by itself from a calendar event, capturing every participant on Zoom, Meet and Teams, putting names on the lines, and a link with highlights you can send. Joining calls as a bot needs a meeting-bot service or a headless browser per platform, while capturing your own machine's audio only works on the computer you are sitting at. Since the free plan already records without limits, building your own mainly buys control over where the audio goes.
Before you buildFathom Free already records and transcribes without limits and gives advanced summaries on five calls a month. If that is enough, you may not need to pay or build anything.
Build me a local call-notes tool to replace Fathom for recordings I already have on disk. Requirements: - Python 3.11 FastAPI backend with a server-rendered UI (Jinja2 + htmx). `./run.sh` serves http://127.0.0.1:4730. ffmpeg must be on the PATH; exit with a clear message if not. - Intake: watch ~/Calls/inbox/ for new mp4, m4a, wav and webm files (the folder Zoom, Meet or my recorder saves into). Move each into ./data/calls/<id>/ and extract 16 kHz mono audio. - Transcription: faster-whisper with word timestamps (model from .env, default `small`). If the recording has separate audio tracks, transcribe each and label the lines "Me" and "Them". - Storage: SQLite (`sqlite3` with FTS5) in ./data/calls.db: calls, transcript segments, notes and action items. Search across all transcripts and notes from a box at the top. - Notes: send the transcript to an OpenAI-compatible endpoint (LLM_BASE_URL, LLM_MODEL, LLM_API_KEY in .env; local Ollama works). Return a three-sentence summary, decisions, action items with owner and due date when mentioned, and a follow-up email draft, as JSON validated with `pydantic`; retry once on invalid JSON. - Call page: audio player, clickable transcript, the notes, and a button to save a highlight (start and end) that exports an mp3 clip with ffmpeg. - Export: each call as Markdown to ~/Calls/notes/YYYY-MM-DD-<title>.md with notes on top and the transcript below. - Single user. No accounts, no telemetry, local-first; the only outbound call is the LLM endpoint. - Out of scope: joining calls, live capture, CRM sync, team sharing, speaker names beyond "Me" and "Them". - README: how to make Zoom save recordings to the inbox folder, and a reminder to tell people when you record them.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Fathom.
Add speaker labelling to the call-notes tool in this folder. Requirements: - Use `pyannote.audio` diarization on calls that have a single mixed audio track; read the Hugging Face token from .env and explain the model licence step in the README. - Show the speakers as "Speaker 1", "Speaker 2" and let me rename each once per call; saving a name stores a voice embedding so the next call suggests the same name. - Re-run note generation after renaming so action items use the real names. - Keep the "Me" and "Them" path for recordings with separate tracks. - Update the README.
Add calendar matching to the call-notes tool in this folder. Requirements: - Read a private Google or iCloud calendar ICS URL from CALENDAR_ICS_URL in .env and cache it for 15 minutes. - For each new call, find the event overlapping its start time and use its title and attendee names for the call title, the note file name and the summary prompt. - If no event matches, keep the file name and ask nothing. - Update the README.
Add an action-item digest to the call-notes tool in this folder. Requirements: - A checkbox on every action item, saved in SQLite, and a page listing everything open grouped by call. - A command `digest` that writes a Markdown list of open items older than 3 days to ~/Calls/digest.md and prints it. - A cron example in the README that runs it on Monday at 9:00. - No email, no external services.
Nobody wants to remember to press record. Fathom shows up on the calendar event, writes notes before the next call starts and can push them into the CRM, so the value is in doing nothing. The paid plan lifts the five-call cap on advanced summaries and adds action items and follow-up drafts.
Estimate · Transcription runs on your machine. The only running cost is language model tokens for summaries: a few cents per hour of calls on a small hosted model, nothing with Ollama. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Free | $0/user | $0/user | Unlimited recordings and transcription, bot or bot-free (Mac beta) capture, instant AI call summaries, clips and playlists. |
| Premium | $20/user | $16/user | Everything in Free plus advanced summaries on every call, AI action items, a conversational assistant and a custom meeting bot. |
| Team | $19/user | $15/user | Everything in Premium plus search across all calls, team playlists, comments, folders and keyword alerts. |
| Business | $34/user | $25/user | Everything in Team plus CRM field sync, Deal View, coaching metrics, AI scorecards and custom call summaries. |
| Enterprise | custom | — | Everything in Business plus SSO and SCIM, organization-wide security controls, custom data retention and a dedicated success manager. |
Free covers unlimited recording, storage and transcription, with advanced AI summaries on your first five calls each month.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: A recorder that joins on its own from your calendar, Speaker names on every line, taken from the meeting platform.
About $20 a month on the Premium plan per seat, $240 a year (checked 2026-10-19).
A recorder that joins on its own from your calendar; Speaker names on every line, taken from the meeting platform; Shareable links with clips, playlists and comments for your team; CRM sync to HubSpot, Salesforce or Close, and Zapier triggers; Search across the whole team's calls, scorecards and coaching metrics. If any of those matter to you, keep paying.
Yes: Meetily (open source), Anarlog (open source), Vexa (open source).