LinkedIn automation, run for you200 messages sent for you, in your voice · 10 places left · closes in Run my first campaign

The Claude Lead Generation Guide: 10 Stages, 40 Skills, One Send Ceiling

AI Driven, Personalized Outreach on LinkedIn: Prosp 💜

Try Prosp Free200 messages sent for you · 10 places left
5/5 rated on Capterra·Used by 800+ agencies and sales teams
Playbook4 sections
Section 1

Stage 1 Setup: How Lead Gen Changed, and the Context File

Lead generation used to be a volume problem. More contacts, more sends, more pipeline.

That arithmetic broke, and it broke for a specific reason worth understanding before any of the ten stages make sense.

What actually changed

Writing became free. Sending did not.

Anyone can now produce a thousand personalised-looking messages in an afternoon. So the differentiator moved from whether you can write at volume to whether you can reach anyone at all.

The platform limits did not move with the tooling. Recommended LinkedIn limits are still 20 connection requests a day, roughly 100 messages a week, and those are account-wide rather than per campaign. Email deliverability thresholds tightened rather than loosened: bounce under 2%, spam complaints under 0.10%, and 95%+ delivery with SPF, DKIM, DMARC and RFC 8058 configured.

So the constraint is no longer production. It is send capacity, and everything below is organised around that.

The three things that follow from it

1. Ordering beats volume. A list of 400 is five weeks of your entire connection budget. Which 20 you contact on Monday decides the quarter, not how many you built.

2. Filtering moved before enrichment. Enrichment is per-lookup pricing. Enriching 1,000 rows to discover 600 were never going to buy is the most common way this gets expensive, and it is entirely avoidable.

3. Personalisation is now table stakes, not a differentiator. Everyone's first line references a recent post. What still works is a dated, verifiable signal the prospect can check, because that cannot be generated from a profile alone.

The ten stages

# Stage Skills What leaves it
1 ICP and buyer persona 4 A derived ICP and a voice-of-customer file
2 List building and prioritisation 5 A graded, ordered list
3 Personalisation at scale 4 Copy that varies on real detail
4 Qualification and sales intelligence 4 A scored opportunity or a clean disqualification
5 Buying signals and intent 4 Dated, verifiable triggers
6 Discovery prep and objections 4 A one-page brief and the answers
7 Pipeline and conversion 4 One change per week, evidenced
8 CRM hygiene and follow-up 4 Attribution that survives to reporting
9 The send layer 4 Messages that actually reach people
10 Templates and checklists 3 The recurring documents, fixed

Stage 4 producing a clean disqualification is a success. Most pipeline problems are stage 4 problems that surfaced at stage 7.

The context file every skill reads

Build .agents/leadgen-context.md first. Forty skills reading one file behave like a system. Forty reading nothing behave like forty tools.

# Lead Generation Context

## What we sell
One line, in the words a customer would use:
What a meeting is actually for:
Price band:

## Derived ICP, from closed-won
Exact job titles that actually signed:
Size band with the highest win rate:
Three attributes correlating with fast closes:
Three correlating with long or lost deals:
Who this is NOT for:

## Qualification framework
Which one we use: [MEDDIC / MEDDPICC / BANT / SPIN]
Our disqualification triggers:

## Objections we hear weekly
The five to ten real ones, with our best current response:

## Proof, with permission
Numbers we can stand behind publicly:
Named clients we may reference:

## Send budget
Connected accounts:
Daily connection requests available, account-wide:
Other campaigns running on these accounts:

## Banned
<never_use_these>
Claims we cannot evidence:
Numbers nobody approved:
Phrases we would never say:
</never_use_these>

The objections section pays back fastest. Every team hears the same five to ten weekly, and encoding the best answer once means all forty skills answer consistently rather than improvising.

Install all 40

mkdir -p .agents output

# 1. ICP and persona
mkdir -p .claude/skills/{icp-from-closed-won,persona-builder,voice-of-customer,disqualifier-writer}

# 2. List and prioritisation
mkdir -p .claude/skills/{list-builder,icp-filter-pass,list-quality-scorecard,account-tiering,engager-scorer}

# 3. Personalisation
mkdir -p .claude/skills/{opener-writer,merge-prompt-writer,voice-note-scripter,message-self-check}

# 4. Qualification
mkdir -p .claude/skills/{methodology-implementer,call-prep,disqualification-check,committee-mapper}

# 5. Signals and intent
mkdir -p .claude/skills/{signal-finder,job-post-trigger,funding-trigger,intent-scorer}

