Done-for-you buildA specialist builds your first campaign · 6 build slots left · closes in Claim a build slot

The GTM Engineer + Agency LinkedIn Playbook

The ten-module LinkedIn system, rewritten for people running it on someone else's account.

Try Prosp Free3 working days to live · 6 slots left this week
5/5 rated on Capterra·Used by 800+ agencies and sales teams
Playbook13 sections

The ten-module LinkedIn system, rewritten for people running it on someone else's account.

Same modules. What changes is that the ICP comes from their closed-won rather than yours, the voice comes from three of their real posts, and every client account carries its own send ceiling that cannot be aggregated with anyone else's.

Inside: how to define an ICP from deal data, the profile rewrite that has to happen before any sending, viral post templates, the best DM on LinkedIn, Sales Navigator, two competitor scraping plays, the 500+ comment lead magnet strategy, 10+ copy-paste DM templates, and the sell-by-chat framework.

Plus the 24 Claude skills that run the modules, as a public repo you clone in three commands, and the page most of these guides skip: what breaks when you run it across eight accounts instead of one.

AI Driven, Personalized Outreach on LinkedIn: Prosp 💜

Section 1

10+ Copy/Paste DM Templates (15%+ reply rate)

Pick one per client. Never reuse across two.

Two accounts you run, in the same niche, sending near-identical messages to an overlapping audience is the fastest way to lose both.

Before you use any template

Three things get replaced, every time, or the template is worse than writing from scratch.

1. The proof. Templates ship with generic claims. A generic claim under a client's name is theirs to defend when someone asks for the source. Swap in their approved numbers, with the permission column checked.

2. The objections. A template answering objections nobody raised produces confident, irrelevant replies. Ask the client for the five they actually hear weekly and write those in.

3. The signal slot. Every template has a placeholder for why you are messaging. If you fill it with a fit attribute rather than a dated trigger, the template is doing nothing the recipient cannot see through.

Matching the template to the buyer

The template that works depends on who signs, not on what you are selling.

FOUNDER-LED, under 20 people
Outcome and speed. They have no process to protect. Price is the
only real objection and they raise it in message two.

FUNCTIONAL HEAD
They have budget but must defend the choice. Give them something
forwardable, because that document does the selling in rooms you
are not in.

OPS OR REVOPS
They buy process, not outcomes. Lead with how it fits what they
already run.

PROCUREMENT-GATED
Nothing happens without a budget line. If the client has no
security posture, disqualify early rather than forecasting it.

RESELLER OR AGENCY
Lead with the margin maths, not the features.

Establish which one before picking a template. Most of the reply-rate difference between two campaigns is this, not the wording.

The rules that hold across every template

Under 300 characters
One ask, answerable in under ten words
Line one references something dated and checkable
Never mention the product in message one
Every touch a different angle. Never "just following up".
Four touches maximum. After that the answer is no.
Reply stops the sequence, always.
No em dashes

Only the opening line should vary across a list. Keep the ask identical so you can tell the client what failed rather than guessing between five variables.

Any voice note pairs with a written message. Never sent alone.

Before anything sends

Turn on skip-leads-contacted-by-another-campaign. Two of your campaigns reaching the same person is visible to them and to the client.

Deduplicate across every client you run, not just within the list. Two clients in adjacent niches will share prospects.

Check the ceiling on that specific account. Twenty connection requests a day, account-wide, whatever else is running. A new client account starts at ten.

Preview the merge output against ten real contacts. That catches the prompt that reads fine on lead one and produces something odd on lead five.

On the reply rate in the title

Any figure attached to a template is someone else's, measured on someone else's list, in a different market, at a different time.

Record your own within two weeks. Sent, accepted, replied, positive. Per client, per template.

That number is the one you take to a client conversation, and it is the only one you can defend. A borrowed benchmark in a client report is a question you cannot answer.

If your figure is lower than the template claims, that is not a failure. It is a list problem or a signal problem, and the diagnostic tells you which.

Prosp has the skip-leads-contacted-by-another-campaign setting at campaign level, which handles the deduplication across everything running on that account. Preview runs sample outputs against real contacts before anything sends.

Builder defaults sit above the recommended limits, so lower them rather than accepting them. Set the cap per campaign, not per intention.

Section 2

Running This Across Clients: What Changes, and the Ceiling

The ten modules that follow are the system as it runs on one account.

This page is what changes when you run it across a book of clients.

Read it first. Four of the ten behave differently at that scale.

What actually changes

Module Solo Across a book of clients
ICP Once Per client, from THEIR closed-won. Never yours.
Profile Yours Theirs. Rewrite before any sending on that account.
Post templates Your voice Their voice, from three of their real posts
The DM Your signal Same rules, different proof per client
Sales Nav One search One saved search per client, never merged
Competitor scraping Your competitors Theirs. Yours are irrelevant to their buyers.
Comment scraping Any relevant post Posts their ICP engages with
Lead magnet Your resource Built for their audience, sent from their account
DM templates Pick one Pick per client. Never reuse across two.
Sell-by-chat You reply You draft, they approve, or you send under their name with written permission

The two rows that catch people out are competitor scraping and DM templates.

Running your own competitor list against a client's ICP produces a list of people who buy what you sell, not what they sell.

