5/5 on Capterra · 800+ agencies and sales teams

The Recruitment LinkedIn Power Playbook

Everything for running LinkedIn as a recruitment agency, in one place. 18 skills, 40 agents, the MCP, and the modules.

14 days free · Set up in 5 minutes · Cancel anytime
See how the outreach gets sent, in 2 minutes

New to LinkedIn outreach automation? Tools like Prosp find prospects, message each one in your voice, follow up and bring replies to one inbox. This playbook is from the Prosp team.

See how it works →

Everything for running LinkedIn as a recruitment agency, in one place. 18 skills, 40 agents, the MCP, and the modules.

Recruitment is the only agency model where you sell twice: to the client who pays and to the candidate who has no reason to reply. Both motions run on the same account against the same daily ceiling, which is where most setups break.

Inside: the two-motion architecture, nine client-side skills for winning briefs, nine candidate-side skills for filling them, forty agents, the profile and content modules, the DM approaches, and the MCP that runs the sending.

Plus the 90-day build, because installing all of it at once is a fortnight of debugging rather than a system.

AI Driven, Personalized Outreach on LinkedIn: Prosp 💜

Section 1

Setup: Two Motions, One Ceiling, Three Files

You sell twice. To the client who pays, and to the candidate who has no reason to reply.

Both motions run on the same LinkedIn account, against the same daily ceiling. That is the constraint most recruiting setups ignore until an account gets restricted.

The two motions

Client side Candidate side
Who you message Hiring managers, heads of talent, founders Passive candidates in role
The signal They posted a job, or they are hiring badly Their work, visible and specific
What kills it They have a PSL and you are not on it They are not looking, and you sound like every recruiter
Cycle 2 to 8 weeks to a first brief Days, if the message is right
Volume needed Low. Tens of accounts. High. Hundreds per role.

The asymmetry is the whole problem. The candidate side needs volume and the client side needs precision, and they compete for the same 20 connection requests a day.

The split that works: 5 client side, 15 candidate side, on a single account. If you are running both at 20 each, the account is attempting 40 a day and that is how it gets restricted.

Better: separate accounts. One for business development, one for sourcing. Different profiles, different positioning, different ceilings. That is the single biggest structural improvement available to a recruitment agency on LinkedIn, and almost nobody does it.

Install the MCP

The Prosp MCP is what lets Claude run both motions without driving a browser at your account.

claude mcp add prosp -- uvx prosp-mcp-server@latest
export PROSP_API_KEY=your_key_here

uvx prosp-mcp-server@latest --check

The check verifies the key and prints your connected accounts. It sends nothing.

Set the budget to reflect the split:

PROSP_DAILY_CONNECTION_BUDGET=20
PROSP_READ_ONLY=true    # for the first session

The server refuses any volume above the budget and explains that the ceiling is account-wide rather than per campaign. For a two-sided agency running four roles at once, that refusal is the thing standing between you and a restricted account.

Repo: github.com/JackJProsp/prosp-mcp-server

The three context files

One set per agency, plus one brief per live role.

context/
├── agency.md      what we place, where, and our actual fill data
├── voice.md       three of our real messages that got replies
└── proof.md       placements we can reference, with permission

roles/
└── [client]-[role]/brief.md

agency.md

## What we place
Functions, seniority bands, and the sectors we actually fill:
Functions we take briefs for but fill badly:
Geography:

## Our fill data, last 12 months
Roles taken:
Roles filled:
Average days to first shortlist:
Average days to offer:
Fill rate by function:

## Fee structure
Contingent, retained, or both:
Percentage, and what triggers it:

## Who we do not work with

## Banned
<never_use_these>
Claims about speed or fill rate we cannot evidence:
Candidate names, ever, in client outreach:
</never_use_these>

The fill rate by function line is the one that matters. It is the number that decides which briefs to take and the one most agencies do not track honestly. A 30% fill rate on a function you keep pitching is a function you should stop pitching.

proof.md needs two permission columns, not one: permission to name the client, and permission to name the candidate. They are different conversations and conflating them is how a placement story becomes a problem.

The role brief

One per live role. Every candidate-side skill reads it.

# [Client] [Role]

## Status
intake / active / paused / offer / closed-filled / closed-cancelled

## The role
Title, as it will appear:
Title as candidates actually search for it:
Salary band, and whether it is disclosed:
Location and working pattern:
Why this role exists. New headcount or a replacement:

## The hiring manager
Name, title, and how decisive they are:
Who else interviews:
How fast can they move:

## The candidate
Where the good ones currently work:
What they are doing now that this improves on:
What would make them ignore us:

## The honest pitch
Why someone good would leave a decent job for this:
What is genuinely weak about it:

## Sourcing
Search terms that work:
Companies to target:
Companies we cannot approach:

"What is genuinely weak about it" is not optional. Every role has something. A recruiter who names it early gets trusted; one who lets a candidate discover it at offer stage loses the placement and the candidate.

"Companies we cannot approach" prevents the expensive mistake. Off-limits agreements with existing clients are the kind of thing that ends a relationship when breached by an automated sequence.

Section 2

The Client Side: 9 Skills for Winning Briefs

Nine skills for the side that pays. Winning briefs, not filling them.

This is the half most recruiting repos ignore entirely.

01. job-post-scanner

The strongest signal in recruitment BD, and it is sitting in public.

---
name: job-post-scanner
description: Find companies hiring roles you fill well. The core
  client-side list source. Run daily.
---
SEARCH job boards and LinkedIn for roles matching the functions in
agency.md where our fill rate is above 50%. Not every role we take.