# 6. Discovery and objections
mkdir -p .claude/skills/{question-designer,pain-quantifier,objection-handler,next-step-closer}

# 7. Pipeline and conversion
mkdir -p .claude/skills/{pipeline-diagnostic,acceptance-diagnostic,reply-diagnostic,win-loss-analysis}

# 8. CRM and follow-up
mkdir -p .claude/skills/{crm-hygiene,lead-source-tagger,follow-up-sequencer,warm-signal-tracker}

# 9. Send layer
mkdir -p .claude/skills/{send-budget-splitter,sequence-builder,reply-classifier,account-health-check}

# 10. Templates
mkdir -p .claude/skills/{icp-template,sequence-template,weekly-report-template}

Effort routing

Effort Skills Why
Low icp-filter-pass, reply-classifier, engager-scorer, crm-hygiene, lead-source-tagger Classification across volume. One right answer per row.
Medium opener-writer, merge-prompt-writer, voice-note-scripter, call-prep, follow-up-sequencer Known artefact from known inputs
High icp-from-closed-won, signal-finder, sequence-builder, pain-quantifier, pipeline-diagnostic, win-loss-analysis Judgement, planning, diagnosis

icp-filter-pass on the cheapest model is the single biggest saving in the chain, because it touches every row and has the least reasoning in it.

sequence-builder at low effort is the most expensive mistake. A bad sequence design costs more in wasted sends than the tokens ever saved.

Section 2

Stages 2, 3 and 6: ICP, Lists, Signals and Intent (13 Skills)

13 skills. Stages 1 and 2 produce the only thing that matters at this point: a graded, ordered list.

The order is the cost control. Build raw, filter cheap, grade, then enrich only what survived.

ICP and persona: 4 skills

---
name: icp-from-closed-won
description: Derive an ICP from closed-won deals rather than a
  workshop. Use before any list building.
---
Pull closed-won deals, last 12 months. Per deal: company size,
industry, tech stack if visible, buyer job title, deal size, days to
close, and the trigger that started it.

OUTPUT:
1. Three attributes correlating with fast closes
2. Three correlating with long or lost deals
3. Exact job titles that actually signed, not the ones we target
4. Size band with the highest win rate
5. A searchable filter string
6. The gap between the stated ICP and the actual one

Write back into leadgen-context.md.

Fewer than 10 closed-won deals means say so. Do not derive a pattern
from three customers and present it as one.

POINT 6 is the deliverable people remember. Telling a team their
real buyer is a different title from the one on their website is
worth the whole exercise.
---
name: persona-builder
description: Build the buyer persona from evidence, not imagination.
---
FOR EACH of the top two job titles from the derived ICP:
- What they are measured on, quarterly
- What they are trying to do, in their words
- What they have already tried that failed
- Who else has to approve their decisions
- Where they actually spend attention online
- What makes them ignore an outbound message

EVERY field needs a source: a post, a job description, a review, a
call transcript. Mark anything unsourced as UNKNOWN.

A persona with no sources is a creative writing exercise, and every
message built on it inherits the fiction.

Write to context/persona-[title].md.
---
name: voice-of-customer
description: Capture how the buyer describes the problem in their own
  words. Use before writing any copy.
---
SOURCES in priority order:
1. Their own posts and comments
2. Comments under competitor posts
3. Relevant subreddits and forums
4. Review sites for competing products
5. Your own call transcripts

OUTPUT:
- Twelve verbatim phrases, quoted exactly
- Five words they use that we currently do not
- Three objections they raise unprompted
- What they say they already tried
- What they say did not work about it

NEVER paraphrase into marketing language. If they said "I can't tell
what any of it is doing", record that, not "attribution challenges".

The highest-leverage file in the whole guide. Copy written from
twelve real phrases beats copy written from a persona every time.
---
name: disqualifier-writer
description: Write the explicit list of who this is not for.
---
OUTPUT to context/disqualifiers.md. Each entry: the attribute, and
one line on why it fails.

Cover at minimum: too small to afford the price, wrong buyer
seniority, competitor, agency when we sell to in-house, sector we
cannot serve, geography we cannot serve.

This file is what icp-filter-pass reads to produce DROP verdicts, so
vagueness here becomes a bad list two weeks later.

An offer for everyone converts nobody. Naming who it repels raises
close rate on everyone else.

List building and prioritisation: 5 skills

---
name: list-builder
description: Build a raw prospect list from any source. Use after the
  ICP exists.
---
SOURCES, highest intent first:
1. Commenters and likers on a relevant post, yours or a competitor's
2. Attendees of a relevant event
3. Members of a relevant group
4. Search matching the ICP filter string
5. Job boards, for companies hiring the role your offer supports

