Why it was needed
The problem
Running a good consultation call is a skill that takes years to build. A newer consultant misses the follow-up question, forgets to put a number on the client's pain, and ends the call with no next step on the calendar.
The organization runs consultation calls with small businesses every week. They wanted newer consultants to run a call the way their best one does, without that person sitting in on every call.
The system
What I built
A side panel beside the call
A desktop app that sits next to Google Meet, Microsoft Teams or Zoom. No bot joins the meeting. The app listens to the microphone and the system audio on the consultant's own machine.
A live transcript of both sides
Both audio streams are transcribed as people speak, sentence by sentence. Echo between the two streams is removed, and rows are ordered by when they were spoken.
Six moves, one tap each
"Guide me" suggests the next thing to say. Five more buttons ask for something specific: a fact, a story, warmth, specifics, or the push to book the next meeting. Any suggestion can be regenerated.
A briefing before the call
The consultant pastes in whatever they know about the client. That context is threaded into every suggestion for the rest of the call.
Ask it out loud
A press-to-talk button lets the consultant ask a question by voice and get an answer grounded in the call so far. Recap, clarify and follow-up questions are one tap away.
Shipped like a product
A release pipeline builds the macOS and Windows installers, and the app updates itself in place. API keys live in the operating system's keychain, never in source.
Step by step
How it runs
Before the call
The consultant opens the app, picks the consultation mode and pastes a short briefing on the client.
The call starts
Microphone and system audio are captured locally and streamed to speech-to-text. The transcript builds live in the side panel.
The consultant taps a move
The model reads the whole call so far plus the briefing, and returns a short line the consultant can say.
Late in the call
The push to book refers back to the pain the client put a number on half an hour earlier.
After the call
A recap of what was covered, ready for the follow-up.
Where the judgment went
The hard parts
Fast enough to use mid-sentence
A suggestion that arrives ten seconds late is useless. A small, fast model handles live coaching and a larger one is kept for work that can wait. Temperature stays low, so the coach stays on the playbook instead of getting creative.
The whole call, not the last minute
The usual approach reads only the last minute or two of transcript. Consultation calls run 45 minutes, and the close has to refer to what the client said at the start. Every suggestion reads the full transcript.
Two audio streams, one timeline
Silence suppression made the speech-to-text timestamps drift by tens of seconds over a real call, which scrambled who said what, and when. Ordering rows by arrival time fixed it, and a diagnostic log guards against regressions.
The consultant stays in charge
The app suggests. It never advances the script on its own, because one wrong automatic step costs the operator's trust in everything else it says.
An honest starting point
I started from an open-source meeting assistant instead of from zero, which gave us working audio capture on day one. Everything specific to consultations was built on top, in its own part of the codebase.
What came of it
The outcome
Real timecoaching during live client calls
- Shipped to the organization's consultation team on macOS and Windows.
- Newer consultants get the senior consultant's moves during the call, not in a review afterwards.
- Releases go out through an automated pipeline, and the app updates itself.