CAPTURE per row:
- The exact role title, verbatim
- Posting date
- How long it has been live
- Whether it has been reposted
- The hiring manager, where visible
- Company size and whether it fits our fee band
- Whether an agency is already credited

SCORE by age:
  Under 14 days   too early. They are still running it internally.
  14 to 45 days   the window. Internal sourcing has stalled.
  Over 60 days    either filled or the spec is broken.
  REPOSTED        the strongest signal available.

A REPOST means the first attempt failed. That company has a live
need, an allocated budget, and recent evidence that their own
process is not working. Nothing else on LinkedIn combines those
three.

DROP anything where our fill rate for that function is under 40%.
Winning a brief you cannot fill costs more than not winning it.

02. hiring-pain-reader

---
name: hiring-pain-reader
description: Read a job posting for what is wrong with it. This is
  the opener.
---
FROM THE POSTING ALONE, identify:

SALARY
  Is a band disclosed? An undisclosed band on a competitive role
  loses roughly half the applicants before they read anything.

TITLE
  Does the title match what candidates actually search for?
  "Growth Ninja" returns nobody.

SPEC
  Count the required years, the must-have tools, and the
  qualifications. If the combination describes fewer than 50
  people in the market, say so and estimate the number.

SENIORITY MISMATCH
  Is the salary band consistent with the experience demanded?

PROCESS
  Does it mention how many stages? Six stages named up front is
  honest. Six stages unnamed is a drop-off problem.

OUTPUT the three most costly problems, each with one line on what
it is doing to their applicant flow.

BE SPECIFIC AND BE RIGHT. "Your job spec could be stronger" is
nothing. "Asking for 8 years of a tool that has existed for 5"
is a message they cannot ignore.

NEVER send this as a lecture. It is a finding, offered once.

The eight-years-of-a-five-year-old-tool finding is the single best opener in recruitment BD. It is checkable, it is their mistake, and it proves you read the posting rather than scraped it.

03. client-opener

---
name: client-opener
description: The first message to a hiring manager.
---
STRUCTURE
Line 1  The specific finding from the posting. Quote it.
Line 2  What that is costing them, in candidates or weeks.
Line 3  One question.

RULES
- Under 300 characters.
- QUOTE the posting in quotation marks. Paraphrasing loses the
  entire effect, because the point is that you read it.
- Never mention your fee, your database, or your process.
- Never say "I have candidates for this" unless you do, named,
  and can produce them the same day.
- No compliments. No "I hope this finds you well".
- No em dashes.

BANNED, burnt beyond use in recruitment:
"I have a fantastic candidate"
"I specialise in [function] recruitment"
"Are you open to a quick chat about your hiring"
"I noticed you're hiring"
"Just checking if you still need help with this role"

The last one is the most-sent recruitment message on LinkedIn and
it has a reply rate near zero.

"I have a fantastic candidate" is the one to retire permanently. Every hiring manager has received it from someone who did not, and the phrase now signals the opposite of what it claims.

04. market-map

The deliverable that wins retained work.

---
name: market-map
description: Build a market map for a role, as a free deliverable
  before any fee conversation. High effort.
---
FOR A GIVEN ROLE AND GEOGRAPHY:

1  THE POPULATION
   How many people plausibly do this job, in this market, at this
   level. Show the arithmetic.

2  WHERE THEY SIT
   The 10 to 15 companies holding most of them.

3  THE COMPENSATION PICTURE
   The band, from published postings only. Cite each source.

4  THE MOVEMENT PICTURE
   Which of those companies have had recent layoffs, a
   restructure, or a leadership change. Dated, with sources.

5  THE HONEST VERDICT
   Is this role fillable at this salary in this market? If no,
   say no and state what would have to change.

POINT 5 IS THE DELIVERABLE. Telling a client their role is not
fillable at the salary they set is the most valuable thing you can
say to them, and almost no agency says it before taking the brief.

NEVER name individual candidates in a market map. That is the
product, not the sample.

FAIL CLOSED if you cannot source the compensation data. An
invented band in a market map is a credibility problem you cannot
recover from.

This is the play that moves an agency from contingent to retained. A map delivered free, with an honest verdict, does more than any pitch deck.

05 to 09: the rest of the client side

---
name: 05 psl-navigator
description: Work out whether a target has a preferred supplier
  list, and what to do about it.
---
CHECK for: procurement language in postings, a named agency in the
footer, whether they advertise through one channel consistently.

IF A PSL EXISTS, the direct pitch is wasted. Three routes instead:
  The role they cannot fill through the PSL
  The function the PSL does not cover
  The hiring manager frustrated enough to raise an exception

NEVER pretend not to know. "I know you work with [agency], which
is why I am only writing about [specific hard role]" outperforms
a pitch that ignores it.
---
name: 06 brief-taker
description: The questions that decide whether a role is fillable,
  asked before you accept it.
---
TWELVE QUESTIONS. The last four are the ones nobody asks:

9  Who else is working this role?
10 What happened to the last person in it?
11 How many candidates have you already rejected, and why?
12 If we send someone perfect on Friday, who says yes and when?

QUESTION 12 IS THE QUALIFIER. A hiring manager who cannot answer
it does not have a live role, they have an intention.

OUTPUT a fillability verdict: TAKE, TAKE WITH CONDITIONS, or
DECLINE, with the reason.

DECLINE is a valid and underused output.
---
name: 07 client-objection-handler
description: The five objections every recruitment agency hears.
---
"We use a PSL"          -> route via 05, do not argue
"Your fee is too high"  -> ask what they compare it against,
                           and what a vacancy costs them monthly
"We're hiring in-house" -> ask what their time to first shortlist
                           looks like currently