Capture: full name, headline, company, size, location, LinkedIn URL,
and the source.

Write to output/prospects.csv with a linkedin_url column. That header
is required by the import later, so do not rename it.

Enrich nothing. Look up no emails. Most of this is discarded next.
---
name: icp-filter-pass
description: Filter the raw list before any enrichment. Cheapest
  model, lowest effort.
---
Read the derived ICP and disqualifiers.md.

Per row: KEEP, DROP or UNSURE with a 12-word reason.

KEEP    Matches the title band and the size band
DROP    Fails either, or hits a disqualifier
UNSURE  Ambiguous headline. Do not guess.

KEEP and UNSURE to output/filtered.csv.
DROP to output/dropped.csv so the filter is auditable when someone
asks why a company was excluded.

Report the drop rate. Below 40% usually means the search was too
narrow rather than the list being unusually good.

This touches every row, so it is the highest-volume call in the
chain and has the least reasoning in it. Run it cheap.
---
name: list-quality-scorecard
description: Grade a list A to F before it enters a campaign. The
  gate. Nothing sends below B.
---
Eight dimensions, 1 to 10:
1 ICP fit
2 Title accuracy: decision makers or influencers
3 Affordability against the stated price
4 Data completeness
5 Deduplication, within the list and against past campaigns
6 Recency of activity
7 Reachability: how many are already 1st degree
8 Signal strength: how many carry a tier 1 or 2 trigger

A 9.0+ send today   B 7.5+ send   C 6.0+ fix the two lowest
D 4.5+ rebuild the list   F below rebuild the ICP, not the list

Below B, stop. Name the two lowest dimensions and the fix for each.

DIMENSION 7 changes the campaign shape rather than the quality.
Mostly 1st degree can be messaged directly. Mostly cold needs
connection requests first, which is a different daily budget.

DIMENSION 8 predicts reply rate better than any other. A B-grade
list where most rows carry a signal beats an A-grade list with none.
---
name: account-tiering
description: Split the graded list into tiers with different
  treatment. Use before any outreach.
---
TIER 1  Exact ICP match, high deal potential, observable trigger.
        One-to-one: custom research, personalised first touch,
        multi-threaded from the start.
TIER 2  ICP match, no current trigger. One-to-few: segment-level
        personalisation, standard sequence.
TIER 3  Adjacent fit. One-to-many: no research, template sequence,
        contact only when capacity allows.

Output the count per tier and the effort budget per tier.

If tier 1 is more than 20% of the list, the criteria are too loose.
Tier 1 should be small enough to research each account by hand.
---
name: engager-scorer
description: Score people who engaged with a post, so the send budget
  goes in the right 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.

Sort descending before the sequence starts.

At 20 connection requests a day account-wide, a 400-row list is five
weeks of the entire budget. The ORDER decides the quarter.

The reason source 1 sits at the top of list-builder: Prosp imports commenters and likers directly from any post URL, including future reactions as they arrive. A post that keeps performing keeps feeding the list without anyone touching it.

And the reason engager-scorer exists at all is that importing is free while sending is capped. Import everyone, then use add tag nodes and a check data in column condition to route only the high scorers into the sending branch. The rest stay in the workspace for when you have an offer that fits them.

Signals and intent: 4 skills

---
name: signal-finder
description: Find a dated, verifiable reason to contact each lead now
  rather than later.
---
ONE signal per lead, ranked by proximity to a budget decision.

TIER 1, budget is already moving
- Hiring for the role your offer replaces or 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
- Site or content shows the specific gap
- Commented on a competitor's post
- Expanding into a new market or location
- Competitor of an existing customer

TIER 3, fit only, no observable trigger

Every signal verifiable and DATED. Record the date and the URL,
because it appears in the first message and they will check it.

No signal means write NONE. Never stretch an attribute into a
trigger. "Works at a SaaS company" is fit, not intent.
---
name: job-post-trigger
description: Build a list from companies hiring the role your offer
  replaces or supports. The strongest budget signal available.
---
Search job boards within the ICP filter.

Per company capture: the role, the posting date, the seniority, the
named hiring manager where visible, and the exact line in the post
that reveals the need.

WHY THIS IS TIER 1: a company posting for the role has budget
allocated and an unmet need at the same time. Those two rarely
coincide this visibly.

The quoted line goes in the opener verbatim. Paraphrasing it loses
the whole effect, because the point is that you read their posting.

