Lab / Experiment
Esen
A private leadership coach that never joins the call.
The thesis
A coach, not a camera.
Most leading now happens on a call. Teams are remote, the meeting is the room, and nobody sits in the back of it anymore to tell you how you did. The feedback that used to come from a mentor watching you run the room just stopped arriving.
Every tool that listens to those meetings reports to someone else. The notetaker emails the summary to the whole thread. The revenue tool scores the rep for the manager. The point of them is to be seen, which is exactly what makes everyone perform for them. The moment a tool is in the room on someone else's behalf, the meeting changes.
Esen is the opposite tool. It listens from your own Mac, it never joins the call, and you are the only person who ever reads what it heard. No bot in the room, no manager dashboard, no company rollup. Just a short, honest note after the meeting, written to you.
Your coach, not your company's surveillance tool.
The experiment is whether software can watch how someone leads without becoming the thing the room performs for. If the coach is invisible to everyone but you, the meeting stays real, and the feedback is about what actually happened rather than what happened while a bot was watching.
Where it came from
Someone said it would be cool.
Someone told me it would be cool to have a coach for leaders on team calls. That was the whole brief. It stuck because it named a real gap: people lead over video all day, and the one place they could get better is the one place no one observes them.
I did not want to build another meeting assistant. I wanted to see if the coaching could be private by construction, not private by policy. That one constraint, the leader is the only reader, ended up deciding almost every other choice in the product.
What it listens for
Four parts of how you led, each from public research.
A coach that just says “good meeting” is worthless, and a coach that invents its own theory of leadership is worse. So Esen does not improvise. It reads each meeting across four dimensions, and every dimension is anchored in published, peer-reviewed research on how good leaders actually lead. No proprietary framework, nothing invented.
One rule governs how the research is used: Esen reads it to see, never to show off. The frameworks shape what the model looks for in a transcript. They almost never appear in the note itself. A leader reading their feedback should hear a thought partner who was in the meeting, not a lecture with citations.
| Dimension | What it listens for | The research behind it |
|---|---|---|
| Space creation | Whether quieter voices got drawn in or left behind, how you responded when someone disagreed, whether you made room for input or waited for it to surface | Amy Edmondson's work on psychological safety (Harvard), and Google's Project Aristotle on what makes teams effective |
| Humble inquiry | Whether you asked more than you told, and whether the questions opened things up or were really statements wearing a question mark | Edgar Schein's Humble Inquiry |
| Idea amplification | When someone brought an idea, whether you built on it, credited it, or moved past it | Project Aristotle, and Daniel Goleman on emotional intelligence |
| Clarity of intent | Whether the meeting ended with named owners and a clear next step, or drifted into “let us keep thinking about it” | Peter Drucker's management by objectives, and Gallup's research on engagement |
No score
The model is not allowed to return a number.
The fastest way to turn a coach into a performance review is to give it a number. “Space creation: 6 out of 10” is something you defend, or resent, or forward to the wrong person. It is the thing people hate about every tool that measures them.
So Esen does not score. Each dimension comes back as one of three plain readings, Strong, Room to grow, or Worth a look, with a sentence of context drawn from what actually happened in the meeting. The feedback is in words, not digits.
This is enforced, not just requested. The prompt asks for words, and a check on the way out rejects any response that contains a numeric score. If the model slips a number in, the answer is thrown away rather than shown. A coach that grades you is not a coach.
What I built
A menu bar app, a server, a note.
A small app lives in your Mac menu bar. Before a meeting you click start. It records two separate streams: your microphone, which is only you, and the system audio, which is everyone else in the room. When the meeting ends you click stop.
From there it is automatic. The app uploads both streams to my server. The server transcribes them, makes one Claude call that returns the structured, word based feedback across the four dimensions, and then deletes the audio. You get an email, and a page in a private dashboard that only you can open.
The first design was a bot that joined Zoom, and I dropped it before building it. A bot is a visible participant: it shows up in the roster, it has to announce that it is recording, getting it approved by the meeting platforms takes weeks, and every bot needs its own heavy server to sit in the call. Recording on the leader's own machine removed all four problems at once. It also happened to be the only design that honors the thesis, because a bot in the room is, by definition, in the room.
Built with:
- Swift, the menu bar app, macOS 13 and up, signed and notarized
- Express in Docker on Hetzner, upload and processing
- Deepgram nova 3, transcription, with speaker labels on the room stream only
- Claude Sonnet 4.6, one call per meeting, structured feedback in words
- Supabase, accounts and notes
- Resend, the email after each meeting
- Next.js 16 on Vercel, the site and the dashboard
How Esen worksFrom a meeting on your Mac to a private note, with the audio deleted on the way.
Scroll sideways to see the whole diagram.
My server deletes the audio once it is transcribedDesigned, not built yet
What was hard
Saying no to the obvious design.
The whole build was a series of refusals: the obvious design, the convenient shortcut, the feature the model wanted to add. Each one earned the product something.
| The hard part | What I did about it |
|---|---|
| The bot was the obvious answer, and the wrong one. | Every meeting assistant joins the call, and that is exactly what makes people perform for it. Moving the recording onto the leader’s Mac took the product out of the room and made the whole thesis possible. |
| Knowing which voice is yours. | Splitting speakers out of one mixed recording is unreliable, and the leader is the one voice that has to be right, because all four dimensions are about what you did. So your microphone is its own stream, and speaker labels are only used for the room. |
| Keeping the coach from grading. | Models like to score things. The prompt asks for words, and a check rejects any answer that contains a number. The absence of a score is a feature I had to actively defend against the model’s instincts. |
| One call, on purpose. | Esen makes exactly one Claude call per meeting. It would be easy to fan out into many, but one call keeps the cost and the waiting time predictable, and keeps the feedback coherent rather than stitched together. |
What it costs
The transcription is the cost, not the model.
About a penny a minute, and almost all of it is transcription. The model call that writes the coaching note is nearly free. The audio is what costs money, and it costs double, because Esen records your microphone and the room as two separate streams.
The one model call costs cents. A forty minute meeting is roughly seven to eight thousand tokens of transcript going in, and the note coming out measured about 450 to 520 tokens across the meetings I ran. At list pricing, three dollars per million in and fifteen out, that is about three to five cents, with the system prompt cached so it is not re-billed on every meeting.
The second stream is the cost, and the point. One mixed recording would be half the transcription bill. But splitting your voice from the room is how the coach knows which voice is yours, and every dimension is about what you did. The extra audio minutes are the accuracy, not waste.
The only fixed cost specific to Esen is the $99 a year Apple Developer Program, to sign and notarize the Mac app. If the per meeting cost ever mattered, the lever is to run speech to text on a server I already operate, which takes transcription toward zero at the cost of Deepgram's quality. At a penny a minute, I would rather keep the quality.
What a forty minute meeting costsAlmost all of it is audio, because Esen transcribes two streams instead of one.
| Per forty minute meeting | Estimated cost |
|---|---|
| Transcription, two Deepgram Nova 3 streams (eighty audio minutes) | about $0.35 to $0.40 |
| One Claude Sonnet 4.6 call, transcript in, the note out | about $0.03 to $0.05 |
| Total | about $0.40, roughly a penny a minute |
Source: Deepgram and Anthropic list pricing, October 2026, with output tokens measured across four real meetings run through the pipeline. An estimate until a full length meeting is metered end to end.
What's planned next
Smallest proving step first.
Ordered by what unblocks what.
- One real meeting, end to end. It works in tests. The proof left is a real leader running a real hour long meeting through it and recognizing themselves in the note.
- Publish who else hears it. Audio is transcribed by Deepgram, and the transcript is read by Anthropic. My server deletes the audio after transcription. The promise is only complete when their retention terms sit next to mine, in plain language, where a leader can read them before they trust it.
- Memory across meetings. Designed, not built. Today each note stands alone. The next version remembers what it already told you, so the coaching compounds instead of repeating.
- Beyond the Mac. Mac only for now. Calendar connections for Google and Microsoft, and a Windows version, are mapped but not built.
What I don't know yet
The interesting questions are not technical.
- Does a private coach change behavior? A note you are the only one who reads is honest, but it is also easy to ignore. The real test is whether leaders act on it.
- Do the four frameworks hold up out loud? They are well tested on paper and in questionnaires. Whether they read true from a transcript of a messy, interrupted, real meeting is a different question.
- Who else hears it, and is that acceptable? I built the deletion and the single reader. I still have to make the data path legible enough that a cautious leader says yes.
- Is this a business? Who pays, the leader or the company, and does a company paying for it quietly break the one promise that makes it work.
- Does it hold up at volume? It works for me, in tests. A real meeting, then many real meetings across many kinds of leaders, is the honest bar.
What I am confident about is narrower: the recording can live on the leader's own machine instead of in the call, the coaching can be grounded in public research instead of invented, and a coach that refuses to hand you a number is a better coach than one that does.
How I built it
Three days, one repo.
From an empty repo to a signed Mac app, a server and a site, solo, with Claude Code. I wrote the decisions down as I went, including why the bot was dropped and how memory should work when I get to it, so the next session always started from a better place than the last.
Talk to me
Building something that listens to people? I care a lot about who gets to read what it hears.