"We tried an agency"    -> ask what the shortlist looked like.
                           It is almost always that.
"Send us CVs first"     -> the speculative CV trap. Decline it
                           politely and offer the market map.

Never answer a fee objection with your process. Work the cost of
the vacancy with them, using their numbers.
---
name: 08 placement-proof-writer
description: Turn a filled role into a referenceable story.
---
STRUCTURE: the brief, the constraint, what we did differently, the
time to shortlist, the outcome, and one line from the client.

TWO PERMISSION FIELDS, checked separately:
  Client named:     YES / ANONYMISED / NO
  Candidate named:  YES / ANONYMISED / NO

NEVER name a candidate without written permission, even in an
anonymised client story. Their current employer reads LinkedIn.
---
name: 09 client-diagnostic
description: Weekly. Which stage of the BD motion is broken.
---
1  Acceptance below 15%    the note, or you are messaging the
                           wrong seniority
2  Replies below 10%       the finding was generic. Was it quoted?
3  Replies fine,
   no briefs               you are reaching people who cannot
                           award work
4  Briefs fine,
   no fills                the qualifier at intake. Run 06 harder.

STAGE 4 IS THE EXPENSIVE ONE. Taking briefs you cannot fill feels
like winning for about six weeks.
Section 3

The Candidate Side: 9 Skills, and the Repos

Nine skills for the side that has no reason to reply.

A passive candidate is not job hunting. The message has to be interesting on its own terms, because there is no need being met.

10. talent-mapper

---
name: talent-mapper
description: Build the sourcing list from observable work, not from
  job titles. Run per role.
---
Read roles/[client]-[role]/brief.md.

SOURCE FROM OBSERVABLE WORK, strongest first:
1  People posting substantively about this exact problem
2  Commenters on posts in the discipline
3  Speakers and attendees at relevant events
4  People at the named target companies in the brief
5  Title search, last

SOURCE 1 BEATS SOURCE 5 BY A DISTANCE. Someone writing about
distributed systems has demonstrated they think about distributed
systems. Someone whose title says Senior Engineer has demonstrated
that a company gave them a title.

CAPTURE per candidate:
  The specific work you can see, WITH THE URL
  Current company and tenure
  Whether they have moved in the last 12 months
  Anything suggesting they might move

TENURE IS THE STRONGEST TIMING SIGNAL. Eighteen months to three
years in role is the window. Under twelve months they just moved.
Over five years they are probably staying.

CHECK against "companies we cannot approach" in agency.md before
anything leaves this skill.

11. agency-operator-finder

The most reachable candidate group in the market and the one nobody works.

---
name: agency-operator-finder
description: Find agency-side people ready to move client-side.
---
TARGET people three or more years into an agency, consultancy or
service business, whose client work is visible.

WHY THIS GROUP:
  They have seen many companies, so they ramp fast.
  They are frequently ready to move in-house and nobody asks.
  Everyone assumes they are happy because their agency posts
  about how great it is to work there.

SIGNALS:
  Three plus years at one agency
  Posting about client work rather than agency life
  Commenting on in-house roles
  An agency that has recently lost accounts or restructured

THE OPENER references the specific client work you can see, and
names what an in-house version of that job would let them do
differently. Never "are you open to opportunities".

12. candidate-opener

---
name: candidate-opener
description: The first message to someone who is not looking.
---
STRUCTURE
Line 1  The specific work of theirs you saw, and what was good
        about it. Not "your profile". Not "your experience".
Line 2  What you are recruiting for and why it needs that exact
        thing.
Line 3  One question.

RULES
- Under 300 characters.
- NAME THE COMPANY, or say plainly that you cannot yet and why.
  Anonymous roles read as a fishing expedition.
- STATE THE SALARY BAND if the brief allows. Withholding it is
  the single most common reason a good candidate does not reply.
- Never paste the job description.
- Never say "I think you'd be a great fit" without saying why,
  specifically.
- No em dashes.

BANNED, burnt:
"I have an exciting opportunity"
"Are you open to new opportunities"
"I came across your profile and was impressed"
"Your background caught my eye"
"Quick question about your career"

IF THEY SAY NO, ask who they would recommend. That question
produces more placements than the original message does, and
almost nobody asks it.

The salary band rule is the one with the most behind it. A passive candidate who has to reply to find out the money frequently does not reply. Withholding it costs more candidates than it protects negotiating room.

13 to 18: the rest of the candidate side

---
name: 13 boolean-builder
description: Build search strings that return the right people.
---
BUILD three strings per role, widening:
  TIGHT   exact title plus two must-have signals
  MEDIUM  title variants plus one signal
  WIDE    the skill, not the title

INCLUDE the title variants candidates actually use, which are
frequently not the client's internal title.

REPORT the count each string returns. A tight string returning
four people is not a search, it is a shortlist.
---
name: 14 candidate-screener
description: Screen against the brief, and against the honest
  weaknesses in it.
---
PER CANDIDATE: match, gaps, and one flag.

THE FLAG is the thing that would make this placement fail at six
months. Commute, seniority mismatch, a step backwards in scope, a
culture mismatch visible from their posts.

NEVER screen on anything not in the brief and not job-relevant.
Age, name, photograph, university, career gaps, and anything
inferred from them are out of scope. If a criterion cannot be
stated to the candidate, it is not a criterion.
---
name: 15 candidate-reply-router
description: Classify every candidate reply.
---
INTERESTED / CURIOUS BUT HAPPY / TIMING / WRONG FIT /
NOT INTERESTED / REFERRAL OFFERED / ESCALATE

