Quiet Inbox
An email agent that drafts replies and only pings you for the ones that matter
About
Quiet Inbox reads new email, sorts it into ‘needs you’, ‘handled’ and ‘can wait’, and drafts replies in your voice for the second pile. You get one notification a day instead of forty.
It's been running for 61 paying users for eight months. I'm moving on to something new and would like to hand it to someone who'll keep it going.
How it was made
Shared by the maker. Numbers are their own estimate.
- Build time
- 6 weeks
- AI spend
- $210
- Prompts
- ~420
- Written by AI
- 85%
Agents
Claude Code
80% of the workBuilt the backend and the evaluation harness
ChatGPT
20% of the workSecond opinion in evals
Claude · inside the product
The agent itself: triage and drafting
MCP servers1
Gmail
Read and draft without storing full message bodies
Build recipe
The code isn’t public. This is the whole project as one prompt: paste it into your own agent to build the same thing.
Written by Claude Code
From the project’s code and history · 384 words
Build a ai agent called Quiet Inbox: an email agent that drafts replies and only pings you for the ones that matter.
What it does
Quiet Inbox reads new email, sorts it into ‘needs you’, ‘handled’ and ‘can wait’, and drafts replies in your voice for the second pile. You get one notification a day instead of forty.
Stack
Use Python, FastAPI, Postgres, Fly.io, Anthropic API. The original was built with Claude Code and ChatGPT in 6 weeks, for about $210 in AI usage.
How it fits together
- An agent loop that reads input, decides and acts through a few tools
- A store for what it did, so a person can review and undo
- An evaluation set to measure it after every prompt change
Build it in this order
- Write down the agent's job in one paragraph and the cases where it must ask a person
- Build the loop with one tool and a review screen
- Collect 50 to 200 labelled examples and build an evaluation harness
- Add the remaining tools one at a time, re-running the evaluation each time
- Add limits: cost per run, rate limits and a stop button
Tools to connect
- Gmail MCP: read and draft without storing full message bodies
A prompt that worked: Grade your own agent
Build an evaluation harness for the triage step. Input: 200 labelled emails in evals/inbox.jsonl. For each, run the triage prompt and compare against the label. Output a table of precision and recall per bucket and the 10 worst misses with the model's reasoning. Make it runnable with one command so I can rerun it after every prompt change.
Watch out for
- Measure before you tune the prompt; otherwise you can't tell if a change helped
- Log every action with the reason the model gave
Done when
- The evaluation runs with one command
- A person can see and undo every action
- Costs per run are capped
Before writing code, ask me up to five questions about who this productivity ai agent is for and what the first version must do. Then work in small steps: after each one, tell me how to try it and wait for my feedback.
Discussion
4 comments · 1 member tried it
Ran it locally in under five minutes. README is great. Would you take a PR that adds a Docker set-up?
- Lena Vogt6 hours ago
Love how focused this is. One thing: the empty state took me a second to understand. Maybe show an example right away?
- Kenji Mori1 day ago
What did the agent struggle with most? Always curious where people had to step in.
More like this
Paste a README, get honest notes on what a stranger won't understand