Semantic grouping vs. keyword grouping
Keyword grouping matches characters. "The price jumped when we added a seat" and "too expensive for a team our size" share no significant word, so a keyword tool files them apart — while "I can't find the export button" and "I can't find my old notes" share three words and get filed together despite being about different problems. Anyone who has tried to theme survey responses with a spreadsheet and a set of filters has met both failures.
Semantic grouping compares meanings. The model turns each note into a list of 384 numbers — an embedding — positioned so that texts about the same thing land near each other in that space, regardless of the words used. Then the grouping is just geometry: notes that are close together become a cluster. The two pricing complaints above end up neighbours; the two "can't find" sentences do not.
The technique behind this is what powers modern search and retrieval, and the model here is the small, well-worn workhorse of that field. It is not a chatbot and it does not write anything — it only measures how alike two pieces of text are.
Where this genuinely helps
Research synthesis is the clearest case. After a round of interviews you have a hundred loose observations and the job is to find the four or five things people kept saying in different words. Clustering gets you to a first set of themes in seconds, and because you can drag notes between groups, the tool's proposal becomes the starting point for your judgement rather than a replacement for it.
Open-ended survey responses are the same shape of problem at larger volume. So are retro inputs (what a team writes on sticky notes converges on a handful of recurring frictions), support ticket subject lines, conference talk feedback, and long-running brain dumps where the themes emerged gradually and were never labelled.
It also helps as a reading aid on someone else's text — a long list of feature requests, a dump of highlights from a book, the comments on a launch post. Anything where the volume is the obstacle and the structure is latent.
Where it does not help
Short, similar, or highly technical items cluster badly. Ten tasks that all begin "fix the" look alike to the model regardless of what follows, and specialist vocabulary the model never saw during training carries little meaning for it. If your notes are three words each, keyword sorting will do as well and cost nothing.
It cannot find a grouping that is not about meaning. Sorting by urgency, by owner, by effort, or by which of them you have already dealt with are all invisible to an embedding model — those are properties of your situation, not of the text. A note reading "redesign onboarding" and one reading "onboarding is fine now" are semantically near-identical and will land together.
And it will not tell you anything is important. Cluster size reflects how often something was said, which is a measure of frequency and of who you happened to ask — not of significance. A single note can matter more than a group of twenty.
Under about five notes there is nothing to cluster and the tool says so rather than inventing groups. Very large piles are capped instead: past a few hundred notes the grouping maths slows to the point where the page would appear to hang, so it asks you to split the pile rather than freezing on you.
Why running the model locally means your text stays put
Most "AI" web tools work by sending your text to a server, where a model runs and sends an answer back. That is a genuine transfer: your words sit in someone's logs, request history, and possibly their training pipeline. For interview transcripts, staff survey answers or anything about a customer, that is often the difference between a tool you can use and one you cannot.
This page works the other way round. The first time you use it, your browser downloads the model itself — about 24 MB, once, then cached like any other file — and runs it on your own processor. The notes you paste stay in the page's memory. There is no upload step to trust us about, because the tool makes no network request containing your text at all; you can confirm that in your browser's network panel.
The practical consequences are the honest ones: it works offline once the model is cached, it is as fast as your own device, and closing the tab loses your work unless you save it. Nothing is stored on our side because nothing reaches our side.
How the grouping is actually computed
Each note becomes a unit-length 384-dimension vector from all-MiniLM-L6-v2, a sentence-transformer model. Similarity between two notes is the dot product of their vectors — the cosine of the angle between them.
The clustering is spherical k-means: pick starting points that are spread out, assign every note to its nearest centre, move each centre to the average of its members, and repeat until nothing moves. To choose how many groups to make, the tool tries a range of values and scores each one by silhouette — a measure of how much closer notes sit to their own group than to the next best group — with a small penalty on higher counts so it does not shatter your notes into singletons. The slider lets you overrule that and go coarser or finer; regrouping is instant because the embeddings are already computed.
Group names come from the notes themselves. The tool scores each word by how much of the group uses it against how rare it is across everything you pasted, which surfaces the words that distinguish this group rather than the vocabulary the whole pile shares. When no word stands out, it falls back to the note nearest the centre of the group — the most representative thing anyone actually wrote. Every name is editable, because you will often have a better word for it than your own notes do.
The positions on the board carry meaning too: the group centres are projected down to two dimensions, so groups that are close in meaning are drawn close together. Drag anything you disagree with.
What to do with the result
The output of a clustering pass is a hypothesis, not a finding. The useful next step is usually to sit with the groups, rename them in your own words, move the three or four notes that were obviously misfiled, and then ask what each group is actually telling you — which is thinking a model cannot do for you.
Saving the board to OmniCanvas keeps the group headings and the arrangement you settled on, and drops the whole thing onto an infinite canvas where you can annotate it, connect groups to each other, and put it beside the interviews, the roadmap or the retro it came from. That matters more than it sounds: a synthesis that lives next to its source material stays checkable, and one that lives in a separate document quietly stops being trusted.