And a template reused across two client accounts in the same niche means two profiles sending near-identical messages to an overlapping audience.

The ceiling, per account

Action Free Premium / Sales Nav
Connection requests 20/day, 100/week 30 to 50/day
Direct messages ~100/week ~150/week
Profile views 80/day 150/day
Comments 60/day 60/day
InMail n/a 50/month

Account-wide, not per campaign. Three campaigns at 20 each means one account attempting 60 a day. That is how accounts get restricted.

Every client account has its own ceiling. Do not aggregate. Eight clients is eight separate budgets that each need splitting, not 160 sends from one place.

A brand new client account starts at 10 a day, not 20. A profile with no history suddenly sending at full rate is the clearest possible pattern. Build to 20 over the first fortnight.

Request limits and message limits are separate buckets, so both run at full allocation at once. When capped, only connection requests pause, and it resets in 2 to 3 days.

The file structure

clients/
├── acme/
│   ├── client-context.md    the engagement, ICP, proof, ceiling
│   ├── voice.md            three of THEIR posts, pasted in full
│   ├── icp.md              derived from their closed-won
│   ├── prospects.csv
│   ├── dropped.csv         so the filter is auditable
│   └── posts/
└── globex/
    └── ...

Never share a voice.md between clients. Two accounts that sound like the same person is the fastest way to lose both, and it is obvious to anyone who follows both.

Keep dropped.csv. When a client asks why you never contacted a company they like, that file is the answer.

The field people leave blank is "other campaigns running on this account". Leave it empty and you will propose a volume that restricts their account.

The order to run the modules in

Per client, not all at once.

Week 1, day 1. Module 1, the ICP, from their closed-won deals rather than a kickoff workshop. Then module 2, the profile, because every connection request and every comment drives a profile visit and a weak headline loses the accept there rather than in the message.

Week 1 to 2. Commenting only. No posting, no outreach. A post published into a feed where nobody recognises the client's name reaches only the followers you are trying to grow. Two weeks of substantive comments on large posts in their space changes that, and it costs nothing but time.

Week 3. Module 3, the post templates. Three a week maximum, one a day maximum.

Week 3 onward. Modules 4 to 9. The DM, Sales Navigator, the two scraping plays, the lead magnet, the templates.

Continuously from the first reply. Module 10, sell-by-chat.

Running outreach in week one works. It just works worse, and the difference is two weeks of free commenting you did not do.

The weekly loop, per client

MON  Diagnostic. One change, not three.
MON  Commenting session, 25 minutes.

TUE  Post goes out. Commenting session.

WED  New list built, filtered, graded.
WED  Below B, rebuild. Above B, find the signals.

THU  Second post. Top up the campaign inside the split.

FRI  Reply pass across the inbox.
FRI  Third post if the week has earned it.

DAILY  Five minutes on high-intent signals, before anything else.

One change per week per client. Change three things and a lift tells you nothing about which one worked, which is the difference between a retainer you can defend and one you cannot.

Running eight accounts without eight logins

The modules produce lists, copy and sequences. None of them sends anything, and that is deliberate. A browser session driving a client's account from your machine produces activity from an unusual environment at machine pace, and the account is not yours to risk.

Prosp is the send layer. One account per client profile, each created in its own browser session because cookies conflict, all managed from one workspace. A free dedicated residential proxy per connected account, so the activity looks like it comes from them.

White-label with your own domain plus a sub-workspace per client, so they log into your brand rather than someone else's.

The unified inbox spans every connected account with filters for campaign, replied and unread, which is what makes the Friday reply pass one task rather than eight.

Pricing scales with the book: $79.99 per account at 1 to 5, $59.99 at 6 to 30, $39.99 at 31 plus, with roughly 23% off annually.

Section 3

How to Define Your ICP (important)

Build it from their closed-won deals, not from the kickoff call.

The output that earns the engagement is the gap between who they say they sell to and who actually signed.

The pull

Ask for a CRM export of closed-won, last 12 months. If they cannot produce one, that is itself the finding, and the first month of the engagement is building the tracking rather than the pipeline.

Per deal, you need seven fields:

company size
industry
buyer job title, as written on the contract
deal size
days from first touch to signature
the trigger that started it
how they found you

Field six is the one nobody records and the one that decides your targeting. Ask them to reconstruct it deal by deal on a call rather than sending a form.

The derivation

Read the closed-won export.

OUTPUT to clients/[name]/icp.md:

1. Three attributes correlating with fast closes
2. Three correlating with long or lost deals
3. The exact job titles that actually signed, verbatim
4. The size band with the highest win rate
5. A searchable filter string built from point 3
6. The gap between the stated ICP and the actual one
7. Who this is explicitly NOT for

FAIL CLOSED with fewer than 10 closed-won deals. Report the count
and say the answer is not in the data yet. Do not derive a pattern
from three customers and present it as strategy.

FAIL CLOSED if the export has no job titles. Name the missing field
rather than inferring it from company size.

Point 6 is the deliverable. Telling a client in week one that their real buyer is a different job title from the one on their website changes the whole engagement, and it is the thing they cannot get from a workshop.

Running it across a book

One ICP file per client, in clients/[name]/icp.md. Never a shared one, and never yours.