Postings older than 45 days are stale. Either it is filled or the
budget moved. Mark them tier 3.
---
name: funding-trigger
description: Build a list from recent funding events.
---
Capture: round, amount, date, lead investor, and what they said they
would spend it on.

THE LAST FIELD is the one people skip and it is the useful one.
Funding is not a signal on its own; funding plus a stated intention
to hire, expand or build is.

WINDOW: 30 to 90 days post-announcement. Before 30 days they are
still fielding congratulations. After 90 the budget is allocated.

Never reference the amount in the opener. It reads as opportunism.
Reference what they said they would do with it.
---
name: intent-scorer
description: Combine signals into one intent score so the list can be
  ordered.
---
SCORE each lead:
Signal tier          1 to 3
Engagement depth     1 to 3
ICP fit              1 to 3
Recency of signal    1 to 3 (30 days = 3, 90 days = 1)

Sum, maximum 12.

10 to 12  Contact this week, tier 1 treatment
7 to 9    This month, standard sequence
4 to 6    Hold, watch for a second signal
Below 4   No outreach

RECENCY is weighted equally with fit deliberately. A perfect-fit
lead with a 90-day-old signal converts worse than an adjacent-fit
lead who posted about the problem last week.

Re-score weekly. Intent decays.
Section 3

Stages 4, 5 and 7: Personalisation, Qualification, Discovery (12 Skills)

12 skills. Personalisation, qualification, and the discovery call.

The distinction that matters in stage 3: Claude writes the structure and the logic. The per-lead variation happens at send time, against live profile data.

Personalisation at scale: 4 skills

---
name: opener-writer
description: Write the first message from a signal.
---
RULES
- Under 300 characters. Longer reads as a template.
- Line one references the signal SPECIFICALLY. Not "saw your post"
  but the actual thing the post said.
- One ask, answerable in under ten words.
- Never mention the product in message one.
- No compliments. No "hope this finds you well".
- No em dashes.

STRUCTURE
Line 1  the signal, dated and specific
Line 2  the inference you drew from it
Line 3  the question

ONE PER TIER
Tier 1  lead with the signal. It is recent and they know it.
Tier 2  lead with the observable problem. There is no event.
Tier 3  lead with the segment-level pattern. Claim no
        personalisation you cannot back.

BANNED, burnt:
"I came across your profile"
"I help [vertical] with [service]"
"Are you open to a quick chat"
"Quick question for you"
---
name: merge-prompt-writer
description: Convert message copy into prompts that personalise per
  lead at send time. This is how personalisation scales.
---
SYNTAX, keep the two distinct:
  {{double curly}}   the platform's own profile data
  [square brackets]  instructions to the AI

Variables available: first name, last name, headline, biography, job
title, company, last post. Plus any custom variable imported from
the CSV, so the signal column from stage 6 is usable here.

RULES
- ONLY the opening line varies. Keep the ask identical across leads
  so results are comparable and you can diagnose what failed.
- State length explicitly, in characters.
- Say what to do when a variable is empty. Never allow "Hi ,".
- Ban the burnt openers inside the prompt itself.
- One instruction per bracket. Compound instructions get
  half-followed.

SHAPE
  Hi {{first name}},
  [One sentence referencing {{signal}}. Be specific about the actual
  detail, not the category. Under 90 characters. If {{signal}} is
  empty use {{headline}}. Never open with "I came across".]
  [Then this line unchanged:] Worth a quick look at how [X] handle
  this?
---
name: voice-note-scripter
description: Script a voice note. The format almost nobody uses.
---
Under 20 seconds. Roughly 50 words. Count them.

STRUCTURE
- Their name
- The ONE thing everyone on this list shares, because one recording
  goes to the whole segment
- The reason for reaching out, one sentence
- The ask, phrased so a yes is easy

WRITE FOR SPEECH
- Contractions throughout
- Sentences that run out of breath naturally
- One filler word. Real speech has them. Two sounds like acting.
- No lists. Nobody says "three things" out loud.

NEVER send alone. Always a written message immediately before or
after it.

Output the script, the word count, and the estimated seconds.
---
name: message-self-check
description: Check a drafted message before it sends. The last gate.
---
SEVEN CHECKS, five must pass:

[ ] Under 300 characters
[ ] One question only
[ ] References something specific and dated, not a category
[ ] No banned opener
[ ] No claim absent from the proof list
[ ] Register matches theirs in length and formality
[ ] No em dashes

Report pass or fail per check WITH the evidence. Do not summarise as
"looks good".

If fewer than five pass, rewrite rather than send. A message failing
three checks will not be rescued by the follow-up.

