Thinking · Free Tool

Semantic Note Clusterer

Drop in a pile of notes and watch them sort themselves into labelled themes — laid out as a map you can rearrange.

Loading tool…

Some piles of text have structure in them that no amount of sorting by hand will reveal quickly: forty survey responses, a month of meeting scraps, the observations from six user interviews, a brain dump you have been adding to for a week. You know there are themes in there. Finding them means reading everything, holding it all in your head at once, and grouping by feel.

This tool does the first pass for you. It reads each note with a small sentence-embedding model, groups the notes whose meanings sit closest together, gives each group a name taken from its own members, and lays the groups out as a map you can rearrange. The model runs inside your browser — your notes are never sent to a server, ours or anyone else's, because there is no request carrying them.

Keep your synthesis next to what it came from

OmniCanvas gives every set of themes an infinite canvas — annotate the clusters, link them to the interviews and decisions they came from, and come back to them next quarter. Free to start.

Sign up free

No credit card · 30 days free

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.

Frequently asked questions

Is my text uploaded anywhere?

No. The model is downloaded to your browser and runs on your own device, so the notes you paste are never sent to us or to any third party. The only network traffic is the one-time model download, which contains none of your content. You can verify this in your browser's network panel.

Do I need a powerful computer or a GPU?

No. The model is small (about 24 MB) and runs on ordinary phones and older laptops using WebAssembly. If your device has WebGPU the tool uses it to go faster, but it is only an accelerator — there is no WebGPU requirement and no "unsupported device" dead end.

How is this different from grouping by keywords?

Keyword grouping matches words; this matches meaning. Two notes saying the same thing in completely different words are grouped together, and two notes that share several words but mean different things are not. That is the whole point of using an embedding model rather than a filter.

How does it decide how many groups to make?

It tries a range of cluster counts and picks the one where notes sit most clearly closer to their own group than to any other (the silhouette score), with a slight bias toward fewer groups. You can override it with the slider at any time — regrouping is instant because your notes only get read by the model once.

Where do the group names come from? Is an LLM writing them?

No language model is involved. Each name is built from the words that are common inside a group but rare across the rest of your notes, and when nothing stands out the tool uses the note closest to the middle of the group. All names are editable.

How many notes can I paste?

Up to 250 in one pass, which covers most research rounds and survey exports. Above that the grouping step gets slow enough to make the page feel frozen, so the tool asks you to run it in batches instead. It works best somewhere between 10 and 150 notes; under 5 there is nothing meaningful to group and it will tell you so.

Is the grouping always right?

No, and it is not meant to be taken as final. It is a fast first pass over text you would otherwise sort by hand. Short notes, jargon and near-duplicate phrasing all reduce its accuracy, which is why you can drag any note into another group and rename every heading before saving.

More free tools