The mistake that costs a quarter: using your own ICP as a starting point because it is faster. Your buyers and their buyers are different populations, and the overlap is usually smaller than it looks.

Re-derive quarterly. Run it again against the last quarter's closed-won. If the winning job title has moved, everything downstream needs rebuilding, and finding that out in month six is cheaper than month twelve.

Record who signed, not who you first contacted. The two are different in most deals with more than one person involved, and targeting the first-contact title is how a pipeline fills with people who cannot buy.

The check nobody runs

Before building any list, do the send maths.

How many companies match the filter string?
At 20 connection requests a day, how many weeks to work the list?

Under four weeks of sending = the ICP is too narrow for a campaign.
It is a list of people to contact by hand.

Over six months of sending = the ICP is too broad. You will never
reach the bottom, so the ordering matters more than the size.

Tell the client the number. A defined ICP that produces sixty prospects is a positioning conversation, not a targeting one, and it is better had in week one.

Section 4

Optimise your profile

Day one, before any sending on that account.

Every connection request and every comment drives a profile visit. A weak headline loses the accept there rather than in the message, and no amount of sequence tuning fixes it afterwards.

The audit, nine checks

Each marked PASS, WEAK or FAIL with one line of evidence. Send the audit before the rewrite. The audit is what justifies the rewrite.

1  PROOF
   Is there a number anywhere above the fold?

2  EMPTY ADJECTIVES
   Count the words that could describe anyone. "Passionate",
   "results-driven", "strategic". Each one is a wasted line.

3  CLARITY
   Could a stranger say what this person does in one sentence
   after five seconds?

4  GAPS
   Unexplained employment gaps, or a current role with no
   description.

5  CALL TO ACTION
   Is there one? Is it in the About, the Featured, or nowhere?

6  VISUAL CONSISTENCY
   Does the banner say the same thing as the headline?

7  MOBILE READABILITY
   The headline truncates around 60 characters on mobile, which is
   where most profile visits happen. What survives the cut?

8  SEARCHABILITY
   Are the terms their buyer searches actually on the page?

9  CONTACT HYGIENE
   Dead links, an old company, a personal email nobody monitors.

The rewrite

Headline. Three options, each character-counted, each flagged for where it truncates on mobile. Never job-title-at-company. The format that works: who they help, what changes, one specific.

About. Four movements, first person.

1  The hook. One line, the buyer's problem not the person's history.
2  The problem they solve, in the buyer's words.
3  Proof. A number the client approved, with a timeframe.
4  The CTA. One action.

Keywords in the first two lines, because that is what shows before
the See More cut.

Featured. Mandatory, not optional. Pin the thing the buyer needs before a call: a case study, a resource, a booking link.

Experience. Action plus method plus measurable outcome, per role. Not responsibilities.

Skills. Cut generic filler, merge into 10 to 15 clusters matching the search terms from check 8.

Running it on someone else's profile

Critique the positioning, never the person. Never comment on appearance, age, or anything unrelated to the work. You are auditing a business asset they own, and the line matters.

Never invent a metric to fill a gap. Ask them for one or leave it out. A fabricated number in a client's About section is theirs to defend when someone asks for the source.

Get the rewrite approved in writing before it goes live. A profile is the most personal asset in the engagement, and a founder who finds their About rewritten without sign-off remembers it.

Do it before the campaign, not alongside it. A week of sending against an unoptimised profile is a week of acceptance rate you cannot get back.

What to measure

Record the acceptance rate for the two weeks before the rewrite and the two weeks after, on the same list quality.

That figure is the cleanest attribution available in the whole engagement, because nothing else changed. It is also the number that justifies the audit line on the next invoice.

If acceptance sits below 15% after the rewrite, the problem is the list or the connection note, not the profile. Stop optimising it further.

Section 5

Viral Post Templates

Templates give you the structure. The voice has to come from them.

The only reliable source is three of their own posts that performed, pasted in full. Three real posts demonstrate a voice. Three adjectives describe one, and you cannot write from a description.

Before any template

Build clients/[name]/voice.md on the kickoff call. It takes twenty minutes and it decides whether every draft afterwards sounds like them or like software.

# Voice: [CLIENT]

## Three adjectives

## Two phrases they would never say

## Three posts that performed, pasted IN FULL
Not links. Not summaries. The full text.

## What annoys them
The strongest content comes from here. Ask on the call and write
down the actual words they use.

## Approved proof
Numbers they can stand behind publicly, each with a timeframe.

## Banned
Claims they cannot evidence.
Numbers nobody approved.

The "what annoys them" field is the one people skip. A founder complaining about something in their industry for ninety seconds has just given you four posts.

The six post structures

Rotate. Never two of the same shape in a week.

1  THE CONTRADICTION
   "Everyone says X. We stopped and it improved."

2  THE NUMBER
   A specific figure, with no context until line three.

3  THE ADMISSION
   Something that costs them to say. Highest reply rate of the six.

4  THE NARROW CLAIM
   So specific it is checkable.

5  THE OPEN QUESTION
   No obvious answer. Never rhetorical.

6  THE MID-SCENE OPEN
   Start three sentences in.

Hook test. Delete the body. If the hook still feels complete, it is a summary, not a hook.

Write the hook last. A hook written first constrains the body to fit it, which is why so many posts have a great line one and nothing underneath.