The merge prompts run inside Prosp, which is where the per-lead variation actually happens. Preview before sending: it runs sample outputs against real contacts in the campaign, which catches the prompt that reads fine on lead one and produces something odd on lead five.

On voice notes: across 1000+ campaigns they average around a 47% reply rate against roughly 8% for written messages, largely because under 1% of LinkedIn outreach uses them. Cloning needs a 30 second minimum recording, ideally of the actual script you will send.

Qualification and sales intelligence: 4 skills

---
name: methodology-implementer
description: Apply the team's chosen framework consistently to every
  opportunity.
---
Read which framework leadgen-context specifies. Do not substitute.

MEDDIC     Metrics, Economic buyer, Decision criteria, Decision
           process, Identify pain, Champion
MEDDPICC   The above plus Paper process and Competition
BANT       Budget, Authority, Need, Timeline
SPIN       Situation, Problem, Implication, Need-payoff

PER ELEMENT: what we know, the evidence, and confidence 1 to 10.
Anything below 6 is a gap, not a fact.

Then the two gaps that most change the forecast, and the question
that closes each.

NEVER fill an element by inference. "They probably have budget
because they are a Series B" is not a budget answer. Write UNKNOWN.

A deal with four UNKNOWNs is not a late-stage deal regardless of how
long it has been open.
---
name: disqualification-check
description: Actively look for reasons to kill a deal. Run at
  qualification and again before any proposal.
---
This skill exists because nobody else in the process is incentivised
to do it. A rep with thin pipeline will not disqualify.

CHECK
- Do they hit any disqualifier in context
- Is there an economic buyer identified, or only a champion
- Is there a compelling event with a date, or only interest
- Can they afford the entry price
- Is there an incumbent with a contract nobody has checked
- Has anything moved in the last 14 days

RETURN exactly one:
QUALIFIED    All checks pass. State the compelling event.
AT RISK      Named gaps, with the question that resolves each.
DISQUALIFY   The specific reason, and the honest message to send.

A clean DISQUALIFY is a SUCCESS. It returns send capacity, calendar
time and forecast accuracy.

Never soften a DISQUALIFY into AT RISK because the pipeline looks
thin. That is how a quarter gets missed twice.
---
name: committee-mapper
description: Map everyone who can say no. Use as soon as a second
  person appears in the thread.
---
FOUR ROLES. Every deal has all four whether you have found them or
not.

ECONOMIC BUYER      Owns the budget. Can say yes alone.
CHAMPION            Feels the problem daily. Cannot say yes alone.
BLOCKER             Whose remit the change touches. Can say no alone.
TECHNICAL EVALUATOR If the offer needs validation.

PER PERSON: name, title, LinkedIn URL, the role they play, current
relationship, and confidence in the role assignment.

UNKNOWN is a valid and important answer. A deal with an unidentified
economic buyer is single-threaded regardless of how many people are
on the thread.

THE BLOCKER is the role most often missed, because they are not in
the conversation until they kill it.
---
name: call-prep
description: Prepare a discovery call brief. Run the morning of, not
  the night before.
---
PULL: the signal, the thread, the CRM record, any enrichment.

ONE PAGE:

WHAT WE KNOW
Per framework element, what the record already contains, with the
source.

WHAT WE DO NOT KNOW, RANKED
The five gaps that would most change the recommendation. Ranked by
how much they change it. These become the questions.

THE FIVE QUESTIONS
One per gap. Open, short, answerable without preparation.
Never ask something the record already answers.

WHO ELSE
What to ask to surface other decision makers without making it
obvious you are asking.

LIKELY OBJECTIONS
Two, from the objections list in context. With the honest answer,
not a rebuttal.

DISQUALIFIERS
What would make this a bad deal. If you hear these, say so on the
call rather than progressing it.

Under one page. A brief you cannot read in three minutes will not be
read.

Discovery and objections: 4 skills

---
name: question-designer
description: Build discovery questions for a specific deal size and
  complexity. Before the call, not during.
---
Organise by TOPIC, never as a script. A script gets read; topics get
asked.

FOUR TOPICS:
1. Current state. What happens today, step by step.
2. The problem. What breaks, how often, who notices.
3. Implication. What it costs, and what happens if nothing changes.
4. Desired state. What good looks like, in their words.

RULES
- Open questions only. Anything answerable yes or no belongs in
  qualification, not discovery.
- One question at a time. Two gets you an answer to the easier one.
- Never ask something the research already answered.
- Never ask a question whose answer you would not act on.

STOP RULE
If you cannot state their problem in their own words at the end of
the call, discovery is not finished, regardless of how long it ran.

