Free tool · AI runs in your browser

Theme Finder

Paste a pile of survey answers, reviews, or notes — one per line — and a real AI model groups them into themes by meaning, not keywords. It runs entirely on your device.

🔒 100% private — the model runs locally, your text never leaves your device

What it does

Drop in any long list of short text — open-ended survey answers, app-store reviews, customer feedback, support tickets, user-research notes, a brain-dump of ideas — and Theme Finder sorts it into a handful of themes. Because it groups by meaning, it puts "checkout kept crashing" and "the payment screen froze" in the same theme even though they share no words. You get a labelled bucket for each theme, a representative quote, the full list of items in it, and a CSV you can take into a spreadsheet.

How it works (and how it runs locally)

When you click Find themes, an open sentence-embedding model called all-MiniLM-L6-v2 loads straight into your browser through transformers.js and WebAssembly (it can use WebGPU when your browser supports it). Every line is turned into a 384-number vector that captures its meaning, so similar sentences land near each other in that space. A k-means pass then groups the vectors, and a small scoring step picks the most distinctive words in each group to name it and the line closest to the centre as the example quote. The first run downloads the model once (about 25 MB) and caches it; after that it is instant and works offline.

Why on-device matters

Feedback and survey data are often confidential. Sending them to a cloud API can be a non-starter for legal, privacy, or contract reasons. Here nothing is uploaded — the model executes on your own machine — so you can throw real, sensitive data at it without it ever leaving the page. It is also free, has no row limits, and keeps working with your network off.

Is my text uploaded anywhere?

No. The AI model runs locally in your browser via WebAssembly/WebGPU. Your text never touches a server, which is why it is safe for confidential feedback and survey data.

How is this different from keyword grouping?

It groups by meaning, not matching words. "Shipping was slow" and "my order took forever" go in the same theme even with nothing in common on the surface, because the embedding model understands they mean the same thing.

How many lines should I give it?

It works from a handful, but themes get sharper with more — 30 to a few hundred lines is the sweet spot. It handles over a thousand; very large lists are limited only by your device's memory.

Can I control the number of themes?

Yes. Leave it on Auto and it picks a sensible number, or set an exact count. Changing the count re-groups instantly without re-loading the model.

Is it free?

Completely free, no sign-up. The model downloads once (~25 MB) and is cached after that.

I build tools like this every day.

Senior full-stack engineer, available for senior or contract work, fully remote. See the rest of the lab or get in touch.