The humanising pass

Run this on every draft before the client sees it. A client who spots AI phrasing stops trusting the whole deliverable, and you do not get that back.

[ ] Numbers not all round. 85 to 11, not 85 to 9.
[ ] No perfect parallelism in lists. One element differs in length
    or form.
[ ] One genuine break in the flow of thought, not an inserted
    "anyway".
[ ] Case studies carry one vague detail beside one hyper-specific
    one. Real memory is uneven.
[ ] Not every post resolves. One a week ends open.
[ ] No em dashes anywhere.
[ ] One idea per line, three lines maximum per paragraph.

Final test: could a competent person have written this in five minutes? If it reads like it took a committee, that is what it reads as.

The cadence, and why it is lower than they want

Three a week maximum. One a day maximum. Same-day multiples suppress each other, so the second post costs you the first.

Three pillars, not five. A pillar is a repeatable topic, not a theme. "Cold email" is a topic. "Growth" is a theme and produces nothing. If the client cannot talk about a pillar for twenty minutes without notes, it is not theirs.

A missed day beats a thin post. Publishing to hit a number trains the audience to skim.

Set this expectation in week one. Clients ask for daily because they have been told volume wins, and walking it back in month two reads as you under-delivering rather than as the right call.

What goes in the report

Not impressions. Never impressions as a headline number.

Which pillar produced conversations, not reach
Which post shape pulled, by structure number
Comments from ICP-matching profiles, as a count not a percentage
Profile visits in the 48 hours after each post
Which post preceded each inbound enquiry

The last line is the one clients actually care about and the one nobody tracks. Log the date of every inbound and match it against the calendar.

Section 6

The BEST DM on LinkedIn

Three lines, under 300 characters, one ask.

What makes it work is not the structure. It is that line one references something dated and verifiable that the prospect can check.

The structure

Line 1  The signal. Dated, specific, checkable.
Line 2  The inference you drew from it.
Line 3  The question.

Under 300 characters. Longer reads as a template regardless of how good it is.

One ask, answerable in under ten words. Two questions gets you an answer to the easier one. Three gets you nothing, because now it is work.

Never mention the product in message one. The message is for the reply, not the sale.

No compliments. No "hope this finds you well". No "quick question". No em dashes.

What counts as a signal

This is the part that separates a good DM from a mail merge with a first name in it.

TIER 1, budget is already moving
- Hiring for the role the client's offer supports
- Raised in the last 90 days
- New leader in post, last 60 days
- Publicly named the exact problem, last 30 days

TIER 2, the problem is visible
- Their site or content shows the gap
- Commented on a competitor's post
- Expanding into a new market

TIER 3, fit only, no observable trigger

Record the date and the URL when you find it. It goes in the message and they will check it.

"Works at a SaaS company" is fit, not a signal. Using it as one is the clearest tell that a message was generated rather than written, and it is the single most common failure in cold outreach.

No signal means write NONE. Then use the tier 3 version, which leads with a segment-level pattern and claims no personalisation you cannot back.

Proof, when it is not your proof

Never use your own case studies in a client's DM. You are writing as them.

Pull from their approved proof list, with a permission column:

YES          name them
ANONYMISED   describe them by type and size
NO           pick the next row

Use the number exactly as written. Never round it, annualise it, or convert it into a percentage to make it look better.

If no row is a reasonable match, write the version with no results claim. A stretched comparable is worse than none, because the prospect is the one who spots it.

The banned openers

These are burnt. Every one of them appears in a hundred messages a week in your client's inbox.

"I came across your profile"
"I help [vertical] with [service]"
"Are you open to a quick chat"
"Quick question for you"
"I hope this message finds you well"
"I'll keep this short"
"Just reaching out because"

The second one is the most-sent opener in B2B and the worst performing. It tells them you have a list, not that you looked at them.

Before it sends

Seven checks. Five must pass, or rewrite rather than send.

[ ] Under 300 characters
[ ] One question only
[ ] References something specific and dated, not a category
[ ] No banned opener
[ ] No claim absent from the client's approved proof
[ ] Register matches their voice file
[ ] No em dashes

Then check the ceiling. Twenty connection requests a day on that profile, account-wide, whatever else is running on it. A message that is perfect and sends at 60 a day gets the account restricted, which costs more than a bad message.

Section 7

Sales Nav Tutorial

One saved search per client, named after them, never merged.

Two clients in the same niche will overlap, and the same person receiving near-identical messages from two profiles you run is a bad look in a small industry.

Build the search from the right titles

Not the titles the client asked you to target. The titles that actually signed, from the ICP module.

Those are frequently different, and the gap is the whole point of doing the ICP work first.

FILTERS THAT EARN THEIR PLACE
Job title        from closed-won, verbatim, plus known variants
Headcount        the band with the highest win rate, not "SMB"
Geography        where they can actually serve
Seniority        only if the title filter is too broad alone

FILTERS THAT WASTE A SLOT
Industry         too coarse. Two companies in "Software" have
                 nothing in common.
Years in role    correlates with nothing in most datasets
Company growth   a proxy for a signal you should find directly

Title conventions differ by market. A Commercial Director in the UK and a VP Sales in the US are frequently the same seat. A search built for one returns almost nothing in the other, and that is a common reason a list comes back thin.