Output 12 to 15 questions across the four topics, and the three that
must get answered.
---
name: pain-quantifier
description: Attach a number to the problem, using their arithmetic.
---
A problem without a cost is a preference. A cost they calculated
themselves is a business case.

WALK IT THROUGH WITH THEM
1. How often does this happen? Per week, per month.
2. How many people are involved each time?
3. How long does it take them?
4. What is that in loaded cost, or in delayed revenue?
5. What does that annualise to?

Use THEIR numbers at every step. If they do not know one, ask for
their estimate and label it as an estimate in the output.

OUTPUT the arithmetic, shown, with the source of each input and
whether it was measured or estimated.

NEVER supply a number they did not. Never use an industry benchmark
in place of their figure. A business case built on your assumptions
collapses the first time their finance team checks it.

If the quantified cost is smaller than your price, SAY SO. Finding
out now is worth more than finding out at proposal.
---
name: objection-handler
description: Draft a response to a named objection.
---
Read the objections list in context first. If it is there, use the
agreed response rather than inventing one.

NAME IT PRECISELY before answering. "Not interested" is not an
objection, it is an absence of one. Ask what is behind it.

THREE MOVES
1. Agree with the part that is true. There always is one.
2. Add the thing they do not know. One fact, not three.
3. Ask a question that moves it forward or closes it out.

RULES
- One objection per message. Pick the real one.
- Never answer a price objection with features. Ask what it is
  being compared against.
- "We already use [competitor]" is information, not rejection. Ask
  what it does not do.
- If they say no twice, stop. Thank them and leave the door open.

Never invent a number, customer or comparison to answer an
objection. If the honest answer is "we are not a fit for that", say
it. That reply gets referrals.
---
name: next-step-closer
description: Decide whether to ask for the meeting, then draft it.
---
Decide IF before HOW.

ASK NOW WHEN
- They asked something needing more than 400 characters to answer
- They named a problem we solve
- 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 that gets them to name the problem.

HOW
- Name the length and the agenda. "15 minutes, three questions, no
  deck."
- Offer the link AND two concrete times. Some book, some reply.
- Say what happens on the call, one line.
- Never "let me know what works". Decision fatigue kills bookings.

Under 350 characters including the link.

After sending, TAG the lead so the sequence does not follow up on
someone who already booked. That is the most avoidable bad
impression in the whole system.
Section 4

Stages 8, 9 and 10: Pipeline, CRM, Send Layer and Templates (15 Skills)

15 skills. Pipeline diagnosis, CRM hygiene, the send layer, and the templates.

This is where the guide stops producing documents and starts reaching people.

Pipeline and conversion: 4 skills

---
name: pipeline-diagnostic
description: Diagnose which stage is broken. Weekly. Stops at the
  first failure rather than reporting everything.
---
Pull: requests sent, accepted, messages sent, replied, meetings
booked, deals closed.

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.
  Do not touch the sequence.
2 ACCEPTANCE FINE, REPLIES BELOW 10%
  The list is fine. The first message is the problem.
3 REPLIES FINE, MEETINGS LOW
  The ask is mistimed, or the offer is wrong.
4 MEETINGS FINE, NOTHING CLOSING
  Not a lead gen problem. Price or offer fit.
5 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 about which one worked.

If figures are incomplete, name which stage cannot be assessed. A
diagnosis on partial data points at the wrong stage.
---
name: acceptance-diagnostic
description: Diagnose a low connection acceptance rate specifically.
  Use when pipeline-diagnostic stops at stage 1.
---
Below 15% is a problem. 30%+ is healthy.

Check in order, stop at the first hit:
1. Is a note attached at all? Sales Navigator is required to send
   one. Without it, requests go bare.
2. Does the note reference something specific and dated, or a
   category?
3. Does the note contain an ask? A request is not the place for one.
4. Is the list actually the ICP? Sample 20 rows by hand.
5. Is the profile optimised? Every request drives a profile visit,
   and a weak headline loses the accept there rather than in the
   note.

CHECK 5 is the one people miss, because the problem is not in the
message at all.
---
name: reply-diagnostic
description: Diagnose a low reply rate. Use when pipeline-diagnostic
  stops at stage 2.
---
Sample 20 sent messages and check each:
- Is the signal in line one specific, or a category?
- Is it dated?
- Is there exactly one question?
- Is it under 300 characters?
- Does it mention the product? It should not.
- Is the opener on the burnt list?

Report the count failing each check.

The most common failure by a distance is a signal that is really a
fit attribute. "I saw you work in SaaS" is not a signal and it reads
as a mail merge.

