Section 2Agencies - Direct Case Study Approach
Approach: direct case study. Lead with a comparable client result in message one.
Agency owners are sceptical of everything except numbers from someone like them.
mkdir -p .claude/skills/agency-{icp,list,signal,filter,opener,sequence,objection,proof,closer,diagnostic}
01. agency-icp
---
name: agency-icp
description: Define which agencies to target and which to exclude.
---
Read .agents/outreach-context.md.
OUTPUT to output/agency-icp.md:
- Agency type: what they sell, not what they call themselves
- Headcount band. Under 5 usually does the work themselves.
- Client count, if visible from their site
- The service line your offer attaches to
- Generalist or specialist. Specialists buy faster.
EXCLUDE: direct competitors, agencies under 3 people, anyone whose
site shows no client work.
The last one matters. No visible case studies means either very new
or not winning, and neither buys.
02. agency-list
---
name: agency-list
description: Build a raw list of target agencies.
---
SOURCES, highest intent first:
1. Commenters on posts about the problem you solve
2. Agency directories filtered to your headcount band
3. Sponsors and speakers at relevant events
4. Agencies hiring for the role your offer replaces
5. Search by headline containing the service line
Capture: agency name, founder name, headcount, service lines, site,
LinkedIn URL, source.
Write to output/prospects.csv with a linkedin_url column. That
header is required by the import, do not rename it.
Enrich nothing. Look up no emails. Most of this gets discarded.
03. agency-signal
---
name: agency-signal
description: Find the dated reason to contact this agency now.
---
ONE signal per agency, ranked by proximity to a budget decision.
TIER 1, act this week
- Hiring for the role your offer replaces
- Posted about the exact problem within 30 days
- Announced a new service line
- Lost a named client publicly
TIER 2, act this month
- Their site shows the gap
- Commented on a competitor's post
- Headcount grew fast
TIER 3, fit only
Every signal dated with a URL. Both appear in the opener and they
will check.
No signal means NONE. Never stretch "is an agency" into a trigger.
04. agency-filter
---
name: agency-filter
description: Filter before any enrichment. Cheapest model, lowest
effort.
---
Per row: KEEP, DROP or UNSURE with a 12-word reason.
DROP: under 3 people, direct competitor, no client work shown, too
small for the price band, another agency selling what you sell.
UNSURE: ambiguous headline. Do not guess.
KEEP and UNSURE to output/filtered.csv.
DROP to output/dropped.csv so the filter is auditable.
Report the drop rate. Below 40% usually means the search was too
narrow, not that the list is good.
Classification across volume, not reasoning. Running it high is
where the cost advantage disappears.
05. agency-opener
---
name: agency-opener
description: Write the first message, leading with a comparable
client result.
---
STRUCTURE
Line 1 The comparable client, named or described by type and size,
and the number. Approved proof only.
Line 2 The mechanism, one line. How, not what.
Line 3 The question. Whether that problem is live for them.
Under 300 characters. One ask, answerable in ten words.
Never mention price or process in message one.
THE COMPARABLE must match their size and service line. A result
from a 200-person agency does not land on a 6-person one.
If no comparable exists in proof, do not use this approach. Use the
social sell module instead.
BANNED: "I came across your profile", "I help agencies with",
"Are you open to a quick chat".
06. agency-sequence
---
name: agency-sequence
description: The four-touch sequence for agency owners.
---
Node list, not prose. Per node: action, delay, exact copy, exit.
1 Opener. The comparable result and the question.
2 Wait 3 days. The mechanism in one more line, no ask.
3 Wait 4 days. A second comparable, different service line.
4 Wait 7 days. Close-out: "Assuming this is not a priority right
now, which is fine. Want me to check back next quarter?"
Branch on connection state:
1st degree message straight away
Not connected connection request, then message on acceptance
No wait node after a connection request. Acceptance auto-detects
over two weeks.
Reply stops the sequence, always.
State the daily send split against the account ceiling.
07. agency-objection
---
name: agency-objection
description: Handle the objections agency owners actually raise.
---
Read outreach-context first. If it is on the list, use the agreed
response rather than inventing one.
"We do that in-house"
-> Ask what it costs them in hours, not whether they do it. The
answer is the opening.
"Our clients are different"
-> Agree. Ask which part specifically, then answer only that part.
"We tried something like this"
-> Ask what broke. Usually the handover, not the tool.
"Send me some info"
-> One page, not a deck, and one question in the same message.
Never answer a price objection with features. Ask what it is being
compared against.
If they say no twice, stop.
08. agency-proof
---
name: agency-proof
description: Pick which case study to lead with.
---
Rank candidates by, in order:
1. Same service line
2. Same headcount band
3. Same client type
4. Same problem
SERVICE LINE beats headcount. An agency recognises its own offer
faster than its own size.
Check the permission column. YES names them, ANONYMISED describes
them, NO means pick the next row.
Use the number exactly as written. Never round, annualise, or
convert it into a percentage.
If no row is a reasonable match, output NO SUITABLE CASE STUDY
rather than stretching one. A weak comparable is worse than none
with this audience.
09. agency-closer
---
name: agency-closer
description: Decide whether to ask for the call, then draft the ask.
---
Decide IF before HOW.
ASK NOW WHEN
- They named a problem we solve
- They asked about implementation, timeline or price
- Two substantive messages have gone each way
DO NOT ASK YET WHEN
- They replied with one line
- They have not named a problem
Ask one more question instead.
THE ASK
"15 minutes, three questions, no deck" plus two concrete times and
the link. Never "let me know what works".
Under 350 characters including the link.
After sending, tag the lead so the sequence does not follow up on
someone who already booked.
10. agency-diagnostic
---
name: agency-diagnostic
description: Diagnose the agency campaign weekly.
---
Work the chain IN ORDER. Stop at the first failure.
1 ACCEPTANCE BELOW 15%
The connection note, or the list is off-ICP. Not the sequence.
2 ACCEPTANCE FINE, REPLIES BELOW 10%
The opener. Is the comparable actually comparable on size and
service line?
3 REPLIES FINE, CALLS LOW
The ask is mistimed. Check whether it landed on a one-line reply.
4 ALL FINE, VOLUME LOW
Not quality. Check the daily cap split across campaigns.
Output the failing stage, the evidence, and ONE change.
Never more than one change per week. Change three and a lift tells
you nothing.
Section 3Marketing Agencies - Social Sell Approach
Approach: social sell. No cold pitch. Engage with their content for two weeks, then message someone who already recognises your name.
mkdir -p .claude/skills/marketing-agency-{icp,list,signal,filter,engage,sequence,objection,proof,closer,diagnostic}
01. marketing-agency-icp
---
name: marketing-agency-icp
description: Define which marketing agencies to target.
---
OUTPUT: discipline (paid, SEO, content, full-service), headcount
band, whether the founder posts publicly, posting cadence, and the
service line your offer attaches to.
The founder posting publicly is a REQUIREMENT here, not a nice to
have. No content means no social sell.
EXCLUDE: competitors, anyone whose founder has not posted in 90
days, anyone posting only company announcements.
02. marketing-agency-list
---
name: marketing-agency-list
description: Build the list from people who actually post.
---
SOURCES:
1. Founders posting about the problem you solve
2. Commenters on those posts, often the same profile
3. Speakers at marketing events
4. Agency founders appearing on relevant podcasts
Capture the last three post topics per person. That column is what
the engagement skill reads, and without it the comments are generic.
Write to output/prospects.csv with a linkedin_url column.
03. marketing-agency-signal
---
name: marketing-agency-signal
description: Find the engagement-based reason to reach out.
---
TIER 1 Posted about the exact problem in 14 days / asked a public
question in your domain / disagreed publicly with something
you can add to
TIER 2 Consistent posting on an adjacent topic / commented on a
competitor / shared a relevant resource
TIER 3 Posts, but not on topic
Record the post URL and the quotable line.
That line goes in the COMMENT, not the DM. The DM references the
exchange that follows it.
04. marketing-agency-filter
---
name: marketing-agency-filter
description: Filter before any engagement work, because engagement
is expensive in time.
---
Per row: KEEP, DROP or UNSURE with a 12-word reason.
DROP: no posting in 90 days, competitor, under 3 people, posts only
company announcements.
The last one is easy to miss. A founder who only reposts company
news is not reachable socially, however good the fit looks.
Filter harder here than anywhere else. Two weeks of engagement per
prospect means a wrong row costs two weeks.
05. marketing-agency-engage
Replaces the opener in this niche. This is the module.
---
name: marketing-agency-engage
description: The two-week engagement phase that precedes any DM.
---
FOR TWO WEEKS, before any message:
- 3 substantive comments per person, spread across days
- Each adds a second perspective, a counterpoint, or a specific
number. Never agreement.
- At least one on a post with 200+ reactions, for the reach
- Never mention what you do. Not once.
Score each comment 1 to 10 before posting:
9-10 Adds something the author did not know
8 Adds a real perspective or number
7 Relevant and specific but adds little
6 Generic but on topic. Rewrite.
1-5 Praise or restatement. Never post.
Below 7 gets rewritten, not posted. Target an 8.0 average.
ONLY THEN write the DM, and reference the exchange, not the profile.
Two weeks of commenting per prospect caps throughput long before the send limit does. Prosp has comment on last post and reply comment as sequence actions, so this can run as a campaign step against an imported list rather than a daily manual session. Builder default is 80 comments a day, so lower it to 60 or below.
06. marketing-agency-sequence
---
name: marketing-agency-sequence
description: The sequence that follows the engagement phase.
---
1 DM referencing the specific exchange. "You mentioned X on that
post about Y" plus one question extending it.
2 Wait 4 days. Answer their reply substantively. No pitch.
3 Wait 5 days. Only now, the relevance of what you do, one line.
4 Wait 7 days. Close-out.
THE PITCH DOES NOT APPEAR UNTIL TOUCH 3. Earlier and the two weeks
of engagement reads as a manoeuvre, which it then was.
Reply stops the sequence. No wait node after a connection request.
07. marketing-agency-objection
---
name: marketing-agency-objection
description: Their weekly objections.
---
"We are an agency, we do this ourselves"
-> Agree entirely. Ask whether they do it for themselves as well as
for clients. Usually not, and that gap is the conversation.
"Not looking for tools"
-> Do not defend the tool. Ask what they ARE looking for.
"Who are you again"
-> Reference the exact post and comment. If they still do not
remember, the engagement phase was too thin. Log it.
"We already tried that"
-> Ask what specifically. Marketers have tried everything once, so
the detail is where the difference lives.
08. marketing-agency-proof
---
name: marketing-agency-proof
description: Pick proof for a sceptical marketer.
---
Marketers discount marketing claims harder than any other audience.
LEAD WITH the mechanism and a number. Never a testimonial.
NEVER use a superlative. Never "game-changing", "10x" or
"revolutionary" with this audience specifically. Each one costs you
the reply.
If the only proof is a quote with no number, do not use proof at
all. Use the mechanism alone and say you would rather show than
tell.
Check the permission column before naming anyone.
09. marketing-agency-closer
---
name: marketing-agency-closer
description: The ask, for someone who sells for a living.
---
They recognise every close. So do not run one.
STATE the agenda, offer two concrete times, say what happens after.
ADD one line naming who it is not for. A marketer who sees you
disqualify honestly takes the call, because nobody else does.
Under 350 characters including the link.
Never use urgency or scarcity. They teach it.
After sending, tag the lead so the sequence stops.
10. marketing-agency-diagnostic
---
name: marketing-agency-diagnostic
description: Weekly diagnostic for the social sell motion.
---
Stop at the first failure.
1 COMMENT SCORE BELOW 7.0 AVERAGE
The comments, not the list. Rewrite before adding volume.
2 COMMENTS FINE, DM REPLIES LOW
The DM referenced the profile rather than the exchange.
3 REPLIES FINE, CALLS LOW
The pitch arrived before touch 3.
4 ALL FINE, VOLUME LOW
Engagement capacity, not send capacity.
Stage 4 is specific to this niche. Two weeks of engagement per
prospect caps throughput long before 20 connection requests a day
does, so the fix is a longer runway, not a bigger list.
ONE change per week.
Section 4Ghostwriting and Content - Targeting Founders (2 Approaches)
Two approaches. A leads with the posting gap. B leads with a rewrite of something they already published.
The sweet spot is founders who post inconsistently. Daily posters do not need you, never-posters do not believe in it yet.
mkdir -p .claude/skills/ghostwriting-{icp,list,signal,filter,opener-a,opener-b,sequence,objection,proof,closer,diagnostic}
01. ghostwriting-icp
---
name: ghostwriting-icp
description: Define which founders to target.
---
OUTPUT: company stage, headcount, whether the founder posts, current
cadence, follower band, and what they post about.
THE SWEET SPOT: founders who post inconsistently. Someone posting
daily does not need you. Someone who has never posted has not
decided content matters, and you would be selling the category
before the service.
EXCLUDE: anyone with an agency visibly running their account,
anyone posting only company announcements.
02. ghostwriting-list
---
name: ghostwriting-list
description: Build the founder list.
---
SOURCES:
1. Founders who posted well once, then stopped
2. Recently funded founders, last 90 days
3. Founders writing substantive comments on other people's posts
but not posting themselves
4. Podcast guests who clearly have things to say
SOURCE 3 is the strongest and the least used. Someone writing good
comments already has the ideas and not the habit, which is exactly
what you sell.
Capture: last post date, posting gap in days, best-performing post
URL.
03. ghostwriting-signal
---
name: ghostwriting-signal
description: Find the content-based signal.
---
TIER 1 Posted well then stopped for 30+ days / said publicly they
should post more / just raised / just launched something
TIER 2 Posts inconsistently / writes long comments but no posts /
appeared on a podcast recently
TIER 3 Posts, but flat engagement
Record the posting gap in days AND the best post URL. Both appear
in the opener.
The gap is the hook. The best post is the proof you actually read
something.
04. ghostwriting-filter
---
name: ghostwriting-filter
description: Filter before writing anything.
---
Per row: KEEP, DROP or UNSURE with a 12-word reason.
DROP: posting daily already, agency visibly running it, only
company announcements, no posts ever.
The last one is counterintuitive. A founder with zero posts is not
a lead, they are a category education project.
Approach B is high effort, so tag tier 1 rows separately. Only
tier 1 gets the rewrite.
05. ghostwriting-opener-a
Approach A, the posting gap. Use when they posted well and stopped.
---
name: ghostwriting-opener-a
description: The posting-gap opener.
---
Line 1 Name their best post specifically, with what was good about
it. Not "great post" but the actual idea in it.
Line 2 The gap, stated neutrally. "Nothing since March" not "you
stopped posting".
Line 3 One question about what got in the way.
NEVER offer to write for them in message one. The question is the
message.
The honest answer is almost always time, and that answer is your
opening for touch 2.
Under 300 characters.
06. ghostwriting-opener-b
Approach B, the rewrite. Tier 1 only. Ten times the effort, and it converts.
---
name: ghostwriting-opener-b
description: The rewrite opener. Use when they post but engagement
is flat.
---
Take one of their recent posts. Rewrite the HOOK only, never the
body.
Send both versions, theirs first, with one line on what changed.
RULES
- Rewrite the hook, never the substance. Changing their idea
insults them.
- One post, not three. Three reads as an audit nobody asked for.
- Never say their version was bad.
- No ask in this message at all.
This converts higher than approach A and costs ten times the
effort, so reserve it for tier 1.
07. ghostwriting-sequence
---
name: ghostwriting-sequence
description: The four-touch sequence for founders.
---
1 Opener A or B, depending on tier
2 Wait 3 days. ONE specific idea they could post this week, given
free, no strings.
3 Wait 5 days. How the process works, two lines. Still no price.
4 Wait 7 days. Close-out.
TOUCH 2 IS THE SEQUENCE. Giving away a real post idea is what most
founders reply to, and it is the only touch that proves you can do
the job.
Reply stops it. No wait node after a connection request.
08. ghostwriting-objection
---
name: ghostwriting-objection
description: Founder objections, weekly.
---
"Nobody can write in my voice"
-> Agree it is the hard part. Offer to prove it on one post before
any commitment.
"I do not have time for the input calls"
-> Name the actual time. If it is 30 minutes a fortnight, say so.
"It feels dishonest"
-> Take it seriously, do not brush past it. The honest framing is
that they supply the thinking and you supply the hours.
"I tried a ghostwriter and it sounded generic"
-> Ask for the posts. Diagnose what went wrong specifically. That
diagnosis IS the pitch.
09. ghostwriting-proof
---
name: ghostwriting-proof
description: Which proof works on founders.
---
LEAD WITH a before and after from someone comparable. Never a
follower count in isolation.
Best proof is a post you wrote that they might already have seen.
A named client is worth more in this niche than any other, because
voice-matching is THE objection and a named example answers it
directly. Check the permission column first.
Never claim a follower number without the timeframe beside it.
Never use an engagement percentage without the absolute.
10. ghostwriting-closer
---
name: ghostwriting-closer
description: The ask.
---
OFFER A PAID TRIAL POST rather than a call. Founders buy the output,
not the conversation.
"One post, in your voice, before you commit to anything."
If they want a call instead, 15 minutes, and bring one draft to it.
Name the trial price. A free trial post attracts people who will
never pay and costs you the same hours.
Tag the lead so the sequence stops.
11. ghostwriting-diagnostic
---
name: ghostwriting-diagnostic
description: Weekly.
---
Stop at the first failure.
1 ACCEPTANCE LOW
Founders accept broadly, so this is an off-ICP list, not the note.
2 REPLIES LOW
The opener named the gap but not their best post. Both are needed.
3 REPLIES FINE, NO TRIALS
Touch 2 did not give away a real idea.
4 TRIALS HAPPENING, NO CONVERSION
The voice match, not the offer.
Stage 4 is the one that matters. If trial posts are not converting,
the input process is too thin, not the writing.
ONE change per week.
Section 5AI Automation - 3 Approaches
Three approaches. A quotes their job post. B names the visible tool gap. C sends a process map and asks what is wrong.
The strongest signal in the whole library sits here: a company hiring for the role you replace has budget allocated and an unmet need at the same time.
mkdir -p .claude/skills/ai-automation-{icp,list,signal,filter,opener-a,opener-b,opener-c,sequence,objection,proof,closer,diagnostic}
01. ai-automation-icp
---
name: ai-automation-icp
description: Define who actually buys automation.
---
OUTPUT: company size, the department with the manual process, the
role that owns it, current tool stack, whether anyone technical is
in-house.
THE BUYER is rarely the person doing the manual work. It is their
manager, who sees the cost rather than the tedium. Target the
manager.
EXCLUDE: under 10 people, because there is no process yet to
automate. In-house automation teams. Agencies selling the same
thing.
02. ai-automation-list
---
name: ai-automation-list
description: Build the list from evidence of manual process.
---
SOURCES:
1. Companies hiring for a role that is mostly data entry,
coordination or reporting
2. Job posts containing "manual", "spreadsheet" or "copy across"
3. Companies posting about tool consolidation
4. Users of tools with known integration gaps
SOURCE 1 is the strongest signal in this entire library.
Capture: job title, posting date, and the exact line that reveals
the manual work. That line goes in the opener verbatim.
Write to output/prospects.csv with a linkedin_url column.
03. ai-automation-signal
---
name: ai-automation-signal
description: Find the automation trigger.
---
TIER 1 Hiring for the manual role / raised in 90 days / new ops or
RevOps leader in post / publicly complained about a process
TIER 2 Tool stack implies a known gap / headcount growing faster
than process maturity / expanding into a new market
TIER 3 Fit only
Quote the exact line from the job post, in quotation marks. That
verbatim quote is why this niche converts.
Postings older than 45 days are stale. Either it is filled or the
budget moved. Mark them tier 3.
04. ai-automation-filter
---
name: ai-automation-filter
description: Filter before enriching. Cheapest model, lowest effort.
---
Per row: KEEP, DROP or UNSURE with a 12-word reason.
DROP: under 10 people, in-house automation team, competitor, job
post older than 45 days.
The age check matters more here than anywhere. A 60-day-old post is
either filled or dead budget, and quoting it makes you look like
you scraped rather than looked.
KEEP and UNSURE to filtered.csv, DROP to dropped.csv.
05. ai-automation-opener-a
Approach A, the job post. Highest converting of the three.
---
name: ai-automation-opener-a
description: The job-post opener.
---
Line 1 Quote the line from their job post. Verbatim, in quotes.
Line 2 What that role will actually spend its week on, named
specifically.
Line 3 One question: whether that is the bottleneck or a symptom.
NEVER say "you could automate that". They know. The question is
whether they have decided to.
Under 300 characters including the quote.
The quote is load-bearing. Paraphrasing it loses the entire effect,
because the point is that you read their actual posting.
06. ai-automation-opener-b
Approach B, the visible tool gap. Use when no hiring signal exists.
---
name: ai-automation-opener-b
description: The tool-gap opener.
---
Line 1 Name their two tools and the handoff between them.
Line 2 The specific thing that falls through that gap.
Line 3 Ask whether anyone owns that handoff.
The answer is usually nobody, which is the opening.
ONLY use this when both tools are actually visible from their site,
job posts or stack pages. Guessing a stack and being wrong ends the
conversation in one message and you do not get a second.
If only one tool is visible, use approach A or skip the prospect.
07. ai-automation-opener-c
Approach C, the teardown. Tier 1 only, high effort.
---
name: ai-automation-opener-c
description: The process-map opener.
---
Build a one-page map of the process you believe they run, from
observable evidence only, with the three points where it breaks.
Send the map, not a pitch. Ask which part is wrong.
They will correct you, and the correction IS the discovery call.
NEVER assert a step you cannot evidence. Mark inferred steps as
inferred on the map itself. A map that claims certainty it does not
have gets dismissed on the first wrong box.
Tier 1 only. This costs an hour per prospect.
08. ai-automation-sequence
---
name: ai-automation-sequence
description: Four touches.
---
1 Opener A, B or C by tier
2 Wait 3 days. ONE workflow they could fix this week without you.
3 Wait 4 days. What it looks like when done. Outcome, not
architecture.
4 Wait 7 days. Close-out.
Touch 2 giving away a real fix is what separates this from every
other automation pitch in their inbox.
Touch 3 describing outcome rather than architecture matters. The
buyer is a manager, not an engineer, and a diagram loses them.
Reply stops it. No wait node after a connection request.
09. ai-automation-objection
---
name: ai-automation-objection
description: The weekly four.
---
"We are not technical enough"
-> That is the point. Name who maintains it after handover, and be
specific about what they would need to do.
"We tried Zapier and it broke"
-> Ask what broke. It is almost always error handling, and that is
a real differentiator rather than a claimed one.
"What happens when it breaks"
-> The best objection they can raise. Answer with the monitoring
and the notification, specifically. Vagueness here loses it.
"We are building it in-house"
-> Ask when it started. Most in-house automation projects are eight
months old and 60% done.
10. ai-automation-proof
---
name: ai-automation-proof
description: Which proof lands.
---
HOURS SAVED beats revenue claims, because the buyer's manager
understands hours and can defend them upward.
State before and after with the timeframe: "Six hours a week to
twenty minutes, live in nine days."
NEVER claim an ROI multiple. Never a percentage without the
absolute beside it.
A screenshot of the working thing outperforms any written case
study in this niche. Check permission before using one.
If the only proof is a claim with no timeframe, use the mechanism
instead.
11. ai-automation-closer
---
name: ai-automation-closer
description: The ask.
---
OFFER a scoping call framed as a decision, not a demo.
"30 minutes, we map it, and you leave with the map whether or not
you use us."
The giveaway makes the call easy to accept and costs you one hour.
NEVER demo before the map. A demo of the wrong process is worse
than no demo, and you only find out the process was wrong when
they go quiet afterwards.
Tag the lead so the sequence stops.
12. ai-automation-diagnostic
---
name: ai-automation-diagnostic
description: Weekly.
---
Stop at the first failure.
1 ACCEPTANCE LOW
The list is off-ICP, likely too small a company.
2 REPLIES LOW
The opener asserted rather than quoted. Go back to verbatim.
3 REPLIES FINE, CALLS LOW
The scoping call sounds like a demo. Reframe it.
4 CALLS FINE, NO CLOSE
Scope too large. Sell the first workflow, not the platform.
Stage 4 is the common failure here. A 90-day build is a much harder
yes than a two-week one, and the two-week one earns the 90-day one.
ONE change per week.
Section 6Digital Ads Agency - Targeting Ecom
Approach: the account teardown. The strongest niche in the library, because the problem is visible without any account access.
The audit replaces the opener here. That is what makes it convert cold.
mkdir -p .claude/skills/ecom-ads-{icp,list,signal,filter,audit,opener,sequence,objection,proof,closer,diagnostic}
01. ecom-ads-icp
---
name: ecom-ads-icp
description: Define which ecom brands to target.
---
OUTPUT: platform (Shopify, WooCommerce, BigCommerce), estimated
revenue band, AOV band, category, whether they run ads currently,
and who owns marketing.
THE SWEET SPOT: running ads, spending enough to matter, without a
specialist agency. All three are visible from the public ad library
plus the site footer.
EXCLUDE: no ads running, single-product stores under your revenue
threshold, brands with an agency credited in the footer.
02. ecom-ads-list
---
name: ecom-ads-list
description: Build the list from observable ad activity.
---
SOURCES:
1. Brands with ads live in the public ad library in your category
2. Brands whose ads have been running unchanged for 60+ days
3. Recently launched stores now spending
4. Brands hiring an in-house media buyer
SOURCE 2 is the wedge. An unchanged creative running two months is
creative fatigue you can point at with a screenshot.
Capture: ad count, longest-running creative in days, platform,
site URL, category.
03. ecom-ads-signal
---
name: ecom-ads-signal
description: Find the visible ad problem.
---
TIER 1 Same creative 60+ days / no video in the mix / product feed
errors visible / PDP missing reviews or schema / mobile
speed visibly poor
TIER 2 Thin ad variety / no retargeting visible / recently funded /
hiring a media buyer
TIER 3 Runs ads, nothing obviously wrong
EVERY finding needs a screenshot or a URL. This niche lives on
evidence, and one wrong finding ends the conversation permanently.
Record the evidence with the finding, not separately.
04. ecom-ads-filter
---
name: ecom-ads-filter
description: Filter before any audit work, because audits cost time.
---
Per row: KEEP, DROP or UNSURE with a 12-word reason.
DROP: no ads running, agency credited in the footer, revenue band
too low for the price, category you cannot serve.
The agency check matters most. Auditing a brand that already has
one wastes the effort unless the signal is unusually strong.
KEEP and UNSURE to filtered.csv, DROP to dropped.csv.
05. ecom-ads-audit
The free audit. Replaces the opener and is why this niche converts.
---
name: ecom-ads-audit
description: Produce the free ad account audit from observable data
only.
---
SIX FINDINGS maximum, each with a screenshot or URL:
1. Creative fatigue: the longest-running ad and its days live
2. Format gaps: what is missing from the mix
3. Feed health: any visible product feed error
4. PDP: reviews, schema, image coverage, mobile speed
5. Post-click: does the landing page match the ad promise
6. Retargeting: visible or not
THEN: the one you would fix first, and roughly what it is worth.
Quantify ONLY where the arithmetic is defensible from observable
data. Never invent a revenue figure.
FAIL CLOSED if fewer than three findings have evidence. Skip the
prospect and report why. A thin audit is worse than none.
Under 900 words.
06. ecom-ads-opener
---
name: ecom-ads-opener
description: The message that delivers the audit.
---
Line 1 The single biggest finding, specific and evidenced.
Line 2 Offer the rest. Six findings, one page, no call needed.
Line 3 One question about whether they already know.
DO NOT attach the audit to message one. Offer it. The yes is the
engagement, and a cold attachment gets ignored.
Under 300 characters.
BANNED: "I noticed your ads", "I was looking at your store", "Quick
question about your Meta account".
07. ecom-ads-sequence
---
name: ecom-ads-sequence
description: Four touches.
---
1 Opener, biggest finding plus the offer
2 On reply, send the audit. No pitch inside it.
3 Wait 2 days after sending. One question about finding two.
4 Wait 5 days. Close-out.
IF NO REPLY to touch 1, send the finding anyway at touch 2. Giving
it away unasked converts better than chasing permission to send it.
Reply stops the sequence. No wait node after a connection request.
08. ecom-ads-objection
---
name: ecom-ads-objection
description: Ecom-specific objections.
---
"Our current agency handles this"
-> Ask when they last changed creative. The finding answers it
without you attacking anyone.
"Our margins are too thin for agency fees"
-> A real objection. Ask for AOV and current ROAS. If the maths
does not work, say so and walk. That honesty gets referrals.
"We are seasonal, not now"
-> Capture the date. Seasonality is real and a diarised follow-up
converts well in this niche.
"We tried an agency and it did not work"
-> Ask what the reporting looked like. It is almost always that.
09. ecom-ads-proof
---
name: ecom-ads-proof
description: Proof for ecom operators.
---
ROAS and AOV, with the timeframe AND the spend level. A ROAS figure
with no spend attached is meaningless and operators know it.
Match the category where possible. Match the AOV band where not.
NEVER use a percentage uplift without the starting number.
A screenshot of an account beats any written case study, subject to
permission. Check the permission column first.
If you cannot show spend alongside return, use the finding itself
as proof of competence instead.
10. ecom-ads-closer
---
name: ecom-ads-closer
description: The ask.
---
OFFER a 20-minute account walkthrough where you look at the real
numbers together. Not a pitch call.
"You have the data, I have the read." That framing converts because
it is true.
Name what access you would need, in advance, so the call is not
spent on permissions.
Tag the lead so the sequence stops.
11. ecom-ads-diagnostic
---
name: ecom-ads-diagnostic
description: Weekly.
---
Stop at the first failure.
1 ACCEPTANCE LOW
The list includes brands that already have agencies.
2 REPLIES LOW
The finding in line one was generic. Make it specific and
evidenced.
3 REPLIES FINE, AUDITS UNOPENED
The audit is too long. Cut to four findings.
4 AUDITS READ, NO CALLS
The audit pitched instead of helping.
Stage 4 is the one to watch. An audit that sells does not get
forwarded internally, and forwarding is what closes these.
ONE change per week.
Section 7Stealing Competitor Leads - Scrape Competitor Post
Approach: scrape their post. The highest-intent cold source available, and the one with the sharpest failure mode.
The rule that governs everything here: never name the competitor. Not in the note, not in the DM, not anywhere.
mkdir -p .claude/skills/competitor-leads-{icp,list,signal,filter,opener,sequence,objection,proof,closer,diagnostic}
01. competitor-leads-icp
---
name: competitor-leads-icp
description: Decide which competitors are worth harvesting.
---
NOT every competitor. Pick by audience overlap, not by size.
OUTPUT per competitor: what they sell, who engages with them,
whether that audience is your ICP, and where they are genuinely
better.
A competitor with a broader offer has an audience that mostly does
not fit you. Their follower count is not your addressable market
and treating it as one produces a 70% drop rate later.
Rank competitors by overlap. Harvest the top two only.
02. competitor-leads-list
---
name: competitor-leads-list
description: Build the list from their engagement.
---
SOURCES, best first:
1. Commenters on their posts, especially substantive comments
2. Likers on posts about the problem you both solve
3. Attendees of their events or webinars
4. Their company page followers
SOURCE 1 beats source 4 by a distance. A follower expressed
interest once, possibly years ago. A commenter engaged with a
specific idea on a specific date, and you know which idea.
CAPTURE THE POST TOPIC per lead, not just the lead. That column is
what the opener reads.
03. competitor-leads-signal
---
name: competitor-leads-signal
description: Score the engagement.
---
DEPTH x FIT, each 1 to 3, multiplied. Maximum 9.
DEPTH
1 Reaction only
2 Short comment
3 Substantive comment, or engaged more than once
FIT, against the ICP
1 Adjacent
2 Right role wrong company type, or the reverse
3 Exact match
6 to 9 Contact this week
3 to 5 Hold, watch for a second signal
1 to 2 No outreach. Keep in the list, spend no send on it.
The post topic shapes the opener. Someone who commented on a
pricing post gets a different message from someone who commented
on an onboarding post.
04. competitor-leads-filter
---
name: competitor-leads-filter
description: Filter hard. A competitor's audience is not your ICP.
---
Per row: KEEP, DROP or UNSURE with a 12-word reason.
DROP: their employees, their existing customers where visible,
other competitors, anyone outside your ICP bands.
THE EMPLOYEE CHECK is easy to miss and embarrassing to get wrong.
Check the company field on every row before keeping it.
Expect a HIGHER drop rate here than any other niche. 60% is normal
and a drop rate under 50% means the filter is too loose.
05. competitor-leads-opener
---
name: competitor-leads-opener
description: The message. Never mention the competitor.
---
Line 1 The TOPIC of the post, and what was interesting about the
discussion. Not the competitor, not the post author.
Line 2 Your angle on that same topic, one line.
Line 3 A question about their situation specifically.
NEVER name the competitor. Never say "I saw you commenting on X's
post". It reads as surveillance and it gets screenshotted.
The topic is the bridge. The competitor is invisible.
Under 300 characters.
BANNED: any phrasing that reveals where the list came from.
06. competitor-leads-sequence
---
name: competitor-leads-sequence
description: Four touches.
---
1 Opener, topic-based
2 Wait 4 days. A resource on that topic, given freely.
3 Wait 5 days. The difference in how you approach it, one line.
4 Wait 7 days. Close-out.
Touch 3 is where you differentiate, and STILL without naming them.
Describe your approach, never the alternative.
Reply stops it. No wait node after a connection request.
07. competitor-leads-objection
---
name: competitor-leads-objection
description: The objections this niche generates.
---
"We already use [competitor]"
-> Information, not rejection. Ask what it does not do. Listen
properly; that answer is your roadmap as much as your pitch.
"How did you find me"
-> Answer honestly and briefly. "You commented on a post about X
and it is what I work on." Evasion here is fatal.
"Are you a competitor of theirs"
-> Yes, plainly, then one line on the honest difference INCLUDING
where they are better.
Never characterise their team, their pricing motive or their
roadmap. Ever.
08. competitor-leads-proof
---
name: competitor-leads-proof
description: Proof against an incumbent.
---
NEVER a direct comparison table in a DM. That is a website asset
and it reads as an attack in an inbox.
LEAD WITH a customer who switched, if you have one with permission,
and what specifically prompted it.
Name where the competitor is genuinely better, unprompted. It is
the fastest way to be believed on everything else.
If you have no switcher story, lead with the mechanism and skip
proof entirely.
09. competitor-leads-closer
---
name: competitor-leads-closer
description: The ask against an incumbent.
---
Do NOT ask them to switch. Ask for 15 minutes to understand what
they would need to see.
Switching costs are real. A buyer who hears you acknowledge that
takes the call; one who hears you dismiss it does not.
Offer to be useful regardless of outcome.
Most of these convert on the second attempt, months later, when
something breaks. Tag accordingly rather than marking them lost.
10. competitor-leads-diagnostic
---
name: competitor-leads-diagnostic
description: Weekly.
---
Stop at the first failure.
1 DROP RATE BELOW 50%
The filter is too loose for this source. Tighten before sending.
2 ACCEPTANCE LOW
The connection note referenced the competitor somewhere.
3 REPLIES LOW
The opener led with the post rather than the topic.
4 REPLIES HOSTILE
You named the competitor somewhere. Find it and remove it.
STAGE 4 IS SPECIFIC TO THIS NICHE and it is the one that damages
the brand rather than just the campaign. Treat one hostile reply as
a process failure, not bad luck.
ONE change per week.
Section 8Lead Magnet Comments - Fully Automated
Approach: fully automated. The volume play. A post that lands pulls hundreds of comments, and every one is a person expecting a link.
This is the only niche that cannot run manually.
mkdir -p .claude/skills/magnet-comments-{icp,resource,post,import,branch,score,message,followup,tagging,diagnostic}
01. magnet-comments-icp
---
name: magnet-comments-icp
description: Define who the magnet is for, before writing it.
---
The magnet does the qualifying, not the hook.
Keep hooks broadly resonant. Reach puts the post in front of more
of the ICP in absolute terms, so narrowing the hook costs you the
right people as well as the wrong ones.
PUT THE FILTER IN THE RESOURCE DESCRIPTION.
"43 cold email prompts" pulls everyone.
"43 cold email prompts for B2B SaaS founders selling to CTOs"
pulls fewer and better.
OUTPUT: the exact job title, company type, and the one problem the
resource solves for them.
02. magnet-comments-resource
---
name: magnet-comments-resource
description: Define the resource by its contents, never its benefits.
---
List what is LITERALLY inside. Objects, counts, sections, files.
"43 prompts, 6 sequences, 1 tracker" not "unlock your potential".
If you cannot list objects, the resource is not finished and the
post will underperform regardless of how good the hook is.
OUTPUT the contents list as it will appear in the post, and the
one thing inside that is most useful on its own. That single item
is what the follow-up message names.
03. magnet-comments-post
---
name: magnet-comments-post
description: Write the post. Three variants, three keywords.
---
Each variant uses a DIFFERENT formula and differs in angle, not
wording. A synonym swap is not a variant.
Each gets its own uppercase keyword, same semantic family:
OUTBOUND, PIPELINE, SEQUENCE.
Never OUTBOUND, OUTBOUND2, OUTBOUND3. That reads as a reposted
campaign.
CTA depends on connection state:
Mostly connected:
Comment "[WORD]" and I'll DM it over.
Mostly not:
Comment "[WORD]" and connect with me so I can send it.
PS. If we're already connected, just drop the comment.
RULES
- Hook is lines 1 to 2 and must earn the See More click alone
- One idea per line, three lines maximum per paragraph
- Contents as objects, not outcomes
- One CTA. No hashtags in the body. No em dashes.
- Never invent a number
Pick one to post first and say why. Order the other two a week
apart.
04. magnet-comments-import
---
name: magnet-comments-import
description: Specify the import the moment the post goes live.
---
Import commenters AND likers from the post URL. Enable future
reactions so it keeps pulling as the post continues performing.
IMPORT EVERYONE. Importing costs nothing. The filtering happens at
the send step, not the import step.
A post that keeps performing for three weeks keeps feeding the list
without anyone touching it, which is the whole reason this niche
scales.
Record the post URL against every imported lead so attribution
survives to the diagnostic.
05. magnet-comments-branch
---
name: magnet-comments-branch
description: The five-node delivery sequence.
---
1 Import from post. Commenters and likers, future reactions on.
2 Condition: lead is 1st level
3 YES branch: send the message with the link
4 NO branch: connection request, then the message on acceptance
5 Reply Comment node, so every public comment gets a public reply
NO WAIT NODE after the connection request. Acceptance is
auto-detected, checking every 24 hours for two weeks with a random
1 to 24 hour delay before the next step.
Node 5 is the one people skip. Public replies keep the post
compounding, which extends the import window.
06. magnet-comments-score
---
name: magnet-comments-score
description: Score the engagers so the send budget goes in order.
---
DEPTH x FIT, each 1 to 3, multiplied. Maximum 9.
DEPTH 1 reaction / 2 short comment / 3 substantive or repeat
FIT 1 adjacent / 2 right role wrong company / 3 exact match
6 to 9 Contact this week
3 to 5 Hold for a second signal
1 to 2 No outreach. Keep in the list, spend no send on it.
At 20 connection requests a day account-wide, a 400-comment post is
five weeks of the entire budget. The ORDER decides the quarter, not
the size of the list.
Sort descending before the sequence starts.
07. magnet-comments-message
---
name: magnet-comments-message
description: The delivery DM.
---
Three lines. Thanks, the link, one question.
THE QUESTION is what turns a delivery into a conversation. Ask
something about their situation, answerable in under ten words.
NEVER pitch in the delivery message. They asked for a resource and
they get a resource. The pitch, if there is one, comes later.
Under 300 characters including the link.
Handle the empty first-name case. Nobody receives "Hi ,".
08. magnet-comments-followup
---
name: magnet-comments-followup
description: The follow-up to people who never opened it.
---
Wait 4 days. One line asking whether it was useful, plus the SINGLE
most useful thing inside it, named specifically.
Naming the specific item is what makes this work. "Did the tracker
help?" beats "did you get a chance to look?".
ONE follow-up only. A second message to someone who ignored the
first is not persistence, and this list is large enough that the
volume compounds badly.
Under 200 characters.
09. magnet-comments-tagging
---
name: magnet-comments-tagging
description: Tag so attribution survives.
---
Tag by POST VARIANT and by KEYWORD, so you can compare which of the
three angles actually pulled.
Rotating keywords is what makes this possible. A shared keyword
across three posts discards the only free attribution signal you
get, and the import is from the post URL anyway so it consolidates
nothing.
ALSO tag anyone who commented on more than one post. Those leads
are warmer than single-post commenters and deserve a different
opening line.
Turn on skip-leads-contacted-by-another-campaign so repeats get
marked Duplicate automatically.
10. magnet-comments-diagnostic
---
name: magnet-comments-diagnostic
description: Weekly.
---
Stop at the first failure.
1 LOW COMMENTS
The hook, not the resource. Try the next variant.
2 COMMENTS FINE, LOW DELIVERY
The branch or the connection cap. Check the 1st-level condition
and the daily split.
3 DELIVERED, NO REPLIES
The delivery message had no question in it.
4 REPLIES, NO CALLS
The resource and the offer are unrelated.
STAGE 4 is the common failure. A magnet that has nothing to do with
what you sell produces a large list you cannot convert, and that
feels like success for about three weeks.
Also report: which variant pulled, and whether multi-post
commenters converted better.
ONE change per week.
This niche runs entirely on Prosp. It imports commenters and likers straight from the post URL including future reactions, runs the five nodes above, and the Reply Comment node answers every public comment. 14 day free trial, no card.
Section 9Recruiters - 2 Approaches
Two approaches. A leads with a hard-to-fill role. B leads with placement volume.
Recruiters are pitched constantly by people who do not understand their market. Showing that you do is the whole game here.
mkdir -p .claude/skills/recruiter-{icp,list,signal,filter,opener-a,opener-b,sequence,objection,proof,closer,diagnostic}
01. recruiter-icp
---
name: recruiter-icp
description: Define which recruiters to target.
---
OUTPUT: agency or in-house, specialism, headcount, roles they fill,
fee model, and whether they are currently placing.
AGENCY recruiters buy tools that win them placements.
IN-HOUSE recruiters buy tools that reduce time-to-hire.
Completely different message. Pick ONE and build the list for it.
Mixing them produces copy that lands on neither.
EXCLUDE: generalists at scale, anyone not currently posting roles,
anyone whose specialism you cannot speak about credibly.
02. recruiter-list
---
name: recruiter-list
description: Build from live hiring activity.
---
SOURCES:
1. Recruiters posting roles in the last 14 days
2. Agencies whose job board shows volume
3. Recruiters commenting about sourcing difficulty
4. In-house talent leads at companies hiring heavily
Capture: roles currently open, posting frequency, specialism, and
any role that has been reposted.
The reposted-role column is the strongest field in this list. Build
it at source rather than deriving it later.
Write to output/prospects.csv with a linkedin_url column.
03. recruiter-signal
---
name: recruiter-signal
description: The recruiter-specific signal.
---
TIER 1 Posted the same role twice / role open 45+ days / publicly
said a role is hard to fill / new talent lead in post
TIER 2 High posting volume / expanding specialism / hiring their
own recruiters
TIER 3 Active, nothing specific
TIER 1's first item is the strongest in this niche. A REPOSTED ROLE
is a public admission of difficulty, and everyone in recruitment
knows what it means.
Record the role title, the days open, and the repost date.
04. recruiter-filter
---
name: recruiter-filter
description: Filter before enriching.
---
Per row: KEEP, DROP or UNSURE with a 12-word reason.
DROP: not currently posting, competitor, specialism you cannot
serve, in-house when you target agency or the reverse.
The last one is the most common error. An in-house talent lead
receiving agency-recruiter copy replies to tell you that you did
not check.
KEEP and UNSURE to filtered.csv, DROP to dropped.csv.
05. recruiter-opener-a
Approach A, the hard-to-fill role.
---
name: recruiter-opener-a
description: The hard-to-fill-role opener.
---
Line 1 Name the specific role and how long it has been open.
Line 2 Why that role type is currently hard, one line, showing you
know the market.
Line 3 One question about their current sourcing approach.
LINE 2 IS THE WHOLE MESSAGE. Showing you understand their market
matters more here than in any other niche, because recruiters are
pitched daily by people who clearly do not.
If you cannot write line 2 credibly for that specialism, do not
contact them. Pick a specialism you can.
Under 300 characters.
06. recruiter-opener-b
Approach B, the volume angle. For agencies placing at scale.
---
name: recruiter-opener-b
description: The volume opener.
---
Line 1 Their placement or posting volume, observed and stated.
Line 2 The bottleneck that volume creates, named specifically.
Line 3 One question about where the time actually goes.
NEVER assume the bottleneck is sourcing. For high-volume agencies
it is usually screening or client communication, and guessing
sourcing marks you as another sourcing-tool pitch.
Ask rather than assert if you are not sure. The question version
converts nearly as well and cannot be wrong.
07. recruiter-sequence
---
name: recruiter-sequence
description: Four touches, shorter delays than any other niche.
---
1 Opener A or B
2 Wait 3 days. A candidate source or approach for that role type,
given free.
3 Wait 4 days. How it works, two lines.
4 Wait 7 days. Close-out.
RECRUITERS RESPOND TO SPEED. Keep delays shorter here than
anywhere else in the library. They live in their inbox.
Touch 2 giving away an actual sourcing approach is what proves you
understand the market rather than claiming to.
Reply stops it. No wait node after a connection request.
08. recruiter-objection
---
name: recruiter-objection
description: The weekly four.
---
"We have our own database"
-> Ask how fresh it is. The answer is the opening, because every
recruiter database decays and they know it.
"Candidates are the problem, not tools"
-> Agree. Ask what makes a candidate hard to reach in their
specialism specifically. That conversation is the sale.
"We are commission-only, no budget"
-> A real constraint. Ask what a placement is worth and whether the
maths works at that level. If it does not, say so and leave.
"We already use [tool]"
-> Ask what it does not do.
09. recruiter-proof
---
name: recruiter-proof
description: Proof for recruiters.
---
TIME TO PLACEMENT and response rate. Never volume of contacts.
A recruiter measures placements. A contact-volume claim reads as
irrelevant at best and as a spam tool at worst.
Match the specialism where possible. Tech recruiting proof does
not land on healthcare recruiting, and using it signals you do not
know the difference.
State the timeframe with every figure.
Check the permission column before naming any agency.
10. recruiter-closer
---
name: recruiter-closer
description: The ask.
---
OFFER to run it on ONE live role before any commitment.
Recruiters buy on demonstrated results faster than any other
audience in this library. A call is a worse ask than a trial.
"One role, this week, and you keep whatever it finds."
Name which role you mean, from the signal. A generic trial offer
is easy to defer; a specific one is not.
Tag the lead so the sequence stops.
11. recruiter-diagnostic
---
name: recruiter-diagnostic
description: Weekly.
---
Stop at the first failure.
1 ACCEPTANCE LOW
Recruiters accept broadly, so this is an off-ICP list rather than
the note. Check the agency versus in-house split.
2 REPLIES LOW
The opener did not show market knowledge. Rewrite line 2.
3 REPLIES FINE, NO TRIALS
The trial ask was too large or not tied to a named role.
4 TRIALS HAPPENING, NO CONVERSION
The results were not attributable. Fix how the trial is measured
before running more of them.
ONE change per week.
Section 10Coaches and Consultants - Pain Point Approach
Approach: pain point. Quote what they said, name the underlying cause, ask if the read is right.
This audience recognises every technique because they teach them. Sympathy and urgency both fail here.
mkdir -p .claude/skills/coach-{icp,list,signal,filter,opener,sequence,objection,proof,closer,diagnostic}
01. coach-icp
---
name: coach-icp
description: Define which coaches and consultants to target.
---
OUTPUT: discipline, delivery model (1:1, group, course), price
point, whether they post, and where their clients currently come
from.
THE SWEET SPOT: delivering well, marketing inconsistently. Visible
from a strong testimonial section sitting next to a thin posting
history.
EXCLUDE: pre-revenue, anyone whose only offer sits below a price
point you can serve, MLM-adjacent, anyone selling what you sell.
The price point check matters. A coach selling a 200 pound course
cannot fund a retainer regardless of how good the fit looks.
02. coach-list
---
name: coach-list
description: Build the list.
---
SOURCES:
1. Coaches posting about client acquisition difficulty
2. Members of relevant professional communities
3. Speakers at industry events
4. Coaches whose booking calendar is visibly open
SOURCE 4 is uncomfortable and effective. A public calendar with
open slots next week is a signal, and it is public information they
chose to publish.
Capture: discipline, price point if visible, last post date, and
any public statement about lead flow.
03. coach-signal
---
name: coach-signal
description: The pain-based signal.
---
TIER 1 Publicly said referrals have slowed / launched something
that did not fill / posting about lead gen / calendar
visibly open
TIER 2 Inconsistent posting / relaunched an offer / joined a
community about client acquisition
TIER 3 Fit only
QUOTE WHAT THEY ACTUALLY SAID, verbatim, with the date and URL.
This niche runs on their own words more than any other. A
paraphrase reads as a template, and a template to someone who
writes sales copy for a living is dead on arrival.
04. coach-filter
---
name: coach-filter
description: Filter before writing.
---
Per row: KEEP, DROP or UNSURE with a 12-word reason.
DROP: pre-revenue, price point too low, pure MLM, anyone selling
the same thing you sell.
The last one appears more often here than anywhere else. Half of
this market sells client acquisition to the other half.
KEEP and UNSURE to filtered.csv, DROP to dropped.csv.
05. coach-opener
---
name: coach-opener
description: The pain-point opener.
---
Line 1 Quote what they said, verbatim, in quotation marks.
Line 2 Name the UNDERLYING CAUSE, not the symptom. Referrals
slowing is rarely a referral problem.
Line 3 One question about whether that read is right.
NEVER sympathise. "That sounds tough" is the fastest way to be
ignored by someone who coaches for a living.
BE SPECIFIC ENOUGH TO BE WRONG. A read they disagree with gets a
reply. A vague one gets nothing. Vagueness reads as templated and
this audience spots it instantly.
Under 300 characters.
06. coach-sequence
---
name: coach-sequence
description: Four touches.
---
1 Opener. Their words plus your read.
2 Wait 3 days. ONE thing they could change this week, free.
3 Wait 5 days. The pattern across others like them, one line.
4 Wait 7 days. Close-out.
This audience recognises every technique, so the sequence has to be
SUBSTANTIVELY USEFUL at touch 2 or it dies there. A generic tip is
worse than no touch 2.
Touch 3 naming the pattern works because it positions you as
someone who sees many cases, which is what they sell too.
Reply stops it. No wait node after a connection request.
07. coach-objection
---
name: coach-objection
description: The weekly four.
---
"I get clients through referrals"
-> Agree it is the best source. Ask what happens in a quiet quarter.
"I do not want to be salesy"
-> The real objection. Agree with it, then name what you would do
INSTEAD of what they are imagining.
"I tried lead gen and it attracted the wrong people"
-> Ask who showed up. The answer is a positioning problem, not a
lead gen one, and saying so is the differentiator.
"I coach this myself"
-> Common and awkward. Ask whether they apply it to their own
business, honestly. Usually not, and they will say so.
08. coach-proof
---
name: coach-proof
description: Proof for coaches.
---
A NAMED CLIENT with a specific before and after beats any number in
isolation, because this audience sells transformation and
recognises the format immediately.
NEVER use income claims. Never use a lifestyle claim. Both are the
markers of the people this audience actively dislikes.
If the only proof is a testimonial with no specifics, use the
mechanism instead and say you would rather show than tell.
Check the permission column before naming anyone.
09. coach-closer
---
name: coach-closer
description: The ask.
---
OFFER a conversation framed around THEIR situation, not your
service.
"20 minutes on what is actually blocking it, whether or not we work
together."
This audience buys the person. The call is the product demo, so
make the call worth having on its own terms.
NEVER use urgency or scarcity with coaches. They teach it, they
spot it, and it ends the conversation in one message.
Tag the lead so the sequence stops.
10. coach-diagnostic
---
name: coach-diagnostic
description: Weekly.
---
Stop at the first failure.
1 ACCEPTANCE LOW
The connection note was sympathetic rather than specific.
2 REPLIES LOW
You quoted the symptom, not their actual words. Go back to
verbatim.
3 REPLIES FINE, CALLS LOW
The call sounded like a sales call. Reframe it around their
situation.
4 CALLS FINE, NO CLOSE
Price mismatch. Check the ICP price-point band rather than the
pitch.
ONE change per week.
Section 11Website Builders - WordPress and Webflow Approach
Approach: the observable site problem. One issue in message one, the full list on reply.
The sweet spot is a site built three or more years ago that nobody maintains any more. Visible from the footer and the source.
mkdir -p .claude/skills/website-builder-{icp,list,signal,filter,opener,sequence,objection,proof,closer,diagnostic}
01. website-builder-icp
---
name: website-builder-icp
description: Define the target.
---
OUTPUT: platform, business type, site age, whether they have an
in-house developer, and what the site is for (lead gen, ecom,
brochure).
THE SWEET SPOT: a site built 3+ years ago, on a platform nobody is
maintaining. Visible from the footer credit, the theme, and the
source.
WHAT THE SITE IS FOR decides everything downstream. A broken form
on a lead gen site is urgent. The same form on a brochure site is
not, and pitching it as urgent marks you as someone who did not
think about their business.
EXCLUDE: in-house dev team, site built in the last 12 months,
agencies who build sites themselves.
02. website-builder-list
---
name: website-builder-list
description: Build from platform signals.
---
SOURCES:
1. Sites on outdated themes or plugin versions
2. Businesses whose site is visibly not mobile-optimised
3. Recently funded companies with a thin site
4. Companies hiring a marketer but with no usable site to support
them
SOURCE 4 is the strongest and the least used. Hiring a marketer
with a broken site is a budget that is about to be wasted, and the
person being hired will say so in week two.
Capture: platform, theme, approximate build date, and the single
worst visible issue with its evidence.
03. website-builder-signal
---
name: website-builder-signal
description: Find the visible site problem.
---
TIER 1 Mobile layout broken / load time visibly poor / no SSL /
forms broken / recently funded with a thin site
TIER 2 Outdated design / no schema / poor image handling / thin
content on money pages
TIER 3 Works, looks dated
EVERY finding needs a screenshot or a URL. This niche lives on
evidence, and a finding they cannot reproduce ends it.
TEST THE FORM YOURSELF before claiming it is broken. A wrong claim
about a working form is the single most damaging error available
in this niche.
04. website-builder-filter
---
name: website-builder-filter
description: Filter before any audit work.
---
Per row: KEEP, DROP or UNSURE with a 12-word reason.
DROP: in-house dev team, site under 12 months old, agency that
builds sites, business too small for a rebuild budget.
The budget check matters. A rebuild is a considered purchase, and a
business that cannot fund one is a long conversation with no end.
KEEP and UNSURE to filtered.csv, DROP to dropped.csv.
05. website-builder-opener
---
name: website-builder-opener
description: The observable-problem opener.
---
Line 1 The single worst issue, specific, with what it costs them.
"Your contact form has been returning an error on mobile"
is an opener. "Your site could be better" is not.
Line 2 How you know, briefly. Credibility, not a lecture.
Line 3 One question: whether they know.
If the issue is genuinely broken and costing them enquiries, say so
plainly. That message gets replies regardless of any interest in a
rebuild, because it is useful on its own.
NEVER open with a full audit. One issue, then the offer.
Under 300 characters.
06. website-builder-sequence
---
name: website-builder-sequence
description: Four touches.
---
1 Opener, the single worst issue
2 On reply, the full list. Five issues, one page, ranked by what
they cost.
3 Wait 3 days. What the first fix would involve, roughly.
4 Wait 6 days. Close-out.
IF NO REPLY to touch 1, send the list anyway at touch 2. It
converts better than asking permission to send it.
Rank by cost to them, not by effort for you. A ranking that
suspiciously matches your service order gets noticed.
Reply stops it. No wait node after a connection request.
07. website-builder-objection
---
name: website-builder-objection
description: The weekly four.
---
"We are planning a rebuild anyway"
-> Ask when and who with. Often neither is decided, and that is the
opening.
"Our nephew built it"
-> Handle carefully. NEVER criticise the builder. Talk about what
the business needs now rather than what was wrong then.
"It is fine for what we need"
-> Ask what it produced last month. If the answer is nothing, that
is the conversation.
"Too expensive"
-> Ask what an enquiry is worth to them, and work from there.
08. website-builder-proof
---
name: website-builder-proof
description: Proof.
---
BEFORE AND AFTER screenshots plus ONE metric: load time, enquiries,
or conversion rate, with the timeframe.
Match the business type. A SaaS rebuild proves nothing to a dental
practice, and showing it suggests you do not see the difference.
NEVER claim a ranking improvement from a rebuild alone. It is the
claim most likely to be checked and most likely to be wrong.
Check the permission column before using any screenshot.
09. website-builder-closer
---
name: website-builder-closer
description: The ask.
---
OFFER to walk through the list on a call, with the fix order and
rough effort, whether or not they use you.
This converts because the list is genuinely useful and they know a
quote is coming anyway. Pretending otherwise insults them.
NAME THE PRICE BAND in advance. Rebuild conversations die on
unspoken budget mismatch more than on anything else, and they die
late, after a proposal.
Tag the lead so the sequence stops.
10. website-builder-diagnostic
---
name: website-builder-diagnostic
description: Weekly.
---
Stop at the first failure.
1 ACCEPTANCE LOW
Off-ICP list, most likely businesses too small for a rebuild.
2 REPLIES LOW
The issue in line one was generic. Make it specific and testable.
3 REPLIES FINE, NO CALLS
The list read as a sales document rather than a diagnosis.
4 CALLS FINE, NO CLOSE
Price band was never stated up front.
Stage 4 is the expensive one. Every call that dies on budget was a
filter failure two weeks earlier.
ONE change per week.
Section 12SEO Services - Keyword Callout Approach
Approach: the keyword callout. Name the term, their position, and who is above them.
This is the most pitched audience in the library. They get twenty SEO emails a day, so the opener has to prove within one line that this one is different.
mkdir -p .claude/skills/seo-services-{icp,list,signal,filter,opener,sequence,objection,proof,closer,diagnostic}
01. seo-services-icp
---
name: seo-services-icp
description: Define the target.
---
OUTPUT: business type, whether organic actually matters in their
category, current visibility band, whether they have an SEO agency,
and who owns marketing.
THE SWEET SPOT: ranking on page two for terms that matter. Close
enough to care, far enough to need help.
Page one across the board means no problem to solve. Page five
means a rebuild conversation, not an SEO one.
EXCLUDE: already page one, no organic intent in the category,
existing SEO agency credited on the site.
02. seo-services-list
---
name: seo-services-list
description: Build from ranking data.
---
SOURCES:
1. Sites ranking 8 to 20 for commercial terms in your categories
2. Sites that lost positions in the last 90 days
3. Recently funded companies with thin organic presence
4. Companies hiring a content or SEO person
SOURCE 2 is the strongest. A recent drop is FELT, and it is dated,
which makes the opener specific and timely at once.
Capture: the term, current position, previous position, and the
date of the change.
You cannot see rankings without a connected data source. Use one or
state what you need. Never estimate a position.
03. seo-services-signal
---
name: seo-services-signal
description: The keyword callout signal.
---
TIER 1 Dropped positions on a commercial term in 90 days /
competitor overtook them on a named term / hiring for SEO /
launched a new section with no coverage
TIER 2 Stuck on page two for a valuable term / thin content on a
money page / a technical issue visibly blocking
TIER 3 Fit only
Record: the term, the position, the competitor above them, and the
date. All four appear in the opener.
COMMERCIAL INTENT is the filter on the term itself. A drop on an
informational term is not a business problem and pitching it as one
marks you out immediately.
04. seo-services-filter
---
name: seo-services-filter
description: Filter before any analysis work.
---
Per row: KEEP, DROP or UNSURE with a 12-word reason.
DROP: existing agency credited, already page one, no commercial
intent in the category, too small for the retainer band.
The existing-agency check is the one to enforce hardest. Pitching
over an incumbent agency in this niche produces the most hostile
replies of any niche in the library.
KEEP and UNSURE to filtered.csv, DROP to dropped.csv.
05. seo-services-opener
---
name: seo-services-opener
description: The keyword callout.
---
Line 1 The specific term, their position, and who is above them.
Named, with the date.
Line 2 The ONE reason, observable from the page. Not "your SEO
needs work".
Line 3 One question about whether that term matters to them.
THE QUESTION IS LOAD-BEARING. Sometimes the term does not matter
and the honest answer saves you both time. Asking it also
distinguishes you from every automated pitch that assumes.
NEVER claim you can get them to position one. Never quote a
timeframe for a ranking.
Under 300 characters.
BANNED: "I noticed your site isn't ranking", "I did a quick audit
of your site", "I can get you to page one".
06. seo-services-sequence
---
name: seo-services-sequence
description: Four touches.
---
1 Opener, the named term and position
2 On reply, three more terms and the pattern across them.
3 Wait 3 days. The ONE fix you would make first, specifically.
4 Wait 6 days. Close-out.
TOUCH 3 giving away the actual first fix is what separates this
from every other SEO pitch they receive weekly. A vague "we'd start
with technical" is not a fix.
The fix must be something they could hand to a developer today
without you.
Reply stops it. No wait node after a connection request.
07. seo-services-objection
---
name: seo-services-objection
description: The weekly five. The most pitched audience here.
---
"We get 20 SEO emails a day"
-> Acknowledge it IMMEDIATELY. The named term and position is why
this one is different. Say that, plainly.
"SEO takes too long"
-> Agree. Name the realistic timeframe rather than arguing with it.
"We tried an agency, no results"
-> Ask what the reporting looked like. It is almost always that.
"We are focused on paid"
-> Ask the blended CAC. If paid is working, say so and leave.
"Can you guarantee position one"
-> No. Say no plainly. The answer wins more deals than it loses,
because everyone else says something evasive.
08. seo-services-proof
---
name: seo-services-proof
description: Proof for a sceptical, over-pitched buyer.
---
TRAFFIC AND REVENUE, with the timeframe and the STARTING POINT.
A percentage with no absolute is the tell of every bad SEO pitch
and this audience knows it. "Up 300%" from 40 visits is a sentence
they have heard before.
Match the category. Match the site size.
NEVER use a ranking screenshot with no date. Never a graph with no
axis labels.
If you cannot evidence it, use the diagnosis instead. A correct
read of their problem is proof of competence and costs nothing.
09. seo-services-closer
---
name: seo-services-closer
description: The ask.
---
OFFER a 20-minute walkthrough of the terms and the first three
fixes, whether or not they engage.
NAME THE RETAINER BAND in the same message. Unspoken budget is what
kills SEO deals at proposal stage, weeks later.
NEVER offer a free full audit here. Everyone does, so it signals
nothing and costs you a day. The named term in the opener already
did that work.
Tag the lead so the sequence stops.
10. seo-services-diagnostic
---
name: seo-services-diagnostic
description: Weekly.
---
Stop at the first failure.
1 ACCEPTANCE LOW
The connection note sounded like every other SEO pitch. This is
the hardest stage in this niche and where most campaigns die.
2 REPLIES LOW
The term named was not commercially relevant to them.
3 REPLIES FINE, CALLS LOW
Touch 3 did not give away a real, actionable fix.
4 CALLS FINE, NO CLOSE
Retainer band was never stated.
Stage 1 is why the opener must carry a real position and a real
competitor name. Everything generic is filtered before it is read.
ONE change per week.
110 skills write the messages. Prosp sends them 💜