Whose seat is it

This needs settling in the contract, not at offboarding.

If it is their seat, you are working inside their account. Everything you save is visible to them, which is fine, and it stays with them when the engagement ends.

If it is your seat, the saved searches and lead lists do not transfer. Say so up front. A client who assumes the list is theirs and finds out otherwise in month twelve remembers it, and they tell people.

Either way, export the list. A saved search is a query, not an asset. The CSV in clients/[name]/prospects.csv is the thing that survives a seat change, a plan downgrade, or a filter LinkedIn quietly removes.

Filter before you enrich

The expensive mistake is enriching a thousand rows to discover six hundred were never going to buy. Enrichment is priced per lookup.

ORDER
1  Export raw from the search
2  Filter: KEEP, DROP or UNSURE, 12-word reason per row
3  Grade the survivors A to F
4  Only then enrich what is left

DROP: fails the title or size band, competitor, too small for the
client's price band, another agency when they sell to in-house.

Keep dropped.csv. When the client asks why you never contacted a
company they like, that file is the answer.

Expect a 40 to 60% drop rate. Below 40% usually means the search was too narrow rather than the list being unusually good.

The eight-dimension grade

Nothing enters a client campaign below a B.

1  ICP fit
2  Title accuracy, against the signer titles
3  Affordability against their price band
4  Data completeness
5  Deduplication, within the list and against other clients
6  Recency of activity
7  Reachability, how many are already 1st degree
8  Signal strength, how many carry a dated trigger

A 9.0+   B 7.5+   C 6.0+   D 4.5+   F below

Dimension 5 matters more for an agency than anyone else. Two clients in the same niche will share prospects. Deduplicate across every active campaign you run, not just within the list.

Dimension 8 predicts reply rate better than any other. A B-grade list where most rows carry a tier 1 signal beats an A-grade list with none.

The CSV export is what Prosp imports. It needs headers in row one and a linkedin_url column, and the AI column mapping handles the rest. Any extra column becomes a custom variable you can reference in the message prompts, so the signal you recorded travels with the lead into the copy.

One Prosp account maps to one LinkedIn profile, so create each client account in its own browser session, then invite them all into a single workspace.

Section 8

Scrape Competitor Company Followers and Send Personalized DMs

Their competitors, not yours.

Running your own competitor list against a client's ICP produces a list of people who buy what you sell, which is a different population entirely.

Picking the competitor

Ask the client to name three, then check the overlap yourself.

Founders name the competitor they dislike, not the one they lose to. Those are rarely the same company, and the one they lose to is the one whose followers are worth harvesting.

Score each candidate before harvesting:

AUDIENCE OVERLAP   Would their follower plausibly buy from our client?
SIZE PARITY        A competitor ten times the size has followers who
                   mostly do not fit our client's price band.
RECENCY            Are they still posting? A dormant page has a
                   dormant follower list.
HONEST DIFFERENCE  Where is the competitor genuinely better? Write
                   it down. It comes up in a reply within a week.

Harvest the top two only. A follower count is not an addressable market.

The harvest

Company page followers are the weakest of the available sources, and worth knowing that before you start.

STRONGEST TO WEAKEST
1  Commenters on their posts, substantive comments
2  Likers on posts about the problem both solve
3  Attendees of their events or webinars
4  Company page followers

A follower expressed interest once, possibly years ago. A commenter engaged with a specific idea on a specific date, and you know which idea.

If you are harvesting followers anyway, treat every row as tier 3 fit-only until a second signal appears.

The filter, which runs harder here

DROP
- Their employees. Check the company field on every row.
- Their existing customers, where visible from posts or comments
- Other competitors
- Anyone outside the client's ICP bands

Expect 60% to drop. Under 50% means the filter is too loose for this source.

The employee check is easy to miss and embarrassing to get wrong. A message from your client's account to someone who works at the competitor gets screenshotted, and it is your client's name on it.

The rule that is not optional

Never name the competitor in any message. Not in the connection note, not in the DM, not in a follow-up.

Not "I saw you following X". Not "if you're looking at X". Not anywhere.

It reads as surveillance, it gets screenshotted, and it is the client's account and reputation carrying it rather than yours.

The bridge is the topic, not the competitor. Lead with the problem both companies solve, and the competitor stays invisible.

If a prospect asks how you found them, answer honestly and briefly. Evasion at that point is worse than the original question.

The one objection this generates

"We already use [competitor]."

That is information, not rejection. Ask what it does not do, and listen properly, because the answer is worth more to the client than the deal is.

Feed it back. A list of what the competitor does not do, gathered from twenty replies, is a genuine deliverable and most agencies throw it away.

Never characterise the competitor's team, pricing motive or roadmap in a reply. Name where they are genuinely better, unprompted. It is the fastest way to be believed on everything else.

Company page followers can be imported directly in Prosp, alongside post engagers, event attendees, group members, search URLs and CSV. The seven sources rank by intent, and followers sit at the bottom of that list for the reason above.

Import broad and filter at the send step. Importing costs nothing; the twenty a day on the client's account is the resource you are spending.

Section 9

Steal Your Competitor's Leads from LinkedIn Comments

The highest-intent cold source available.

