Backlink Outreach Writer
[Live] ·
agent__backlink-outreach-writer· Claude Sonnet 4.6
Writes one personalised outreach email — plus a follow-up — for a single approved backlink prospect, using the prospect’s recent content and the client’s best credibility signals to maximise reply rate.
Overview
| Function | Write a personalised primary outreach email and follow-up for a single approved backlink prospect |
| Type | Worker — SEO |
| Model | Claude Sonnet 4.6 |
| Queue | agent__backlink-outreach-writer |
| Concurrency | 6 |
| Timeout | 4 min |
| Est. cost / task | ~$0.20 |
| Plan | Pro+ |
Triggers
| Trigger type | When | Who initiates |
|---|---|---|
| Activity Planner dispatch | After Backlink Researcher completes and human approves individual prospects — Strategist enqueues one Outreach Writer job per approved prospect (dependsOn: backlink-researcher) | Activity Planner |
| Human on-demand | User clicks “Write outreach” for an individual prospect in DM Portal — e.g. for a new prospect added manually outside the normal pipeline | Tenant admin / DM reviewer |
| Scheduled / cron | Not applicable — outreach emails are always written in response to an approved prospect list; no standalone scheduled cadence | — |
Input
interface BacklinkOutreachWriterInput {
tenantId: string;
prospect: BacklinkProspect; // full prospect object from Backlink Researcher
contentAsset: ContentAsset; // the specific page/resource being pitched
senderName: string; // e.g. "Sarah Chen"
senderTitle: string; // e.g. "Content Strategist at Leadmetrics"
campaignId?: string;
}
interface BacklinkProspect {
id: string;
domain: string;
domainRating: number;
relevanceReason: string;
contactPageUrl: string;
existingRelationship: 'warm' | 'brand-mention' | 'cold';
prospectType: ProspectType;
pitchAsset: string;
pitchRationale: string;
priority: 'high' | 'medium' | 'low';
}
interface ContentAsset {
url: string;
title: string;
description: string;
assetType: 'guide' | 'tool' | 'data-study' | 'case-study' | 'comparison' | 'template';
}
type ProspectType =
| 'resource-page'
| 'guest-post'
| 'broken-link'
| 'competitor-backlink'
| 'mention';Output
interface BacklinkOutreachWriterOutput {
tenantId: string;
prospectId: string;
prospectDomain: string;
generatedAt: string; // ISO timestamp
status: 'pending_review'; // always pending — never sent automatically
primary: OutreachEmail;
followUp: OutreachEmail;
personalisationNotes: string; // what specific details were used to personalise
confidenceScore: number; // 1–10 agent self-assessment of email quality
}
interface OutreachEmail {
subject: string;
body: string;
wordCount: number;
tone: 'warm' | 'professional' | 'casual';
}Sample output excerpt
## Outreach Email — techblogreviews.io (Brand Mention / High Priority)
**Generated:** 2026-03-02 | **Status:** Pending review — DO NOT SEND until approved
---
### Primary Email
**Subject:** Quick note on your Acme mention in "Best SaaS Tools 2026"
Hi [Editor name],
I came across your "Best SaaS Tools for 2026" roundup — great piece. You mentioned Acme in the
project management section, which we really appreciated.
I noticed the mention doesn't have a link through to us. I wanted to reach out in case it was
a simple oversight — if you're open to adding it, the most relevant page would be our features
overview at acme.com/features.
If it would be helpful, we also have a detailed comparison guide covering construction PM software
that your readers might find useful: acme.com/guides/construction-pm-software-comparison.
It's one of our most-read resources and goes into hands-on depth that most roundups don't.
Either way, thanks for including us — happy to return the favour if there's anything we can
help with for future posts.
Best,
Sarah Chen
Content Strategist, Acme
---
### Follow-Up (Send 7 days after primary if no reply)
**Subject:** Re: Quick note on your Acme mention
Hi [Editor name],
Just bumping this up in case it got buried. No pressure at all — I know inboxes get hectic.
If the link addition isn't possible, completely understood. But if you'd like the direct URL
for the features page or the comparison guide, I'm happy to send those over.
Thanks again for the mention,
Sarah
---
### Personalisation Notes
- Located their "Best SaaS Tools 2026" article published 2026-02-14 via web_fetch
- Confirmed the existing Acme mention on line 3 of the "Project Management" section
- Used low-pressure, "in case it was an oversight" framing — appropriate for brand-mention type
- No credibility signals needed for this prospect type; the existing mention establishes context
- Follow-up is intentionally short — single ask, easy to reply to
**Confidence Score:** 9/10How It Works
-
Load client context and prospect data. The Client Context File is injected. The full
prospectobject from Backlink Researcher provides relationship level, prospect type, and pitch rationale. ThecontentAssetis the resource being pitched. -
RAG: client credibility signals. Query Client Documents for company achievements, case studies, awards, client results, and notable customers that could be mentioned to establish credibility. Query Published Content for the client’s best-performing articles and resources — used to identify the strongest asset to pitch if the input asset needs supplementing.
-
Read the prospect’s recent content. Call
web_fetchon the prospect’s website to read 1–2 of their most recent articles or the specific page that references the client (for brand-mention prospects). Extract: author/editor name if visible, article tone, topics covered, and writing style. This is the primary source of personalisation material. -
Select the email strategy by prospect type. Apply the type-specific email strategy:
- Brand mention: Low-friction “link addition” ask; reference the specific article and mention location.
- Broken link: Point to the specific broken link; offer the client’s content as a direct replacement.
- Competitor backlink: Acknowledge the competitor’s linked resource; explain what the client’s content adds.
- Resource page: Reference the specific resource page; explain why the client’s asset belongs on it.
- Guest post: Pitch a topic idea; reference a recent article they published to show you’ve read their content.
-
Select credibility signals. From the RAG results, choose 1–2 specific credibility details appropriate for the relationship level. For warm prospects, use the specific relationship context. For cold prospects, use a concrete statistic or achievement — avoid generic “industry leader” language.
-
Write the primary email. Follow the structure: personalised opener (1 sentence referencing their specific content), context (1–2 sentences establishing why you’re reaching out), the ask (1 clear sentence), the value offer (1–2 sentences explaining what the client’s resource offers their audience), soft close. Total: 100–180 words. Never use a template opener like “I hope this finds you well.”
-
Write the follow-up. 50–80 words maximum. Acknowledge the prior email, restate the core ask in one sentence, make it easy to decline. Send timing: 7 days after the primary.
-
Self-assess and record personalisation. Record the specific personalisation details used (article title, date, specific mention location). Assign a confidence score 1–10 based on: quality of personalisation (1–2 specific details = high), strategy fit for prospect type, and tone match to relationship level.
System Prompt
You are a link-building outreach specialist at a digital marketing agency. Your job is to
write a personalised, human-sounding outreach email that earns a reply — not a template blast.
CLIENT CONTEXT:
{{CLIENT_CONTEXT}}
TENANT SETTINGS:
{{TENANT_SETTINGS}}
KNOWLEDGE BASE CONTEXT:
{{RAG_CONTEXT}}
You have been provided with:
- The prospect's domain, relationship level, and prospect type
- The content asset being pitched (URL, title, description)
- The prospect's recent content (from web_fetch — use specific details)
- The client's credibility signals from their document library (achievements, case studies, results)
Your task is to write:
1. A primary outreach email (100–180 words)
2. A follow-up email (50–80 words) to send 7 days later if no reply
Email rules — these are non-negotiable:
- Never open with "I hope this finds you well", "My name is", or any generic opener
- The first sentence must reference something specific about their website or content
- The ask must be ONE clear thing — never list multiple asks in one email
- Do not use phrases like "I'd love to", "I came across your amazing website", "high-quality"
- For cold prospects: include ONE specific credibility signal (a stat, award, or named client)
— not a list of achievements
- For warm prospects: reference the specific relationship context in the first sentence
- For brand-mention prospects: use "in case it was an oversight" framing — low pressure
- For broken-link prospects: name the specific broken link and what it used to point to
- The follow-up must be shorter than the primary — single sentence ask, easy to reply to
Tone guide by relationship level:
- Warm: conversational, collegial — you know this person or context
- Brand mention: friendly, appreciative — they already know the brand
- Cold: professional but human — not corporate, not sycophantic
Output valid JSON matching the BacklinkOutreachWriterOutput schema.
IMPORTANT: Set status to "pending_review" always. These emails are NEVER sent automatically.Skills Injected
| Skill file | Purpose |
|---|---|
client-context-file.md | Always injected — company name, products, achievements, brand voice |
outreach-email-standards.md | Email structure rules, word count targets, opener formulas, tone guidelines by prospect type and relationship level |
outreach-email-standards.md — content
# Outreach Email Standards
## What Makes a Link-Building Email Work
Reply rate benchmarks for link-building outreach: industry average 5–8%. Best-in-class
agencies achieve 15–25%. The difference is personalisation and specificity — not volume.
A high-converting outreach email has:
1. A personalised first sentence that proves you read their content
2. A single, specific ask — ambiguity kills reply rates
3. A clear "what's in it for them" — why their audience benefits from linking to this resource
4. A human close — brief, not sycophantic
## Email Length Targets
- Primary email: 100–180 words (short enough to read in 30 seconds)
- Follow-up: 50–80 words (shorter than the primary — reduces the friction to reply)
## Opener Formulas by Prospect Type
**Brand mention:** "I came across your [article title] — great piece. You mentioned [brand] in
the [section] section, and I wanted to reach out..."
**Broken link:** "I was reading your [page title] and noticed the link to [dead resource] seems
to be returning a 404..."
**Competitor backlink:** "I noticed [competitor] is listed on your [page title] — I wanted to
reach out about [client], which [differentiator]..."
**Resource page:** "Your [page title] is a great resource for [audience type]. I wanted to
suggest [client's resource] for inclusion..."
**Guest post:** "I've been reading [recent article title] — the section on [specific topic] is
exactly the angle I've been wanting to write about for a [niche] audience..."
## Credibility Signals — Use One, Not Many
Choose the single most relevant signal for the prospect:
- Named customer or case study result: "We helped [client] reduce churn by 34%..."
- Industry recognition: "Our [guide/tool] was cited by [publication/org]..."
- Usage statistic: "Used by 2,400+ project managers at companies like [name]..."
- Content performance: "Our [resource] has been shared 800 times and cited by [publications]..."
Never list multiple achievements — it reads as insecure. One specific, verifiable claim
outperforms a list every time.
## Subject Line Formulas
- Brand mention: "Quick note on your [brand] mention in [article title]"
- Broken link: "Broken link on [page title]"
- Competitor backlink: "[client] for your [page title]?"
- Resource page: "Suggestion for [page title]"
- Guest post: "[Topic idea] for [site name]?"
Subject lines under 50 characters perform best on mobile. Avoid clickbait, ALL CAPS,
and exclamation marks.
## Follow-Up Rules
- Send 7 days after primary if no reply
- Acknowledge the prior email in one sentence
- Single ask: "Just wanted to bump this in case it got buried"
- Make it easy to decline: "No pressure if it's not a fit"
- Do NOT send a third follow-up — two touches is the limit for cold outreach
## Disqualifying Language (Never Use)
- "I hope this email finds you well"
- "My name is [name] and I work at..."
- "I came across your amazing/fantastic/great website"
- "We would love to collaborate"
- "Please let me know your thoughts"
- "I'd love to hear back from you"
These phrases are template signals that immediately reduce credibility.RAG Usage
| Dataset | Query example | When used |
|---|---|---|
| Client Documents | "company achievements case studies awards notable clients results" | Step 2 — find credibility signals to include for cold and competitor-backlink prospects |
| Published Content | "best performing content most shared articles resources" | Step 2 — identify the strongest content asset to pitch if the input asset needs supplementing or validation |
| Website Content | "content asset [url] title description" | Step 2 — retrieve additional context about the content asset being pitched |
| Competitor Research | Not typically queried | Outreach is focused on the prospect and the client’s own assets |
Tools Required
| Tool | Method | Purpose | Required? |
|---|---|---|---|
rag_search | search | Query client documents for credibility signals; query published content for asset quality validation | Yes |
web_fetch | GET | Read the prospect’s recent content to personalise the opener and confirm relationship context | Yes |
HITL Gates
- Review type:
outreach_email_review - Risk level:
high - Trigger: Always — outreach emails are NEVER sent automatically. Every email requires explicit human approval before sending. This is a firm architectural constraint.
- Reviewer action: Read the primary email and follow-up. Options: Approve (email is queued for manual send by the reviewer), Edit and approve (inline editing before send), or Reject (email is discarded; reviewer can request re-generation with notes). The reviewer is responsible for: correcting the recipient’s name if the agent could not identify it, verifying the personalisation detail is accurate, and adjusting tone if needed for the specific relationship.
- Send action: The system does not send the email. Approved emails are displayed to the reviewer with a “Copy to clipboard” option for sending from their own email client, or optionally via a connected Gmail/Outlook integration — but only after explicit review and approval per email.
- Escalation: Warm prospects (existing relationships) are flagged for senior reviewer attention before sending — a warm relationship mishandled is worse than a cold email sent poorly.
Guardrails
| Rule | Enforcement |
|---|---|
Status is always pending_review | Hard-coded in output schema; never set to any other value by the agent |
| Primary email word count: 100–180 words | Word count check post-generation; retry if outside range |
| Follow-up word count: 50–80 words | Word count check; retry if outside range |
| Disqualifying language not present | String match check for banned phrases from the outreach-email-standards list; retry if detected |
| Single ask per email | Agent instructed; validator checks that the primary email contains exactly one imperative ask |
| Personalisation detail must reference fetched content | Agent must include at least one specific detail from the web_fetch response; output validator checks personalisationNotes is non-empty and references the prospect |
Tenant Settings Used
| Setting | How it’s used |
|---|---|
industry | Informs which credibility signals are most relevant — an e-commerce client uses revenue/conversion stats; a SaaS client uses user count or retention metrics |
targetAudience | Used to frame “what’s in it for their audience” in the pitch — the value offer must describe the benefit to the prospect’s readers |
connectedChannels | If Gmail or Outlook is connected, approved emails can be optionally queued for send from the DM Portal — still requires per-email approval |
plan | Backlink Outreach Writer requires Pro+ plan |
Cost Profile
| Avg input tokens | ~6,500 (system prompt + client context + RAG results + web_fetch of prospect content) |
| Avg output tokens | ~800 (two emails + personalisation notes + confidence score) |
| Est. cost / task | ~$0.20 |
Error Handling
| Error | Response |
|---|---|
web_fetch fails for prospect website | Proceed with RAG-only personalisation; note “Prospect website unavailable — personalisation based on known data only” in personalisationNotes; reduce confidence score by 2 |
| No credibility signals found in RAG | Write the email without a credibility signal; note in personalisationNotes; add “No credibility signals found — reviewer should add a specific data point before sending” |
| Recipient name not found on prospect website | Use “[First name]” placeholder; add note to reviewer: “Recipient name not found — replace [First name] before sending” |
| Disqualifying language detected after 2 retries | Accept output; flag all detected phrases in personalisationNotes for manual correction by reviewer |
| Primary email > 180 words after 2 retries | Accept output; flag word count in HITL review for reviewer to trim |
Prospect type is guest-post and no topic idea generated | Return error if no topic can be inferred from client content and prospect recent articles; ask reviewer to provide a topic idea manually |