The 1,384-Domain Link Pool, and a Problem With the Offer
Private deliverable. Enter the hub password to continue.
That's not right. Try again.
The 1,384-Domain Link Pool, and a Problem With the Offer
August 3, 2026 · Built and measured, not estimated
The offer needs to change, and this is the one thing I'd push back on
You wrote: "offer free SEO auditing and free social media plan generation or the Claude skill and workflows in exchange for their link."
Google's spam policy names that construction explicitly. Under Link spam:
"Buying or selling links for ranking purposes. This includes: - Exchanging money for links, or posts that contain links - Exchanging goods or services for links - Sending someone a product in exchange for them writing about it and including a link"
A free SEO audit is a service. "Free audit in exchange for a link" is the second bullet almost word for word. This isn't a gray area or an aggressive-but-survivable tactic; it's the named example. And it's the version that gets manual actions, not just algorithmic discounting, because the exchange is documented in your own outreach emails. Every pitch you send becomes evidence.
You know this space better than most people who'd tell you otherwise, which is exactly why I think you'll see the fix immediately.
The fix costs you nothing and works better
Give the audit away with no link attached. No condition, no ask, no hint.
That is not naive. It's how the tactic is supposed to work:
- A free audit that finds three real problems on a Colorado food blogger's site makes you the person who helped them. Some meaningful fraction will link, mention, or introduce you, because they want to, and an unprompted editorial link is worth more than a negotiated one and carries no risk.
- Nothing in the policy restricts giving people useful things. It restricts the exchange. Drop the quid pro quo and the entire tactic becomes clean.
- Practically: your reply rate goes UP. "I ran an audit on your site, here are three fixes, no strings" gets opened. "I'll audit your site if you link to me" reads like every other link-building spam email these people delete daily.
And the bigger miss: you're about to use a link magnet as a bribe
You're building an SEO audit product and a social media plan generator. Those are exactly the kind of thing people link to on their own, forever, without being asked.
Put a genuinely useful free version on a public URL. Let anyone run it. Then:
- Food and travel bloggers link to it in "tools I use" posts.
- Marketing roundups include it.
- Someone in r/boulder recommends it and that thread ranks.
- It keeps earning links while you sleep, which no outreach campaign does.
That's the difference between spending your asset once per prospect and compounding it. The free tool IS the link building. It also feeds SEO Believer, since every person who runs a free audit is a qualified lead who has just seen what you can do.
Everything below assumes the clean version of the offer. If you'd rather run it as an exchange anyway, that's your call and I'll build what you ask for, but I'd be doing you a disservice not to have said this once, plainly.
The pool: built, measured, delivered
scripts/build_link_pool.py, output at data/link_pool.json and data/link_pool.csv.
1,384 seed domains across Colorado, food, travel, restaurant trade and city-guide niches, holding 29.7 million referring domains between them.
| Tier | Seeds | What they are |
|---|---|---|
| Elite (60+) | 5 | visitdenver.com, theinfatuation.com, kdvr.com, guide.michelin.com |
| Strong (40 to 60) | 70 | dailycamera.com, denvergazette.com, timeout.com, outsideonline.com, denver.eater.com, aboutboulder.com, cntraveler.com |
| Usable (20 to 40) | 489 | Regional press, niche food and travel blogs, city guides |
| Thin (under 20) | 820 | Long tail, still minable |
These are not people to pitch. They're the quarry. The routine mines their referring domains to find the people who link to sites like yours.
How it was built
- Harvest. Nine keyword clusters (Colorado travel, Colorado local, Colorado food, Colorado outdoors, food media, food blogs, travel media, restaurant trade, city guides), 107 keywords total. A domain ranking for "best restaurants denver" is by definition one that food publishers link to.
- Enrich. Bulk referring-domain counts, domain rank and spam score. These endpoints take 1,000 targets per call, so this stage is nearly free.
- Score. Relevance dominates deliberately.
A note on the scoring, because the first version was wrong. I initially weighted size at
45% and the top 25 came back with philadelphiaeagles.com, pos.toasttab.com and
rent.com, all of which rank for one stray Colorado keyword and will never link to a dining
guide. The fix was to weight depth in the niche (how many of a cluster's keywords a
domain ranks for) at 40%, add a breadth bonus for domains appearing in multiple clusters,
and discount domains over 20,000 referring domains, whose profiles are mostly wire services
and scrapers. The current top 25 is visitdenver, The Infatuation, Michelin, Time Out, the
Daily Camera, Eater Denver and About Boulder. That's the right shape.
Can it actually produce 100 prospects a day? Measured, not guessed
I pulled 300 referring domains from three seeds and ran them through the filter.
| Seed | Pulled | Survived | Yield |
|---|---|---|---|
| denver.eater.com | 300 | 46 | 15% |
| aboutboulder.com | 300 | 32 | 11% |
| dailycamera.com | 300 | 296 | 99% (see below) |
The Daily Camera number is a warning, not a win. Its 99% survival is the filter failing,
not the seed being good: the survivors include abortion-news.info,
accidentdatacenter.com, 24x7report.com and a bare IP address. Big regional newspapers
accumulate enormous quantities of junk that a spam-token filter doesn't catch. Large news
seeds need a stricter filter than niche seeds do. Wire that into the routine or the daily
queue fills with garbage from exactly the seeds that look most impressive.
The honest math
Take the niche yield of roughly 12%, then assume about half of those survivors are genuinely pitchable (some are restaurants themselves, some are random businesses). Net around 6%.
To land 100 qualified prospects a day you need to pull roughly 1,600 raw referring domains daily, which is 4 to 6 seeds a day at 300 to 1,000 each.
So the pool lasts about a year before you repeat a seed. 1,384 seeds ÷ 5 a day ≈ 277 working days. That's the answer to your question: yes, 100 a day is achievable, and the pool is correctly sized for it. It is not oversized.
What to change in the daily routine
- Raise the daily pull from one rotating seed to 5 seeds, taken in score order, marked as consumed so none repeats.
- Two filter profiles: strict for large news seeds (rank floor, require a topical token in the domain or an editorial page match), normal for niche seeds.
- Dedupe against every prospect already seen, not just the ones already contacted, or seeds with overlapping audiences will re-serve the same domains.
- Keep the hard rule: research and draft, never send.
One security thing while I was in there
scripts/common.py hardcodes the DataForSEO password as a fallback default, and it's
committed. My new script deliberately reads only from the environment and refuses to run
without it. Worth rotating that credential and moving it to an environment variable or a
.env that's gitignored, whether or not the repo is private today. Repos change visibility,
get cloned, and end up in backups.
What I'd do next, in order
- Decide on the offer. Clean giveaway, or public free tool, or both. Everything else waits on this because it changes every draft the routine writes.
- Put a free public version of the audit tool on a URL and let it start earning links passively. This is the highest-leverage item on the whole list.
- Update the routine spec to 5 seeds a day with the two filter profiles.
- Do the four manual links from the audit this week: Visit Boulder, Downtown Boulder, Boulder Chamber, and a press pitch on the closed-restaurants dataset.
Published to Annette's hub. Rebuilt from the source markdown, so edit the source and rerun rather than editing this page.