Domain Scout
Turn a concept into a ranked shortlist of available, brandable, buyable domains. You (the model) are
the creative name generator; scripts/scout.mjs is the mechanical availability checker. The output is a
small ranked shortlist with the reasoning and a recommended pick, the way a good namer would hand it over.
The core discipline: availability ≠ good, and "feels open" ≠ open. A name is only a candidate once
whois says it's free AND no established company already owns the brand. Check, never eyeball (the
recurring lesson: a long-registered .com signals an existing company, even if a variant is
free).
The run
- Frame the concept in one line: what it is, who it's for, the feeling. Note any constraints (must be .com? short? contain a keyword? avoid a word?).
- Generate candidates across angles (below), 15–30 names. Widen the stock before narrowing.
- Check availability with the script (whois across TLDs + variant patterns).
- Collision screen the survivors: a quick web search per finalist for an existing company using the name (esp. same/adjacent category). Flag conflicts.
- Rank by the brandability rubric and present the shortlist: domain, available?, why it fits, any collision flag, and the one you'd pick with the reason.
Name-generation angles (widen the stock)
Generate from several of these, not one, or you get monotone output:
- Descriptive / literal — says what it does (
vendormatch,officesourcing). Clear, often taken, low distinctiveness. - Evocative / metaphor — a concrete image for the benefit (
beacon= guidance;northstar). Memorable, on-theme. - Invented / portmanteau — fuse two relevant words (
vendra,sourcely,qualifi). Brandable, often available. - Real word, angled — an ordinary word used slant (
slate,vouch,roster). Premium feel, .com usually taken → needs a variant. - Compound — two short words (
workbid,sitelaunch,leadloop). Reads instantly. - Latin / Greek / foreign root — for gravitas or when English is exhausted (
certus,civ,mano). - Industry jargon as a name — the term insiders already use ("churn-saver" for a retention play → Churnsaver). Self-explanatory to the target market; strong signal.
- Prefix / suffix patterns — when the bare word is taken:
get___,use___,try___,join___,___hq,___app,___labs,go___.___hqandget___read as real startups;try___implies beta.
In a hot / picked-clean namespace (anything agent-* or AI-adjacent in 2026), the descriptive space is
gone — checking 40 agent* / *ai names can surface zero available. Lean hard on invented / coined
(the Perplexity / Anthropic / Mistral pattern funded startups actually use) and check widely; don't burn the
run on descriptive names that are all taken.
TLD strategy
.com is the strong default — most trusted, the one people type and say by reflex. Prioritize it hard:
treat .ai / .co / .io / .org as fallbacks that need a reason, not peers. A clean available .com
should outrank a nicer name stuck on a non-.com, and a prefixed .com (get___, ___hq, try___)
usually beats dropping the TLD entirely.
.com— default; if the bare.comis taken, try a prefix/suffix.combefore leaving.com..co— closest substitute, pricier, slightly weaker..io/.dev/.app/.ai— acceptable ONLY for dev/AI/technical audiences with a reason;.aireads on-trend but costs more and isn't.com..xyz/ others — only with a strong reason.
So: check and rank .com first, always. Only present a non-.com as the top pick if there's no viable
.com AND the audience genuinely accepts the alternative. When in doubt, .com.
Brandability rubric (score each survivor)
- Length — shorter is better; ≤ 2 syllables / ≤ 10 chars is ideal.
- Say-it / spell-it — can someone hear it once and type it right? No silent letters, no ambiguous spellings, no numbers, no hyphens (hard bans: numbers, hyphens).
- Meaning fit — does it evoke the concept or the benefit?
.comavailability — heavily weight a clean.com(or an acceptable prefixed.com).- Collision-free — no established company owning the brand (see collision screen).
- Distinctiveness — would it get lost among lookalikes? (competitive-exclusion: different enough to own.)
Score = brandability × availability × fit × collision-free. Present the top 3–5, not all.
Availability check (the script)
# check specific full domains
node scripts/scout.mjs check leadloophq.com useleadloop.com leadloop.co
# check a base name across default TLDs + common prefixes
node scripts/scout.mjs base leadloop
node scripts/scout.mjs base leadloop --tlds com,co,io,ai --prefixes get,use,try,join,hq
Multi-signal, no API key: DNS nameservers (registered domains always have NS → definitive taken),
then RDAP (structured JSON; clean 404 = available, 200 = taken), then whois as last resort. This
is reliable across TLDs including .ai — plain whois lies on .ai (it false-positived a registered
domain as available), which is why DNS+RDAP lead. Output per domain: AVAILABLE / taken /
unknown (re-check). It's a fast filter; confirm at purchase, never treat as a registry guarantee.
Collision screen (don't skip)
For each finalist, a 2-minute check before recommending: WebSearch "<name>" company (and the bare .com
if taken — a long-registered .com usually means a real company holds the brand). If an established
company uses the exact name, especially in the same or an adjacent category, flag it. A different-category
collision is usually fine as a working name but worth a trademark gut-check before committing.
Output shape
A short ranked list. For each: domain · available? · price-tier if known · one-line why · collision flag. End with the single pick and the reason, the way a namer hands off a recommendation, not a data dump.
Angles to grow (this skill is meant to expand)
Room for more lenses over time: registrar price lookup (premium names cost more), expiring/dropped domain hunting, thesaurus/semantic expansion of the concept, phonetic neighbors, two-word availability sweeps, social-handle availability (matching @handle), and AI bulk-generation with a scored filter. Add each as a new mode or script rather than bloating the core run.
Whatever gets added, the core discipline holds: check, never eyeball; confirm at purchase.