A commenter engaged with a specific idea on a specific date, and you know which idea. That last part is what makes the message work.

Capture the topic, not just the lead

This is the field everyone skips and the one that makes the difference.

PER ROW
name
headline
company
linkedin_url
post_url
POST TOPIC        what the post was actually about
COMMENT TYPE      substantive, short, or reaction only
date of the comment

Someone who commented on a post about pricing gets a different opener from someone who commented on a post about onboarding. Without the topic column, every message is the same message and the source advantage disappears.

Score before you send

Depth times 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 client's 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 the row, spend no send on it.

At 20 requests a day on a client account, a 400-row list is five weeks of their entire budget. The order decides the quarter, not the size of the list.

Import broad, send narrow. Importing costs nothing. Sending is the capped resource.

The opener

Line 1  The TOPIC of the discussion, and what was interesting
        about it. Not the competitor. Not the post author.
Line 2  Your client's angle on that same topic, one line.
Line 3  A question about their situation specifically.

Never say "I saw you commenting on X's post". It reads as surveillance and it gets screenshotted, and it is the client's account carrying it.

The topic is the bridge. Where the list came from stays invisible.

Under 300 characters. One ask. Never mention the product in message one.

Running it across a book

Posts their ICP engages with, not posts you find interesting. A post you would comment on is a proxy, and it is usually wrong.

Deduplicate across every client you run. Two clients in adjacent niches will harvest overlapping comment sections. The same person receiving two different pitches from two profiles you operate is visible to them and eventually to both clients.

Keep the post URL against every row. When a client asks where a lead came from, "a comment on this post, on this date" is a better answer than "LinkedIn".

The same post keeps producing. A post that performs for three weeks keeps gathering commenters. Re-harvest weekly rather than once, and tag by harvest date so you can tell early commenters from late ones. Early commenters convert better.

What to report

Which post topics produced replies
Which post topics produced meetings
Substantive commenters vs reaction-only, as a conversion split

That first line is a content insight as much as an outreach one. If posts about pricing produce replies and posts about onboarding do not, the client's content calendar should know.

Prosp imports commenters and likers directly from any post URL, including reactions that arrive later, which is what makes weekly re-harvesting a setting rather than a task. Use add tag nodes and a check data in column condition to route only the 6+ scores into the sending branch, and keep the rest in the workspace for when a second signal appears.

Section 10

500+ Comment Lead Magnet Strategy (using AI to respond)

A post that lands produces hundreds of comments, and every one is a person expecting a link from a client account with a twenty a day ceiling.

Plan the delivery before you post, not after.

The resource

Built for their audience, delivered from their account. A magnet that is really about your service, posted under their name, converts badly and reads as borrowed.

Define it by contents, never benefits.

GOOD   43 prompts, 6 sequences, 1 tracker
BAD    unlock your potential

If you cannot list objects, it is not finished, and the post will underperform regardless of how good the hook is.

One thing inside should be useful on its own. That single item is what the follow-up message names four days later, and "did the tracker help?" beats "did you get a chance to look?".

Three variants, three keywords

Each a different angle, not a rewording. A synonym swap is not a variant.

A  ANNOYANCE
   Opens on what is irritating about the current answer.
   Best when the majority position is lazy.

B  PAIN
   Opens on what it costs to keep doing it the current way.
   Specific, in hours or money.

C  RESULT
   Opens on the outcome, then the mechanism.
   Requires real approved proof. If the client has none, do not
   write variant C. Write a second angle on A or B instead.

Each gets its own keyword, same semantic family. OUTBOUND, PIPELINE, SEQUENCE. Never OUTBOUND, OUTBOUND2, OUTBOUND3, which reads as a reposted campaign.

Rotating keywords is the only free attribution you get. You can tell the client which angle pulled rather than guessing.

The CTA

Depends on the client's connection state, which you check before writing.

MOSTLY CONNECTED
Comment "[WORD]" and I'll DM it over.

MOSTLY NOT CONNECTED
Comment "[WORD]" and connect with me so I can send it.
PS. If we're already connected, just drop the comment.

One action. Never like AND comment AND share AND follow. Each additional ask halves the response.

Hook is lines one to two and must earn the See More click alone. No hashtags in the body.

The delivery, which is where this breaks

Five hundred comments against a twenty a day ceiling is five weeks of the client's entire send budget.

1  Import commenters AND likers from the post URL.
   Enable future reactions so it keeps pulling as the post runs.
2  Score: depth x fit. Deliver to 6+ first.
3  Condition: is the lead already 1st degree?
4  YES   message with the link
   NO    connection request, then message on acceptance
5  Reply publicly to every comment

No wait node after the connection request. Acceptance auto-detects over two weeks, checking every 24 hours.

Everyone who asked gets the resource. The score decides what happens afterwards, not whether they get what they asked for.

Node 5 is the one people skip. Public replies keep the post alive, which extends the window the list keeps growing in.

If the post outruns capacity, queue the rest. Do not raise the daily limit on a client account to catch up.

The delivery message

Three lines. Thanks, the link, one question.

The question is what turns a delivery into a conversation. Answerable in under ten words, about their situation.

Never pitch here. They asked for a resource and they get a resource. Anything else comes later, and putting it here costs the client credibility rather than you.