Second most common: two questions. Two gets you an answer to the
easier one and often neither.
---
name: win-loss-analysis
description: Run on both. The losses are worth more.
---
PER CLOSED DEAL, won or lost:
- The original signal and its tier
- Days from first touch to close
- Which objections came up
- What they chose instead, if lost
- Why, in their words

THE QUESTION for a loss is what they chose instead and why, not
whether price was a factor. Price is the reason people give when
they do not want to give the real one.

OUTPUT MONTHLY:
- Which signal tier produced the closed deals
- Which objection killed the most
- The gap between where deals were forecast to land and where they
  landed

The first line is the one that changes next month's targeting.

CRM hygiene and follow-up: 4 skills

---
name: crm-hygiene
description: Keep the record usable. Run weekly. Cheapest model.
---
CHECK AND FIX:
- Incomplete records: which required fields are empty, per record
- Field normalisation: job titles, company names, country codes
- Duplicates, within the CRM and against active campaigns
- Stale records: no activity in 90 days, flagged not deleted
- Orphaned contacts with no account
- Records with no lead source

OUTPUT the counts, the fixes applied, and anything needing a human
decision.

NEVER delete. Flag and report. A deleted record with history is a
loss you cannot undo, and stale is not the same as wrong.
---
name: lead-source-tagger
description: Set lead source so attribution survives to reporting.
---
THE RULE: lead source names the CAMPAIGN, never the channel.

"LinkedIn" tells you nothing in three months. "q3-saas-founders-
job-post-trigger" tells you which signal type produced the revenue.

SET, per lead:
- lead_source: the campaign name, in convention
- signal_type: which tier 1 or 2 trigger brought them in
- source_post: the post URL, where applicable
- first_touch_date
- tier: 1, 2 or 3 from account-tiering

THE SIGNAL_TYPE FIELD is what lets win-loss-analysis answer which
trigger produced closed deals. Without it, that question is
unanswerable and you keep running signals that do not convert.
---
name: follow-up-sequencer
description: Build the follow-up after a reply goes quiet.
---
Establish three things before writing:
1. The trigger that enrols someone
2. The EXIT event that removes them
3. The one action the sequence exists to cause

No exit event, no sequence. A sequence that keeps chasing someone
who already booked is worse than no sequence at all.

SHAPE
Day 3   One line. "Any questions on X?" No new information.
Day 7   One thing that was not in the last message. A reason to be
        in the inbox.
Day 14  The close-out. "Assuming this isn't a priority right now,
        which is fine. Want me to check back in Q[X]?"
Day 21  Mark cold. Stop.

THE DAY 14 MESSAGE outperforms the other two combined, because
permission to say no removes the pressure that was stopping them
replying.

Read the real event names from the platform. Never guess one.
---
name: warm-signal-tracker
description: Catch leads who re-engage after going quiet. The cheapest
  pipeline available.
---
SCAN weekly for anyone marked Contacted or Cold who has since:
- Viewed your profile
- Engaged with a post
- Changed job
- Appeared in a funding or hiring announcement

A job change is the strongest of these. They arrive with ninety days
to show a change and no loyalty to the incumbent, and you already
have a relationship.

OUTPUT the re-entry list with the new signal and its date.

Most sequences miss these entirely because the lead is already
marked Contacted and never re-enters. Route them into a fresh
sequence referencing the NEW signal, never the old thread.

The send layer: 4 skills

---
name: send-budget-splitter
description: Split the daily send budget across campaigns. Run before
  launching anything new.
---
RECOMMENDED LIMITS, account-wide not per campaign:
  Connection requests   20/day or 100/week
  Direct messages       ~100/week free, ~150 premium
  Profile views         80/day free, 150 premium
  Comments              60/day
  InMail                50/month on Sales Navigator

THE MISTAKE: three campaigns set to 20 each means the account
attempts 60 a day. That is how accounts get restricted, and it is
almost always the cause.

OUTPUT the split per campaign, weighted by tier. Tier 1 gets the
majority. Example: 10 + 5 + 5.

Connection request limits and message limits are SEPARATE buckets,
so both run at full allocation simultaneously.

Builder defaults are higher than the recommendations. Lower them
rather than accepting them.
---
name: sequence-builder
description: Turn copy into a node-by-node sequence spec ready to
  build.
---
Output a node list, not prose. Per node: action, delay before it,
exact copy, exit condition.

STANDARD SHAPE
1  Import from source
2  Condition: lead is 1st level
3  YES branch: message
4  NO branch: connection request, then message on acceptance
5  Wait 3 days, follow-up, different angle
6  Add tag by source and signal tier