CURIOUS BUT HAPPY is the category recruiters bin and it is the
most valuable one. They are not moving today. They will move in
fourteen months, and the recruiter they remember is the one who
sent something useful rather than chasing.

REFERRAL OFFERED gets answered within the hour, always.
---
name: 16 shortlist-writer
description: The client-facing shortlist.
---
PER CANDIDATE: why them in two lines, the evidence, the gap
stated openly, and their motivation in their own words.

THE GAP LINE IS MANDATORY. A shortlist where every candidate is
perfect reads as a sales document and gets discounted entirely.

THREE TO FIVE CANDIDATES. A shortlist of twelve is a search
result, and sending one says you did not screen.
---
name: 17 ats-handoff
description: Push candidates into the ATS without losing the
  context that got them there.
---
CARRY ACROSS: the source, the specific work that prompted the
approach with its URL, the first message sent, their reply
verbatim, the stated motivation, and the flag from 14.

MOST ATS HANDOFFS LOSE THE MOTIVATION FIELD. Six weeks later
nobody remembers why this person was interested, which is the
exact thing you need at offer stage.

Set the source to the CAMPAIGN and the signal type, never the
channel.
---
name: 18 pipeline-diagnostic
description: Weekly, per live role. Stop at the first failure.
---
1  Acceptance below 15%   the note, or the list is off-brief
2  Replies below 10%      the message. Did it name the company
                          and the band?
3  Replies fine,
   few screens            the role is not compelling, or the
                          pitch oversells it
4  Screens fine,
   no shortlist           the brief is wrong. Go back to 06.
5  Shortlist fine,
   no offers              not a sourcing problem. The client's
                          process, or their expectations.

ONE change per week per role.

The open-source repos worth installing

Four that are real. All handle the candidate side; none handle the client side, which is why the nine skills before this exist.

carlopezzuto/recruiting, MIT. Eleven specialised agents and sixteen skills covering the full candidate pipeline: job descriptions, personas, Boolean strings, outreach sequences, interview scorecards, offer strategies and post-close retrospectives. Output is markdown or self-contained HTML, no build tools, no dependencies.

The pattern worth stealing: each role's status lives in its brief's YAML frontmatter, and agents check it before starting work, moving through intake, active, paused, offer and closed. That is how you stop an agent sourcing for a role filled last Tuesday.

yc-software/recruiting. YC's own. Sourcing, outreach, scheduling, interviewing and pipeline management, with native integration for Work at a Startup, Gmail, Google Calendar and Slack, plus Ashby.

zubair-trabzada/ai-recruiter-claude. Fourteen skills and five parallel agents. Job description analysis with ATS keywords and inclusivity flags, pipeline summaries, interview frameworks, salary benchmarks with percentile bands and geographic adjustments, offer packages with decline risk, and 30/60/90 onboarding plans.

ATS MCP servers, if yours is supported. Crelate publishes one for their CRM and ATS API. Manatal was the first recruitment platform with MCP integration, which makes candidates, jobs, notes and organisations queryable against a live database rather than pasted CVs.

One cost worth knowing before planning around it: Manatal's MCP server requires the Enterprise Plus plan at roughly $55 per user per month billed annually, not the entry plan their pricing page leads with. Check the current figure before committing.

The weekly loop

MON  09 client-diagnostic and 18 per live role. One change each.
MON  01 job-post-scanner. Reposts first.

TUE  10 talent-mapper on the newest role.
TUE  13 boolean-builder, three strings, report the counts.

WED  02 and 03 on the client side. Five sends, no more.
WED  Candidate sends, fifteen, within the split.

THU  15 across every reply. Referrals answered within the hour.
THU  16 shortlist-writer on anything ready.

FRI  17 ats-handoff on everyone screened this week.
FRI  04 market-map on one target account.

Friday's market map is the compounding one. One a week, delivered free, is fifty retained-work conversations a year that nobody else is starting.

18 skills decide who to contact. Prosp reaches them 💜

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

Section 4

The 40 Recruitment Agents

40 agents for the two-sided problem. You sell twice, on the same account, against the same ceiling.

Twenty for winning briefs, twenty for filling them.

Business development, 10 agents

---
name: job-post-scanner
description: Find companies hiring roles you fill well. The core
  client-side list source. Daily.
---
READS: agency.md, specifically the fill rate by function.
OUTPUT: role title verbatim, posting date, days live, whether
  reposted, hiring manager, company size, agency credited.
SCORE BY AGE: under 14 days too early, 14 to 45 the window,
  over 60 filled or broken. REPOSTED is the strongest signal
  available: live need, allocated budget, and recent evidence
  their own process failed.
RULES: Drop anything where your fill rate for that function is
  under 40%.
NOT YOUR CALL: taking a brief you cannot fill.

---
name: hiring-pain-reader
description: Read a posting for what is wrong with it. This is
  the opener.
---
CHECKS: salary disclosed, title searchability, spec
  deliverability, seniority mismatch, process transparency.
OUTPUT: the three costliest problems, each with what it is
  doing to their applicant flow.
RULES: Be specific and be right. "Asking for 8 years of a tool
  that has existed for 5" is a message they cannot ignore.
  "Your spec could be stronger" is nothing.
NOT YOUR CALL: sending it as a lecture.

---
name: spec-sizer
description: Estimate how many people match a spec.
---
OUTPUT: the number, with the arithmetic shown.
RULES: If the combination describes fewer than 50 people in the
  market, say so with the estimate. That single number wins more
  briefs than any pitch.
NOT YOUR CALL: inventing a figure you cannot source.

