← Back to Case Studies
Chapter 01

LinkedIn outreach that researches, writes, and sends — without you.

A bespoke AI agent built for a UK recruitment firm. It sources leads from Apollo, researches each prospect across LinkedIn, their company website, and recent news — then crafts and sends a fully personalised message. No templates. No manual effort.

3,400+
Personalised messages sent
First 90 days of deployment
34%
Connection acceptance rate
vs 11% industry average
18%
Positive reply rate
On first message send
22hrs
Saved per week
Per recruiter on outreach tasks
1 Week 1–2 Discovery
Audit & design
We mapped the client's existing outreach workflow, ICP definition, and Apollo setup. Identified the research signals that drove the highest reply rates in their manual process.
2 Week 3–5 Build
Build & test
Custom agent built and integrated with their Apollo export and LinkedIn workflow. Prompt system engineered for tone, personalisation depth, and LinkedIn's character limits. A/B tested across 3 message variants.
3 Week 6+ Ongoing
Deploy & optimise
Agent deployed across the full team. Reply handling configured — auto-responds to positive signals, follows up after no reply, stops after a defined number of attempts. Monthly prompt tuning included.
Chapter 02

How the agent works, step by step.

Every message sent by the agent is the result of a multi-stage research and writing pipeline. Each stage is bespoke — no off-the-shelf tool does this end to end.

01 · Source
Apollo export
Filtered list by role, seniority, industry, headcount, and location. Exported as CSV and fed into the agent queue.
Apollo.io
02 · Research
AI signal gathering
Agent visits LinkedIn profile, company website, and scans for recent news, funding, hires, and posts. Extracts 4–6 personalisation signals per prospect.
Custom scraper
03 · Write
Message generation
AI writes a unique message for each prospect using the research signals. Tone matched to recruiter voice. Character limit enforced. No two messages are the same.
Claude API
04 · Send
Connection + DM
Sends connection request. Waits for acceptance. Sends personalised first message at a human-paced interval to avoid detection.
LinkedIn API
05 · Follow-up
Reply handling
Monitors replies. Auto-responds to positive signals. Sends follow-up if no reply after X days. Stops after configured attempt limit or on any reply.
Automated
🔗
LinkedIn profile
Scraped live per prospect
  • Current role & tenureExtracted
  • Recent activity / postsLast 30 days
  • Career historySummarised
  • Shared connectionsFlagged
  • Skills & endorsementsTop 5
🏢
Company website
Scraped live per company
  • Current open rolesDetected
  • Product / service focusSummarised
  • Team size signalsInferred
  • Recent announcementsExtracted
  • Tech stack (if visible)Noted
📰
News & signals
Live at time of outreach
  • Funding roundsLast 6 months
  • Leadership changesFlagged
  • Acquisitions / exitsDetected
  • Press coverageTop result
  • Awards / recognitionReferenced
Chapter 03

The problem: doing the work manually wasn't scaling.

The client was running a team of recruiters who spent a significant portion of their week on LinkedIn outreach. The volume wasn't there. The personalisation wasn't there. And the process was entirely dependent on individual effort.

The pain
Each recruiter was manually researching prospects, writing individual messages, and tracking follow-ups in spreadsheets. A good recruiter could send 40–50 personalised messages a week — but only by sacrificing time that should have been spent on calls and placements.

Generic templates were tried. Reply rates dropped to under 5%. The team went back to manual, but couldn't scale past a certain volume without hiring more people.

Follow-up was inconsistent — some prospects got chased three times, others were forgotten after the first message. There was no system.
What was needed
A system that could research at scale and write messages that felt genuinely personal — not mail-merged. The message had to reference something real and specific about the person or their company.

It needed to operate continuously — not just when a recruiter had time. And it needed to handle the follow-up logic automatically, with configurable rules for each campaign.

Crucially: it had to sound like the recruiter. Not like an AI. The tone, voice, and style had to match.
40–50
Messages per recruiter/week
Manual ceiling — couldn't scale further
~5%
Reply rate on templates
When generic messages were tried
8hrs
Weekly outreach time per recruiter
Research, write, send, track
0
Automated follow-up system
Entirely ad-hoc and inconsistent
Chapter 04

The solution: a bespoke agent that works like your best recruiter.

We built a custom AI outreach agent — not configured from an off-the-shelf tool, but built from the ground up to match this firm's voice, workflow, and ICP. Every component is bespoke.

Fully bespoke build
Not a SaaS tool configured
Every component — the scraper, the prompt system, the send logic, the reply handler — is custom built for this client. The agent behaves exactly as specified, not within the limits of a third-party platform.
Voice-matched writing
Sounds like the recruiter, not a bot
The prompt system was built using 50+ examples of the recruiter's best-performing manual messages. The AI writes in their voice — their tone, vocabulary, and sentence structure — applied to each unique prospect.
Intelligent follow-up
Configurable per campaign
The agent monitors every conversation thread. It follows up after a configured number of days if no reply, adjusts message tone on the second and third touch, and stops immediately on any reply — positive or not.
LinkedIn first message — same prospect Real example, anonymised
Before — generic template
Hi James,

I hope this message finds you well. I'm a recruiter specialising in tech and I came across your profile and thought you might be interested in some of the roles we're currently working on.

Would you be open to a quick chat to explore opportunities?

Best,
Sarah
After — AI-researched, bespoke
Hi James,

Saw Meridian just closed their Series B — congrats, that's a strong signal the engineering expansion is real.

I work with scale-ups at this stage on senior engineering hires and noticed you're currently advertising for a Staff Engineer and two Seniors — exactly the profile we place most.

Worth a 15-minute call this week?
Chapter 05

The outcome: a pipeline that runs without the team touching it.

Within 90 days of deployment the client had processed more qualified outreach than in the previous six months combined — with no increase in headcount and a measurable improvement in reply rates.

3,400+
Messages sent
Personalised, not templated
34%
Acceptance rate
3× industry benchmark
612
Positive replies
Warm conversations opened
£0
Additional headcount cost
Zero new hires to achieve this
Outreach runs 24/7 without manual input
The agent processes the Apollo queue, researches, writes, and sends continuously — not just during working hours.
Recruiters redirected to high-value work
22 hours per recruiter per week recovered from outreach admin — reinvested into calls, relationships, and placements.
Follow-up is now systematic, not ad-hoc
Every prospect gets the right number of touches at the right interval. No one falls through the cracks. No one gets over-messaged.
Reply rates 3× higher than templates
Personalisation at scale delivers the results that only manual effort used to achieve — at 70× the volume.
Scales with the team, not against it
Adding a new recruiter to the system takes under an hour. Their voice is trained in, their ICP configured, and they're live the same day.
Full campaign visibility and control
The client can pause, adjust, or reconfigure any campaign at any time. Message variants, attempt limits, and follow-up timing are all configurable without touching the code.
Next case study
The Cake Collection — Order Automation