Handle the empty first-name case. Nobody receives "Hi ,".

What to report

Comments, by variant and keyword
Delivered, as a rate of comments
Replies to the delivery message
Meetings from the magnet cohort, tracked separately

The second line is the one that catches a broken branch. If comments are high and delivery is low, the 1st-degree condition or the daily cap is the problem, not the post.

The delivery half is the part that cannot run by hand. Prosp imports commenters and likers straight from the post URL, including future reactions as they keep arriving, then runs the five nodes above. The Reply Comment node answers every public comment, which is what keeps the post alive and the list growing.

Connection requests auto-detect acceptance, checking every 24 hours for two weeks, so no wait card is needed after that step.

Section 11

Sell-By-Chat Framework

Settle who presses send before the first reply arrives.

This is the module that turns replies into calls, and it is the one where running someone else's account changes the most.

The permission question, first

Three options. One of them goes in the contract, not agreed in a panic on day nine.

1  YOU DRAFT, THEY APPROVE
   Slowest. Safest. Right for regulated clients and for anyone
   whose personal reputation is the product.

2  YOU SEND UNDER THEIR NAME
   Needs written permission and a clear boundary on what you
   cannot say. Right for most engagements.

3  YOU HAND OFF EVERY REPLY
   They handle it. Right when the client is the product and no
   ghost-written reply survives a second message.

Never commit to price, scope or timeline on their behalf, under any of the three. If a reply asks any of those, hand it over the same day. That is a commercial decision and it is the fastest way to damage an engagement.

Classify before you draft {efficient}

Exactly one category per reply.

INTERESTED       Wants more, asks about the offer
TIMING           Interested, not now. Capture the date they named.
OBJECTION        Price, fit, incumbent, capacity
WRONG_PERSON     Not their remit. Ask who owns it.
NOT_INTERESTED   Clear no. Thank them, stop, never pitch again.
AUTO_REPLY       Out of office. Reschedule to their return date.
ESCALATE         Anything below 8 confidence

Below 8 confidence, escalate. Do not guess at tone. Sarcasm, brevity and politeness all read the same in text, and a misread reply sent under a client's name is theirs to apologise for.

Never auto-send to NOT_INTERESTED. A human closes that loop.

WRONG_PERSON is the most valuable category and the most commonly binned. Ask who owns it, and feed the answer back into the ICP file. One corrected job title is worth more than the deal you lost.

Match their register before you write

Message length     reply within roughly 20% of it
Punctuation        do they use full stops in short messages
Capitalisation     sentence case or lowercase
Formality          "Hi James," or "hey"
Emoji              if they do not, you do not

A three-line reply to a six-word message reads as eager. A six-word reply to three paragraphs reads as dismissive. Register mismatch is the most common reason a warm thread cools.

Never mirror hostility or unprofessionalism. Match energy, not behaviour.

One question, always

Count the questions in the draft. If there is more than one, pick the one whose answer changes what you do next and cut the rest.

Two questions gets you an answer to the easier one. Three gets you nothing, because now it is work.

The test for the surviving question: could they answer it in under ten words while walking? If not, it is too big for a DM and belongs on a call.

Decide IF before HOW

ASK FOR THE CALL WHEN
- They asked something needing more than 400 characters to answer
- They named a problem the client solves
- They asked about price, timeline or implementation
- Two substantive messages have gone each way

DO NOT ASK YET WHEN
- They replied with one line
- They have not named a problem
- It is still the first exchange
Ask one more question instead, one that gets them to name it.

The ask itself: name the length and the agenda. "15 minutes, three questions, no deck." Offer the link AND two concrete times, because some book and some reply. Never "let me know what works", which is decision fatigue dressed as politeness.

Under 350 characters including the link.

Tag the lead the moment a call is booked, so the sequence stops. A follow-up landing after someone has booked is the most avoidable bad impression in the system, and it is the client's name on it.

The handoff

What the client gets, per booked call, before it happens.

The original signal, dated, with the URL
The full thread, verbatim
What the prospect said the problem was, in their words
Which objection came up, if any
What you committed to, and what you deliberately did not

That last line protects both of you. A founder walking into a call not knowing what was promised is how a good lead becomes an awkward thirty minutes.

What goes in the weekly report

Reply counts are the wrong headline. The categories are the story.

Replies, split by category
Interested, as a rate of replies not of sends
Timing replies, with the dates they named
Objections, ranked by frequency
Wrong-person replies, and what the correct title turned out to be
Meetings booked, and the signal tier that produced each

The objection ranking is the most useful thing you will hand a client all month. Five weeks of it tells them what their positioning is actually up against, and almost nobody collects it.

The replies land in one place. Prosp has a unified inbox spanning every connected client account, with filters for campaign, replied and unread, so the daily classification pass runs over one queue rather than eight logins.

Add tag writes the category back against the lead, and the lead states feed the report directly: Not Contacted, In Campaign, Contacted, Not Accepted after 14 days with auto-withdraw, Replied which stops the campaign, Duplicate, Blacklist, Failed.

For the client-facing numbers, there is native HubSpot integration with field mapping, 12 webhook events including Message Replied and Connection Accepted, and a REST API at prosp.ai/api/v1/leads.

Section 12

The Repo: Install the 24 Skills, Add Your First Client