---
name: client-opener
description: The first message to a hiring manager.
---
OUTPUT: the quoted finding, what it costs them, one question.
RULES: QUOTE the posting. Under 300 characters. Never mention
  your fee, database or process. Never claim candidates you
  cannot produce the same day.
  Banned: "I have a fantastic candidate", "just checking if you
  still need help with this role".
NOT YOUR CALL: pitching the fee.

---
name: market-mapper
description: The free deliverable that wins retained work.
---
OUTPUT: the population with arithmetic, the 10 to 15 companies
  holding them, the compensation band from published postings
  with sources, the movement picture dated, and THE HONEST
  VERDICT on whether it is fillable at this salary.
RULES: Never name individual candidates. That is the product.
  Fail closed without sourced compensation data.
NOT YOUR CALL: softening the verdict to win the brief.

---
name: psl-navigator
description: Work out whether a target has a preferred supplier
  list.
---
OUTPUT: PSL likely or not, and the route in: the role they
  cannot fill through it, the function it does not cover, or the
  manager frustrated enough to raise an exception.
RULES: Never pretend not to know. Naming it outperforms
  ignoring it.
NOT YOUR CALL: arguing with procurement.

---
name: brief-taker
description: The twelve questions, asked before accepting.
---
THE LAST FOUR nobody asks: who else is working this, what
  happened to the last person, how many have you rejected and
  why, and if we send someone perfect on Friday who says yes.
OUTPUT: TAKE, TAKE WITH CONDITIONS, or DECLINE.
RULES: A manager who cannot answer the last one has an
  intention, not a role.
NOT YOUR CALL: taking it anyway.

---
name: fee-defender
description: Handle the fee conversation.
---
RULES: Never answer a fee objection with your process. Work the
  monthly cost of the vacancy with them, using their numbers.
  Never discount to win a contingent brief.
NOT YOUR CALL: moving the percentage.

---
name: placement-proof-writer
description: Turn a filled role into a referenceable story.
---
TWO PERMISSION FIELDS: client named, and candidate named.
RULES: Never name a candidate without written permission, even
  in an anonymised client story. Their employer reads LinkedIn.
NOT YOUR CALL: assuming one permission covers the other.

---
name: bd-diagnostician
description: Weekly. Stop at the first failure.
---
1  Acceptance low     the note, or wrong seniority
2  Replies low        the finding was generic. Was it quoted?
3  Replies fine,
   no briefs          reaching people who cannot award work
4  Briefs fine,
   no fills           the intake qualifier. Run brief-taker.
STAGE 4 is the expensive one. Taking unfillable briefs feels
  like winning for six weeks.
NOT YOUR CALL: more than one change.

Sourcing, 10 agents

---
name: talent-mapper
description: Build the sourcing list from observable work, not
  titles.
---
SOURCES: people posting about the problem, commenters in the
  discipline, event speakers, target companies, title search
  LAST.
RULES: Someone writing about distributed systems has
  demonstrated they think about them. A title demonstrates a
  company gave them one.
  TENURE is the strongest timing signal: 18 months to 3 years is
  the window.
  CHECK "companies we cannot approach" before anything leaves.
NOT YOUR CALL: approaching an off-limits client.

---
name: boolean-builder
description: Three search strings per role, widening.
---
OUTPUT: tight, medium, wide, with the count each returns.
RULES: Include the title variants candidates use, not the
  client's internal one. A tight string returning four people is
  a shortlist, not a search.
NOT YOUR CALL: presenting a four-person search as a market.

---
name: agency-side-finder
description: Find agency people ready to move client-side. The
  most reachable group nobody works.
---
SIGNALS: three plus years at one agency, posting about client
  work rather than agency life, commenting on in-house roles,
  an agency that recently lost accounts.
RULES: Everyone assumes they are happy because their agency
  posts that they are.
NOT YOUR CALL: approaching a current client's staff.

---
name: candidate-opener
description: The first message to someone not looking.
---
OUTPUT: their specific work and what was good about it, the
  role and why it needs that, one question.
RULES: NAME THE COMPANY or say why you cannot. STATE THE BAND
  if the brief allows: withholding it is the most common reason
  a good candidate does not reply. Never paste the JD.
  Banned: "exciting opportunity", "open to new opportunities".
  If they say no, ask who they would recommend.
NOT YOUR CALL: an anonymous role with no explanation.

---
name: candidate-screener
description: Screen against the brief and its honest weaknesses.
---
OUTPUT: match, gaps, and ONE FLAG: the thing that would make
  this fail at six months.
RULES: Never screen on anything not in the brief and not
  job-relevant. Age, name, photo, university, career gaps and
  anything inferred from them are out of scope. If a criterion
  cannot be stated to the candidate, it is not a criterion.
NOT YOUR CALL: adding a criterion the client did not set.

---
name: candidate-reply-router
description: Classify every candidate reply.
---
CATEGORIES: interested, curious but happy, timing, wrong fit,
  not interested, referral offered, escalate.
RULES: CURIOUS BUT HAPPY is binned by most recruiters and is the
  most valuable. They move in fourteen months and remember who
  sent something useful. REFERRAL OFFERED gets answered within
  the hour.
NOT YOUR CALL: discarding curious-but-happy.

---
name: shortlist-writer
description: The client-facing shortlist.
---
OUTPUT: per candidate, why them in two lines, the evidence, the
  gap stated openly, motivation in their own words.
RULES: THE GAP LINE IS MANDATORY. A shortlist where everyone is
  perfect reads as sales and gets discounted. Three to five
  candidates.
NOT YOUR CALL: a shortlist of twelve.

