Pithflow
Product 8 min read ·

Why meeting notes should rank the key points by how many times they came up

The design decision behind Pithflow Meetings' notes, the flattening bug that made the ranking invisible, and the speakers-versus-headphones test that doubled every count.

JZ
By Jesus Zamudio

The brief for Pithflow Meetings was one sentence, and it was mine: the most important points, ranked by how many times they were mentioned. Not a summary. Not action items, though it has those too. A list where the thing three people kept returning to sits at the top with a next to it, and the thing one person said once sits at the bottom with a . This post is about why that is the right shape for meeting notes, and about the two bugs that, between them, briefly made the feature invisible and then made it lie.

See the ranked notes on your own meeting

Key points ordered by how many separate times each came up, with the count shown.

Download free for Windows

Windows 10 and 11 · 15-minute meetings free · no card

What does a summary hide?

Read any AI meeting summary and you get a paragraph in a calm, even register. Every sentence weighs the same. The problem raised at minute four and never dropped, and the aside at minute thirty-one, are both "the team discussed". A summary is a compression of the transcript, and compression throws away exactly the signal you were in the meeting to receive: what people cared about enough to keep saying.

Repetition is that signal. Nobody raises a settled point three times. When the same concern surfaces from two people at different moments, it is the thing the meeting was actually about, whatever the agenda said. So instead of asking the model for a summary and a list of topics, Pithflow asks it for each key point and how many separate times it was raised, and orders the list by that number. The count is printed, because a ranking without its evidence is just another paragraph with the sentences shuffled.

Two rules keep it honest. "Separate times" means distinct moments in the conversation, not word frequency — saying a name six times in one breath is one mention. And nothing may be invented: a decision or an action item that was not actually stated does not get written down, even if it would make the notes look tidier. The summary and the action items are still there. They are just no longer the headline.

Bug one: the ranking was computed, then thrown away

The first person to record a real meeting on the finished feature was me, and my review was not kind: the notes were, in my own words, almost plain text. A grey paragraph. No numbers, no counts, no list.

The server was doing everything right. It returned the summary, the key points as a ranked list with a mention count on each one, the decisions, and the action items — structured, ordered, complete. Then a layer on the desktop side, written with the tidy intention that the interface should never need to understand the shape of that data, folded the whole thing into one string: summary, a line break, "Key points:", and each point with its count in brackets. The interface then displayed that string as a paragraph, because that is what a string is. The doc comment explaining the flattening said, in effect, "so the display never has to know the structure." The cost of the display not knowing the structure was the feature.

The fix kept the flat string — the Copy button and the Markdown export want exactly that, and it carries the status line for a meeting still uploading — and passed the structure alongside it, so the card renders a heading, a numbered list with the count as a badge, and the decisions and action items as their own lists. Two smaller things fell out of looking at the result on screen. The notes were clamped to four lines, a limit inherited from the dictation history where a row is something you skim; here the summary alone spent all four and every meeting would have hidden its key points behind "Show more". And the styling reset the app uses strips the numbers off every ordered list by default, so "ranked" rendered as an indented pile with no numerals. Both fixed the same afternoon. Neither would have been caught by a test that checked the data, because the data was fine.

Bug two: the counts were doubled, and the notes believed them

Verification, the honest kind, is when someone asks a question you had not asked. After the fix above I recorded a video call end to end with headphones on and got correct notes. The question I was then asked was: did you mute the microphone and run the video meeting on speakers, to check it captures your voice and the other side's? I had not.

On speakers, the other side of a call reaches the recorder twice. Once digitally — the audio the computer is playing, which Pithflow captures as the "Them" stream. And once acoustically — out of the speakers, across the desk, into the microphone, which Pithflow captures as the "Me" stream. Both were transcribed. Both were interleaved into the transcript. Every sentence the far side said appeared under both labels, the microphone's copy a degraded version of the other, with the opening words of each sentence clipped.

A doubled transcript is ugly. A doubled transcript feeding a ranking by mentions is wrong in the one way this feature cannot afford: every count doubles. The top point of that test meeting displayed 4× and had really come up twice. The notes were reporting a room that said everything twice — confidently, with numbers.

The fix runs on text, after transcription. Anything that appears in both streams within the same minute came out of the speakers, because a person's own voice is never routed back to their own speakers — so it belongs to the far side, and the microphone's copy is dropped. A microphone segment that nothing echoes is the user actually talking and is always kept; a test pins that, because silently swallowing your own voice would be a far worse bug than the one being fixed. The match uses containment rather than similarity, because the echo is degraded and shorter, and a symmetric similarity score pairs the two copies too loosely to trust. In-person recordings are never de-duplicated: one microphone, and everything it heard was really said in the room.

It is deliberately not acoustic echo cancellation. Real echo cancellation belongs in the audio capture layer with the playback stream as its reference, and that is a Windows audio project in its own right. This runs on already-transcribed text, costs nothing, and removes the damage a user would see. Headphones remain the clean answer, which is why the Video call card in the app still tells you to wear them.

What are the counts actually good for?

Reading the notes from a real meeting, the ranked list does something the summary cannot: it tells you what to do first. The 4× item is the follow-up email. The 1× items are the ones to scan and let go. When two points tie, the order is the model's judgement and the count says so, which is the honest amount of confidence to project.

It also changes what "verified" means for a notes feature. The ranking is only as good as the transcript's arithmetic, so the tests for Meetings now include the two real audio streams from the speakers recording, and the fixture would fail again the moment a future change lets the echo back in. The counts are a promise, and promises with numbers in them need tests with numbers in them.

Try it on your own meeting

Pithflow Meetings is in the app from version 1.34, on Windows 10 and 11. Open the Meetings tab, pick In person or Video call, tell the room, and press record; the ranked notes land when you stop. The free plan covers a single meeting up to 15 minutes. If you find a meeting where the ranking is wrong, I want the transcript — the counts are the feature, and every one of them should be earned.

Try Pithflow free

Voice dictation that's faster than typing. Hold a key, speak, get clean text in any Windows app. Free tier: 2,000 words a week, no credit card.

Get it from Microsoft Store