RULES
- Four touches maximum. After that the answer is no.
- Reply stops the sequence for that lead, always.
- A connection request auto-detects acceptance over two weeks, so no
  wait node after one. This is the most common unnecessary node.
- Any voice note pairs with a written message, never alone.
- State the daily split against the ceiling.

FAIL CLOSED if the requested volume exceeds the ceiling. State the
ceiling and the required split rather than writing the sequence.
---
name: reply-classifier
description: Classify every inbound reply and route it. Cheapest
  model.
---
Exactly one category:

INTERESTED       Wants more, asks about the offer
TIMING           Interested, not now. Capture the date 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

Per reply: category, confidence 1 to 10, the sentence that decided
it, and the recommended next action.

Below 8 confidence, always ESCALATE. Do not guess at tone. Sarcasm,
brevity and politeness all read the same in text.

Never auto-send to NOT_INTERESTED. A human closes that loop.
---
name: account-health-check
description: Check the sending account weekly, before it breaks.
---
SEVEN CHECKS:
[ ] Account active, not parked. Idle 7+ days gets parked
    automatically and sends nothing.
[ ] Sends last week against the weekly allocation
[ ] Acceptance rate. Below 15% means fix the note before sending
    more.
[ ] Any restriction notice
[ ] 2FA still enabled
[ ] No manual use of the same profile in the extension browser
[ ] Duplicate leads across campaigns: should be zero

When LinkedIn caps an account, only connection requests pause.
Messages, profile visits and voice notes keep running, and it resets
in 2 to 3 days. Do not panic-pause everything.

This stage is the one that cannot run inside Claude. Prosp is the send layer: cloud-based so nothing depends on a session staying open, a free dedicated residential proxy per connected account, and activity paced under the platform's thresholds. Five minutes to set up, free trial, no card.

The sequence spec maps node for node. Actions available: connection request, message, voice note, InMail, message to open profile, comment on last post, reply comment, like last post, visit profile, wait X days, add tag. Conditions: has LinkedIn URL, lead is 1st level, opened message, lead is open profile, check data in column.

Lead states feed warm-signal-tracker directly: Not Contacted, In Campaign, Contacted, Not Accepted after 14 days with auto-withdraw, Replied which stops the campaign, Duplicate, Blacklist, Failed.

And the numbers pipeline-diagnostic needs come out of it natively: requests sent and accepted, messages sent, replies received, per campaign and per account, pushed to HubSpot or out through 12 webhook events and a REST API at prosp.ai/api/v1/leads.

Templates and checklists: 3 skills

icp-template.md — the six sections from icp-from-closed-won, with a field for the source of every attribute and an explicit UNKNOWN for anything unevidenced.

sequence-template.md — the node list shape: action, delay, exact copy, exit condition, per node. Plus the daily split and the ceiling it was checked against.

weekly-report-template.md — the diagnostic chain result stopping at the first failure, one metric per stage with its action, and exactly one recommended change. Banned: impressions as a headline, percentages without absolutes, any metric with no action attached.

The weekly loop

MONDAY    pipeline-diagnostic. One change, no more.
MONDAY    account-health-check, every sending account
MONDAY    warm-signal-tracker, re-entry list
TUESDAY   list-builder, then icp-filter-pass, then scorecard
TUESDAY   Below B, rebuild. Above B, signal-finder and intent-scorer
WEDNESDAY send-budget-splitter, then launch or top up
DAILY     reply-classifier over the inbox
DAILY     objection-handler and next-step-closer on what it routes
FRIDAY    crm-hygiene and lead-source-tagger
MONTHLY   win-loss-analysis
QUARTERLY icp-from-closed-won, re-derived

Three things to remember

  1. Writing is free, sending is capped. Which 20 people you contact on Monday decides the quarter, not how many rows you built.
  2. Filter before you enrich. Enriching a thousand rows to find six hundred were never going to buy is the most common way this gets expensive.
  3. A clean disqualification is a success. It returns send capacity, calendar time and forecast accuracy, and nobody else in the process is incentivised to produce one.

40 skills build the pipeline. Prosp is the half that reaches people 💜

Start a 14 Day Free Trial 💜 Watch Full Tutorial ▶️

10 pilot places left · closes in

Run a free pilot on your own list

We source the list, write the messages in your cloned voice and send 200 of them. You approve every draft and keep every reply.

5/5 rated on Capterra·800+ agencies and sales teams·Set up in 5 minutes
10 free pilot places left this monthTry Prosp Free