---
name: interview-prepper
description: Brief the candidate honestly.
---
OUTPUT: who they meet, what each cares about, the likely
  questions, and WHAT IS GENUINELY WEAK about the role.
RULES: A recruiter who names the weakness early gets trusted.
  One who lets them find it at offer stage loses both.
NOT YOUR CALL: hiding a known problem.

---
name: ats-handoff
description: Push to the ATS without losing the context.
---
CARRIES: source, the specific work with URL, the first message,
  their reply verbatim, stated motivation, the flag.
RULES: Most handoffs lose the motivation field, which is the
  exact thing you need at offer stage. Source names the CAMPAIGN
  and signal type, never the channel.
NOT YOUR CALL: dropping fields to fit the schema.

---
name: sourcing-diagnostician
description: Weekly per live role. Stop at the first failure.
---
1  Acceptance low      the note, or the list is off-brief
2  Replies low         did it name the company and the band?
3  Replies fine,
   few screens         the role is not compelling, or oversold
4  Screens fine,
   no shortlist        the brief is wrong. Back to brief-taker.
5  Shortlist fine,
   no offers           the client's process, not sourcing.
NOT YOUR CALL: blaming sourcing for a stage 5 failure.

Content and reach, 10 agents

---
name: market-insight-poster
description: Post what you can see that nobody else can.
---
OUTPUT: one observation a week from live briefs, anonymised.
  Salary movement, time-to-hire shifts, which specs are failing.
RULES: This is the single strongest content a recruiter has.
  Never identify a client or candidate.
NOT YOUR CALL: naming anyone.

---
name: salary-transparency-poster
description: Publish band data from public postings.
---
RULES: Published postings only, cited. Never client-confidential
  bands.
NOT YOUR CALL: using a brief's band.

---
name: role-spotlight-writer
description: Post a live role, properly.
---
RULES: Name the band. Name the company or say why not. Name one
  honest weakness. A spotlight with none of the three is an
  advert nobody reads.
NOT YOUR CALL: posting a role the client has not approved.

---
name: candidate-advice-writer
description: Content for the candidate audience.
---
RULES: Useful whether or not they ever work with you. Interview
  prep, CV structure, negotiation. Never gated.
NOT YOUR CALL: making it a lead magnet.

---
name: hiring-manager-educator
description: Content for the client audience.
---
TOPICS: why a spec is not converting, what a realistic
  time-to-hire looks like, what an undisclosed band costs.
RULES: Never subtweet a live client.
NOT YOUR CALL: naming a company.

---
name: engagement-session-runner
description: 25 minutes daily, six rules, every comment scored.
---
RULES: Two accounts means two sessions. The BD account comments
  on hiring manager content; the sourcing account comments in
  the discipline. Never cross them.
NOT YOUR CALL: one session for both.

---
name: borrowed-reach-finder
description: Large posts worth commenting on, by velocity.
---
RULES: 200 reactions after an hour beats 600 after two days.
NOT YOUR CALL: the comment itself.

---
name: placement-announcer
description: Announce a placement without making it about you.
---
RULES: Candidate permission first, always. Lead with what they
  are going to do, not with the fee or the speed.
NOT YOUR CALL: announcing without permission.

---
name: talent-pool-nurturer
description: Keep curious-but-happy candidates warm.
---
OUTPUT: one useful thing a quarter. Salary data, a market
  observation, a relevant role.
RULES: Never a check-in with nothing in it.
NOT YOUR CALL: contacting them monthly.

---
name: content-diagnostician
description: Which content produced briefs or candidates.
---
OUTPUT: the posts that produced conversations, split by
  audience. Market insight almost always wins.
NOT YOUR CALL: reporting reach as the headline.

Operations, 10 agents

---
name: account-splitter
description: Decide the BD versus sourcing split across accounts.
---
OUTPUT: the daily allocation per account.
RULES: ONE ACCOUNT: 5 BD, 15 sourcing. TWO ACCOUNTS is the
  single biggest structural improvement available and almost
  nobody does it. Never aggregate ceilings.
NOT YOUR CALL: exceeding 20 a day on any account.

---
name: role-status-keeper
description: Track every live role's stage.
---
STATES: intake, active, paused, on-hold, offer, closed-filled,
  closed-cancelled.
RULES: Every sourcing agent checks this before starting. It is
  what stops an agent sourcing for a role filled last Tuesday.
NOT YOUR CALL: changing a status without the client saying so.

---
name: off-limits-keeper
description: Maintain the companies you cannot approach.
---
RULES: Read by every sourcing agent before it runs. An
  off-limits breach by an automated sequence ends client
  relationships.
NOT YOUR CALL: removing a company without the contract saying
  it expired.

---
name: fill-rate-tracker
description: Fill rate by function, honestly.
---
RULES: This is the number that decides which briefs to take and
  the one most agencies do not track. A 30% fill rate on a
  function you keep pitching is a function to stop pitching.
NOT YOUR CALL: rounding up.

---
name: duplicate-checker
description: Check a candidate against every active role.
---
RULES: The same person approached for two roles by two
  consultants in one week is the most common own goal in agency
  recruitment.
NOT YOUR CALL: proceeding on a match.

---
name: compliance-checker
description: Check outreach and screening against the rules that
  apply in your market.
---
RULES: Screening criteria must be job-relevant and stateable to
  the candidate. Data held needs a lawful basis and a retention
  period. This agent flags, it does not advise.
NOT YOUR CALL: giving a legal opinion. Escalate to someone
  qualified.

---
name: candidate-data-keeper
description: Retention and deletion.
---
RULES: Know the retention period. Delete on request, fully.
  Never keep a CV indefinitely because it might be useful.
