Paste a keyword list and group it into clusters based on shared significant words
This is a plain-JavaScript heuristic, not an AI or NLP system, it's completely transparent about how it works, so you can trust exactly what it's doing to your keyword list. Here's the algorithm in full: every keyword is lowercased and split into words, common stopwords ("a", "the", "for", "best", and similar filler words) are removed, and each remaining significant word is used as a key in a map pointing to every keyword phrase that contains it. Keywords are then greedily grouped into clusters by their most distinctive shared word, the significant word that appears in the most other keywords in that phrase, so each cluster is named after the theme word tying its members together. Any keyword sharing no significant word with any other keyword falls into an "Other" cluster. That's it, no semantic understanding, no synonym matching, just literal shared-word grouping.
Tips: this works best as a first-pass sort to speed up manual review, not a final answer, always skim the clusters yourself, since a shared literal word doesn't always mean the keywords are truly related (e.g. "running shoes" and "running a business" would share the word "running" but aren't the same topic).
No, it's a deterministic word-matching heuristic that runs entirely in plain JavaScript. The same input always produces the same clusters, with no model, training data, or external service involved.
Because the tool only matches on literal shared words, not meaning, "sneakers for jogging" and "running shoes" won't cluster together even though they mean nearly the same thing, since they share no significant word. This is the core limitation of a word-overlap heuristic versus true semantic clustering.
Each cluster is named after its most distinctive shared word, the significant (non-stopword) word that appears across the most keywords within that group, since that word best represents the common theme tying its members together.
Any keyword whose significant words don't overlap with any other keyword in your list, usually a one-off phrase or a keyword written very differently from the rest of the list.
No, clustering happens entirely in your browser with JavaScript. Nothing you paste is sent to a server or stored anywhere.