Three commands to install. Two files per client after that.

Nothing else to configure.

Install

git clone https://github.com/JackJProsp/agency-linkedin-skills
cd agency-linkedin-skills
./install.sh

For every project rather than just this one:

./install.sh --global

That drops 24 skills into .claude/skills/ and creates a clients/ folder.

Add a client

mkdir -p clients/acme
cp templates/client-context.md clients/acme/
cp templates/voice.md clients/acme/

Two files per client. Every skill reads them before doing anything, which is what makes one install serve eight accounts without the outputs blurring into each other.

client-context.md carries the engagement, the ICP, the proof with permission, and the send budget.

voice.md needs three of their real posts pasted IN FULL. Not links, not summaries.

Three real posts demonstrate a voice. Three adjectives describe one, and a skill can only match what it can read. This is the single field that decides whether the drafts sound like the client or like software.

The field people leave blank is "other campaigns running on the same account". Limits are account-wide, so a skill that does not know what else is running will propose a volume that restricts the client's account.

Running it across eight clients

agency-linkedin-skills/
├── skills/              installed once, shared by every client
└── clients/
    ├── acme/
    │   ├── client-context.md
    │   ├── voice.md
    │   ├── icp.md           written by icp-from-closed-won
    │   ├── prospects.csv
    │   └── posts/
    └── globex/
        └── ...

Never share a voice.md between clients. Two accounts that sound like the same person is the fastest way to lose both.

Each client account has its own ceiling. Do not aggregate them, and do not assume a client's account has the same headroom as yours. A brand new account should start at 10 requests a day, not 20.

Fork it

The skills ship written for a generic B2B agency. Two things to replace before using them on a real client:

1. The objections. A forked skill full of generic objections is worse than no skill, because it produces confident answers to objections nobody raised.

2. The proof rules. Every skill pulls proof from the client context file. Make sure yours has a permission column, with YES, ANONYMISED and NO as the only values.

MIT licensed. Change what you like and ship your own version.

Section 13

The 24 Claude Skills That Run These Modules

How these map onto the ten modules

The modules are the method. The skills are the execution, and they run against the two files in each client folder.

Module 1, ICP              icp-from-closed-won
Module 2, Profile          profile-optimizer
Module 3, Post templates   content-pillars, hook-writer, post-writer,
                           humanizer, carousel-builder, pov-extractor
Module 4, The DM           signal-finder, opener-writer
Module 5, Sales Nav        list-builder, fit-filter, list-grader
Module 6, Competitor page  competitor-engagers
Module 7, Comment scraping competitor-engagers, engagement-session,
                           comment-scorer, borrowed-reach
Module 8, Lead magnet      lead-magnet-post, sequence-builder,
                           merge-prompt-writer
Module 9, DM templates     opener-writer, merge-prompt-writer,
                           voice-note-scripter
Module 10, Sell-by-chat    reply-router, campaign-diagnostic,
                           growth-diagnostic

Two skills have no module because they are agency-only: campaign-diagnostic and growth-diagnostic. Both exist for the weekly client conversation rather than the work itself.

12 outreach, 12 content. Every one reads the two client files before doing anything.

The 12 outreach skills

Skill What it does
icp-from-closed-won Derives the ICP from their deals, not a kickoff workshop
list-builder Sources by intent, highest first
competitor-engagers The highest-intent cold source there is
signal-finder A dated, verifiable reason to contact them now
fit-filter Keep, drop, unsure. Cheapest model.
list-grader A to F. Below B, nothing sends.
opener-writer Under 300 characters, one ask
sequence-builder Four touches, node by node, inside the ceiling
merge-prompt-writer Per-lead personalisation at send time
voice-note-scripter Under 20 seconds, never sent alone
reply-router Seven categories, escalates when unsure
campaign-diagnostic Stops at the first failing stage

The one that saves the most money: fit-filter, run on the cheapest model. It touches every row, so it is the highest-volume call in the library and has the least reasoning in it.

The one that prevents the most waste: list-grader. Below B it stops, which costs an afternoon. Sending against a C-grade list costs a month of a client's send budget.

The 12 content skills

Skill What it does
profile-optimizer Nine checks, then the rewrite
content-pillars Three topics, never themes
hook-writer Five hooks per post, pick the true one
post-writer Matches their real posts, not adjectives
humanizer Strips the tells before the client sees it
lead-magnet-post Three variants, three keywords, CTA built in
carousel-builder One idea per slide, saves compound
pov-extractor The contrarian position inside a transcript
engagement-session 25 minutes, six rules, scored
comment-scorer Below 7 gets rewritten, not posted
borrowed-reach Large posts, ranked by velocity not total
growth-diagnostic Why the content is not growing

Run humanizer on everything before the client sees it. A client who spots AI phrasing in a draft stops trusting the whole deliverable, and you do not get that back.

pov-extractor on call recordings is the underused one. Founders say things in conversation they would never write down, and the transcript is where the actual opinions are.

6 build slots left · closes in

Have your first campaign built for you

Send us your ICP and a Prosp specialist sources the list, writes the sequence and clones your voice. You review every draft before a single message sends.

5/5 rated on Capterra·800+ agencies and sales teams·Set up in 5 minutes
6 done-for-you build slots left this weekTry Prosp Free