NOT YOUR CALL: extending retention for convenience.

---
name: client-reporter
description: The weekly client update on a live role.
---
OUTPUT: approached, replied, screened, shortlisted, with the
  absolute beside every percentage, and one line on what is
  blocking.
RULES: Never report activity as progress.
NOT YOUR CALL: hiding a stalled role.

---
name: margin-tracker
description: Gross margin per placement and per client.
---
OUTPUT: fee, consultant hours, sourcing cost, tool cost, margin
  percent. Ranked worst first.
RULES: The ranking is never the same as the ranking by fee size,
  and agencies manage attention by fee size.
NOT YOUR CALL: which clients to drop.

---
name: account-health-checker
description: Weekly check on every sending account.
---
CHECKS: connection status, capped, restricted, 2FA, combined
  daily volume across campaigns, duplicates.
RULES: The combined volume field is the one nobody checks.
NOT YOUR CALL: raising a limit to catch up.
Section 5

The Prosp MCP: 22 Tools

22 tools across six areas. Read tools are safe to run at any time. Write tools that reach a real person need an explicit confirm.

Accounts, 3 tools

Tool What it does
list_accounts Every connected LinkedIn account, with status
get_account_budget Daily send budget left, across all campaigns
get_account_health Connection status, caps, and combined campaign volume

Run get_account_budget before proposing any volume. It is the number that governs every sending decision, and it is per account rather than per campaign.

get_account_health reports one field most people never check: the combined daily volume every active campaign on that account is configured to send. An account with three campaigns at 20 each is set up to attempt 60 a day, even though each campaign looks reasonable on its own.

Lists, 7 tools

Tool What it does
list_lead_lists Lists in the workspace
get_lead_list One list, with the breakdown by lead state
create_lead_list Create an empty list
import_from_post Commenters and likers from any post URL
import_from_search Leads from a search or Sales Navigator URL
import_leads Structured import, with custom variables
set_lead_state Blacklist, duplicate, or reset to not contacted

import_from_post is the one to use first. Someone who commented on a post about the exact problem you solve has done something. Someone matching a search filter has not.

It takes include_future_reactions, which keeps the import open so engagement arriving days later is pulled in without anyone touching it. Leave it on for a post that is still travelling.

import_leads accepts custom variables. Any key beyond linkedin_url becomes a variable usable in message prompts, so a signal recorded during research travels with the lead into the copy:

{
  "linkedin_url": "...",
  "first_name": "Sarah",
  "signal": "hiring a RevOps lead, posted 14 Mar",
  "signal_url": "...",
  "tier": "1"
}

get_lead_list returns the state breakdown, which is the diagnostic most people skip. A large Not Accepted count relative to Contacted points at the connection note or the list quality, not the sequence.

Leads, 3 tools

Tool What it does
get_lead One lead, with custom variables and campaign membership
search_leads Filter a list by state or tag
add_tag Tag by signal type and campaign

search_leads with state="replied" is the fastest way to find everyone worth a human reply today.

search_leads with state="not_accepted" after 14 days tells you whether the connection note is working, because that state only fills up when requests expire.

add_tag is what makes attribution possible. Tag by signal type rather than channel. The question worth being able to answer at month end is which trigger produced the booked meetings, and that is unanswerable without this field.

Campaigns, 6 tools

Tool What it does
list_campaigns Campaigns, filterable by account or status
get_campaign One campaign, with its node sequence
get_campaign_stats Sent, accepted, messaged, replied
create_campaign Build from a node list. Starts paused.
set_campaign_status Start, pause, archive
set_daily_limits Change the per-campaign caps

create_campaign never starts anything. It builds the campaign paused, so you review the sequence before a single request goes out. Starting is a separate call that needs confirmation.

The node shape:

Actions      connection_request, message, voice_note, inmail,
             open_profile_message, comment_last_post,
             reply_comment, like_last_post, visit_profile,
             wait, add_tag

Conditions   has_linkedin_url, is_first_level, opened_message,
             is_open_profile, check_column

The standard five-node shape:

1  Condition: is_first_level
2  YES branch: message
3  NO branch: connection_request, then message on acceptance
4  Wait 3 days, follow-up on a different angle
5  add_tag

get_campaign_stats returns figures no CRM holds: requests sent and accepted, messages sent, replies received. Those are the inputs to the diagnostic.

Replies, 4 tools

Tool What it does
get_inbox Unified inbox across every connected account
get_conversation One full thread with lead and campaign context
send_reply Send. Requires confirm=true.
mark_read Clear from the queue without replying

Leave account_id empty on get_inbox and you get every account in one queue. That is what makes a daily reply pass one task for an agency running eight client accounts rather than eight logins.

send_reply lints the draft and returns warnings for anything over 300 characters, more than one question, a burnt opener, or an em dash. The send still goes through; the warnings come back with it so you see what you shipped.

Reporting, 3 tools

Tool What it does
get_workspace_stats Figures across every account, for a date range
diagnose_campaign The chain, stopped at the first failure
signal_attribution Which signal type produced the booked meetings

diagnose_campaign is the one to run weekly. It works the chain in order and stops at the first failure, rather than returning five stages of numbers when the first is broken.

1  Acceptance below 15%        the note, or the list. NOT the sequence.
2  Acceptance fine,
   replies below 10%           the first message.
3  Replies fine, meetings low  the ask is mistimed, or the offer is wrong.
4  Meetings fine,
   nothing closing             not outreach. Price or fit.
5  All fine, volume low        the daily cap split across campaigns.

If meeting data is missing it says so rather than guessing, because a diagnosis on partial data points at the wrong stage.

