# backlink-outreach-kit
A Claude Code skill for link building that refuses to do the thing most link
building does.
[中文](README.zh-CN.md)
Two rules carry most of it:
**The floor is your own Domain Rating.** Not a number someone picked. A
prospect below your own DR is not a weak prospect, it is not a prospect, and it
never reaches the scoring table. The floor rises as you do, because you measure
your own DR at the start of every batch.
**Paid placements are refused, at any DR.** Rate cards, brokers reselling
placements on third-party sites, and anyone advertising that they omit
sponsored labelling. Selling followed links without disclosure is what Google's
link spam policy names, and buying them is a violation on the buyer's side too.
Everything else is the workflow around those two: where prospects come from,
how to read a page before pitching it, what a first email may and may not
claim, and a tracker that will not let you mark something `sent` without a
message ID.
## Why a floor, with the numbers
On one site this kit was run against:
```
three months of exchanges DR 25 -> 30 referring domains 122 -> 324
one week, six DR 90+ links DR 30 -> 49
```
Volume did almost nothing. That is the whole argument. A link from below your
own DR costs the same week of work as one that moves the number.
## Three checks a Domain Rating will not catch
DR is a backlink metric and it inflates. Real examples, all offered to us as
partnerships:
| Pattern | What it looked like | Verdict |
|---|---|---|
| Dead shell | DR 6, 361 referring domains, **0** traffic, **0** keywords | Reject. Referring domains without traffic were bought. |
| Inflated DR | DR 74, 341,070 backlinks from 3,816 domains, 167 ranking keywords | Score it as if the DR were far lower. That ratio is sitewide badge links. |
| Link shop | Referring domains named `backlinkshop.site`, `linkbooster.shop` | Reject. |
## Install
Drop it in as a skill:
```bash
git clone https://github.com/Jasper0122/backlink-outreach-kit \
~/.claude/skills/backlink-outreach
```
Then say "find link partners" or "backlink outreach" in Claude Code.
The research calls go through [Monid](https://monid.ai), so one key covers web
search, page scraping, Ahrefs authority metrics, company enrichment and email
validation rather than five separate contracts. Discovery and schema inspection
are free; only the authority calls are metered.
## The tracker
State lives in one JSON file and the script enforces the transitions, because
the failure mode of outreach is a spreadsheet that says `sent` for something
nobody sent.
```bash
node scripts/tracker.mjs add --company "Acme" --url acme.com --article "<exact article URL>"
node scripts/tracker.mjs list
```
`sent` requires a real message ID. `published` requires a live URL. Both
placements move independently: theirs going live does not close yours.
## What is in here
```
SKILL.md the workflow, ten steps
references/cold-email-template.md the one email shape, and why each block exists
references/email-frameworks.md reply handling
references/reciprocal-placement.md writing their placement, and delivering it
references/tracker-schema.md the state machine
scripts/tracker.mjs the tracker
```
## The rest of the kit
This is the outreach half of a larger one.
[agent-seo-kit](https://github.com/Jasper0122/agent-seo-kit) adds the citation
monitoring that produces the best prospect lists, the writing skill that
produces the guide a placement lands in, and a search-console intake that turns
data into a work queue. Nothing here requires them.
## Licence
MIT.