signal_attribution produces one line and it is the most useful line in any monthly report. It only works if leads were tagged at import. If the output is empty, that is the finding.

Section 6

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 7

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 8

Recruiters: 2 DM 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 9

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 10

Harvest Candidates 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 11

The 90 Day Build, and the Weekly Loop

The order to build it in. Ninety days, because installing 18 skills and 40 agents at once is a fortnight of debugging rather than a system.

Everything in this playbook is referenced by name, so you can follow this page and open the others as you need them.

Days 1 to 7: the foundation

Nothing sends this week.

DAY 1  Install the Prosp MCP. Run --check.
       Set PROSP_READ_ONLY=true and leave it on all week.

DAY 2  Write context/agency.md. The hard part is the fill rate
       by function, and it is the field that decides which
       briefs to take.

DAY 3  Write context/voice.md. Three of your real messages that
       got replies, pasted in full.

DAY 4  Write context/proof.md. TWO permission columns: client
       named, and candidate named. They are different
       conversations.

DAY 5  Run 02 profile-optimiser on the BD profile.
       Record current acceptance first, so the before-and-after
       is measurable.

DAY 6  Decide the account split. One account at 5 BD and 15
       sourcing, or two accounts.

DAY 7  Install ten agents only:
       client-icp-deriver equivalent, proof-librarian,
       profile-optimiser, job-post-scanner, talent-mapper,
       fit-filter, client-opener, candidate-opener,
       reply-classifier, bd-diagnostician.

The account split on day 6 is the biggest structural decision here. Two accounts, one for business development and one for sourcing, is the single largest improvement available to a recruitment agency on LinkedIn, and almost nobody does it. Different profiles, different positioning, two separate ceilings instead of one shared between competing motions.

Days 8 to 30: one motion at a time

WEEK 2, BD ONLY
  01 job-post-scanner daily. Reposts first.
  02 hiring-pain-reader on the top ten.
  03 client-opener. FIVE sends a day, not twenty.
  No sourcing yet.

WEEK 3, ADD SOURCING
  10 talent-mapper on your best live role.
  13 boolean-builder, three strings, report the counts.
  12 candidate-opener. Ten sends a day.
  BD holds at five.

WEEK 4, THE FIRST DIAGNOSTIC
  09 client-diagnostic and 18 pipeline-diagnostic.
  ONE change each. Not three.
  Raise to full volume only if acceptance is above 25%.

Why BD first. It is the lower-volume motion, so it teaches you whether the copy works before you spend the candidate-side budget finding out.

Why five sends rather than twenty. A new sending pattern on a profile with no history is the clearest possible flag. Build to full volume over the fortnight rather than starting there.

Days 31 to 60: content and compounding

WEEK 5  Content starts. Three posts a week, one a day maximum.
        The strongest recruitment content is market insight:
        salary movement, time-to-hire shifts, which specs are
        failing. Anonymised, from live briefs.

WEEK 6  04 market-map on one target account, delivered free.
        One a week from here. Fifty retained-work conversations
        a year that nobody else is starting.

WEEK 7  Harvest candidates from comments. Capture the post topic
        per lead, not just the lead.

WEEK 8  Add the remaining agents as gaps appear, not in advance.

The market insight post is the single strongest content a recruiter has and almost nobody publishes it. You can see salary movement and time-to-hire shifts across live briefs that nobody else in the market can see. One observation a week, anonymised, outperforms any amount of job advertising.

Days 61 to 90: the loop

MON  09 and 18 per live role. One change each.
MON  01 job-post-scanner. Reposts first.

TUE  10 talent-mapper on the newest role.
TUE  13 boolean-builder, three strings, counts reported.

WED  02 and 03 on the client side. Five sends.
WED  Candidate sends, fifteen, within the split.

THU  15 across every reply. Referrals answered within the hour.
THU  16 shortlist-writer on anything ready.

FRI  17 ats-handoff on everyone screened this week.
FRI  04 market-map on one target account.

MONTHLY  Fill rate by function, honestly.
         Which signal type produced the briefs.

The monthly fill rate by function is the number that decides the business. A 30% fill rate on a function you keep pitching is a function to stop pitching, and most agencies never calculate it.

The four rules that govern everything

1. The ceiling is account-wide, not per campaign. Twenty connection requests a day, whatever else is running. A BD campaign at 20 and a sourcing campaign at 20 means the account attempts 40.

2. Never approach a company on the off-limits list. An automated sequence breaching an off-limits agreement is the kind of thing that ends a client relationship, and the sequence will not know unless the file exists.

3. Never name a candidate without written permission, even in an anonymised client story. Their current employer reads LinkedIn.

4. Decline briefs you cannot fill. Taking one feels like winning for about six weeks and then costs you the relationship you were building.

What is in this playbook

Page What it holds
Setup The two motions, the ceiling, the three context files and the role brief
The Client Side 9 skills for winning briefs, in full
The Candidate Side 9 skills for filling them, plus the four open-source repos
The 40 Recruitment Agents BD, sourcing, content and operations, ten each
The Prosp MCP 22 tools, and the safety rails
Optimise Your Profile The nine checks and the rewrite
Viral Post Templates The six structures and the humanising pass
Recruiters: 2 DM Approaches The two message shapes that work in this vertical
Harvest Candidates from Comments The highest-intent cold source there is
Sell-By-Chat Turning replies into calls

The skills decide. Prosp reaches both sides 💜

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

Book more meetings from your LinkedIn

Prosp finds the right prospects, writes to each one in your voice, and runs your outreach safely from the cloud. You take the calls.

Set up in 5 minutes · Your LinkedIn stays safe · Cancel anytime