←
AI for Recruiters
Capable · M1 · lesson 1 of 27 · in progress
Preview — browse every lesson free. Enroll to mark lessons complete, open partner links and save your progress. Login & enroll →
📖
in this lesson

AI-Assisted Outreach: Templates, Personalization, and Quality

15 min

Theo is a technical sourcer at a Series C robotics company, and for most of his first quarter he treated outreach like a numbers game he was losing. He was sending roughly 80 LinkedIn Recruiter InMails a week to passive senior engineers, leaning on AI to crank out the copy, and watching his reply rate sit at a discouraging 18 percent. The messages were grammatically perfect and completely forgettable. When he read three of them side by side one Friday, he realized they were interchangeable: swap the candidate's name and any of them could have gone to anyone. The problem was not that he used AI. The problem was that he had let AI do the part only he could do, which is notice something true and specific about a person, and had reserved for himself the part AI does well, which is turn that observation into clean prose. This lesson is about flipping that around.

Why the Hook, Not the Volume, Is the Whole Game

Passive senior engineers are not waiting for a recruiter. They have a job, they are good at it, and they receive several InMails a week that all open with some version of "I came across your impressive profile." The moment a message reads as mass-generated, it is deleted. So the variable that actually moves Theo's reply rate is not how many messages he sends or how polished the grammar is. It is whether the first two sentences contain a specific, candidate-relevant detail that proves a human looked at this person on purpose. Recruiters call that detail the hook.

A hook is a true, specific observation that connects the candidate's actual work to the opportunity. "I noticed you work in Python" is not a hook, because it is true of half the people Theo contacts and proves nothing. "Your talk at ROSCon on real-time motion planning under compute constraints is the exact problem our perception team is wrestling with right now" is a hook, because it could only have been written to one person. Another shape works just as well: "you have been at your current company for three years and we are hiring for a similar role with more room to lead" is specific, true, and connects their situation to the opportunity rather than flattering them.

The uncomfortable truth Theo had to accept is that AI cannot manufacture a genuine hook. If he does not supply a real detail, the model will invent a plausible-sounding one, and an invented compliment is worse than no compliment because the candidate can usually tell. Outreach is the hardest recruiting task to automate for exactly this reason: it requires something a model alone cannot deliver, which is evidence that a person cared enough to look. The five to ten minutes of research that produces a real hook is the part of outreach that cannot be automated, and it is the part that determines whether the rest of the message gets read.

The Four-Step Framework: Research, Insight, Draft, Edit

Theo's whole system reduces to four steps in a fixed order, and the order is the point, because the common failure is starting at step three. Research comes first. Before asking AI to draft anything, he learns what this person actually built, what they seem interested in, and what their current scope is. This takes five to ten minutes and it is the entire difference between personalized and generic. Insight comes second: from the research he identifies one or two genuine observations that connect this person to his opportunity. Specific and true are the only two requirements, and they are stricter than they sound, because most flattering observations fail at least one of them.

Draft comes third, and this is where AI finally enters. Theo hands the model four things: the research, his insight, tone guidance, and constraints. The model turns that raw material into prose, which is precisely what it is good at. Edit comes fourth and is not optional. He reads the draft and asks four questions. Is it authentic? Does it sound like him rather than like a brochure? Does it overpromise anything, or undersell the opportunity? And does it demonstrate genuine interest without tipping into creepy, which is a real risk when a message references someone's work in too much forensic detail. He edits until the answer to all four is yes.

The arithmetic is worth stating because it is the reason to adopt the framework rather than a reason to feel virtuous about it. Writing a message entirely from scratch, research included, runs 20 to 30 minutes. The four-step framework runs 10 to 15 minutes per message including research, drafting, and editing, which is roughly 40 to 50 percent faster. Critically, the message is still personalized, because personalization came from Theo's research and Theo's insight rather than from the model. Speed and authenticity are not in tension here; the speed comes from delegating prose generation, and the authenticity comes from the two steps that happen before the model is ever prompted.

The Anatomy of a Template That Scales

Theo's mistake early on was treating "use a template" and "personalize" as opposites. A good template is the thing that makes personalization fast, because it isolates the one variable that has to change per candidate and standardizes everything else. His working structure has five slots, and only one of them requires real thought per message. The skeleton looks like this, with bracketed placeholders marking what gets filled in:

Subject: [HOOK_TOPIC] at [COMPANY]
Hi [FIRST_NAME], [PERSONALIZATION_HOOK]. I lead sourcing for the perception team at [COMPANY], where we are [ONE_LINE_MISSION]. Your work on [SPECIFIC_DETAIL] maps directly to [WHY_IT_MATTERS_TO_US]. I am not assuming you are looking, but if you are open to comparing notes I would value 20 minutes. [SIGN_OFF]

Four of those five placeholders are nearly fixed. [COMPANY], [ONE_LINE_MISSION], and [SIGN_OFF] change rarely or never. [WHY_IT_MATTERS_TO_US] has maybe three variations depending on which team is hiring. Only [PERSONALIZATION_HOOK] and the [SPECIFIC_DETAIL] it references are genuinely per-candidate, and those are exactly the slots Theo's research fills. The template does not make every message identical. It makes the identical parts free so his time goes entirely to the parts that should differ. The call to action deserves the same treatment: a concrete ask like "would love 20 minutes to talk about it, what does your calendar look like next week" outperforms a vague invitation to connect, because it tells the candidate exactly what saying yes commits them to.

Building the Outreach Prompt

An effective outreach prompt has four elements, and they map onto the framework. Context tells the model who it is writing to and on whose behalf: "I am reaching out to a backend engineer interested in infrastructure work, on behalf of a Series B fintech startup, and I want the message to feel warm but professional, peer to peer." Research supplies the factual material Theo gathered. Insight states the hook explicitly rather than hoping the model finds it. Constraints govern what the model may and may not do: conversational rather than salesy, assume the candidate does not know the company so introduce the mission, do not overpromise or commit to compensation or timeline, keep it to three or four sentences.

A complete prompt looks like this. "I am drafting outreach to a backend engineer named Alex. Alex has been at CloudBase for two years leading their data pipeline work. He is active on GitHub and has contributed to an Apache project for query processing. Our company builds infrastructure for financial data, and Alex's pipeline work directly addresses one of our core technical challenges. Draft a warm, peer-to-peer message of three to four sentences that acknowledges his specific open-source work, explains why that work matters to us, introduces what we are building, and invites a conversation without pressure. Tone conversational, not salesy. Do not mention salary, benefits, or timeline. Assume he might not know us."

Theo's own version follows the same shape with his own material. "Draft a four-sentence LinkedIn InMail to a senior robotics engineer named Renee. Hook to use, verbatim in spirit: she co-authored an open-source SLAM library that our localization stack depends on. I lead sourcing for the perception team at a Series C robotics company building warehouse autonomy. Tone: peer-to-peer, not salesy. Acknowledge her specific library, explain why it matters to us, invite a 20-minute conversation. Do not mention salary, equity, title, or start date. Do not use the words 'impressive,' 'rockstar,' or 'reaching out.'" Notice that the hook comes from Theo and the negative constraints do most of the quality work.

Avoiding the AI Tell: Constraints Over Hope

The fastest way to sound like spam is to send what a language model produces by default. Models gravitate toward a recognizable register: opening with "I hope this message finds you well," calling the candidate's background "impressive" or "remarkable," using "reach out" and "touch base," and padding three sentences of content into six. Senior engineers have a finely tuned detector for this voice because they receive it constantly. Theo cannot ask the model to "sound human" and expect improvement, because vague instructions get vague results. What works is naming the specific tells as banned tokens and capping the length.

His standing constraint block, appended to every outreach prompt, reads roughly: keep it to four sentences and under 90 words; do not use the words impressive, rockstar, ninja, guru, synergy, touch base, reach out, or any opener about hoping the message finds them well; do not compliment generically, only reference the specific detail provided; do not promise compensation, equity, title, reporting structure, or timeline; write the way a fellow engineer would write, not the way a brochure reads.

The other half of avoiding the AI tell is variety. If all 80 of a week's messages follow the same sentence rhythm, they read as a batch even when each hook is real. Theo keeps three structurally different skeletons in rotation and lets the per-team variations and hooks supply the rest, so no two consecutive candidates receive the same cadence. He also varies tone deliberately by person: the register that lands with a staff engineer who blogs constantly is not the register that lands with a quiet principal who has never posted anything. Templates are fine. Templates applied identically to everyone are what candidates detect.

Passive Versus Active Candidates

Outreach strategy changes substantially depending on whether the person is looking, and treating both groups identically wastes effort on one and loses the other. A passive candidate is not job hunting and is not expecting recruiting messages. The hook has to be stronger, because the message must answer a question the candidate has not asked themselves: why should I consider changing anything? Generic interest will not do it. The message needs to reference something specific enough to signal that Theo has genuine interest in their work rather than having simply found them in a search result. This is where the full five to ten minutes of research earns its keep.

The prompt shifts accordingly. For a passive candidate Theo writes something like: "This person has been at the same company for five years and is not actively looking. Draft a message that acknowledges their specific work, explains concretely why that work is relevant to what we are building, and invites a conversation, framed not as a sales pitch but as genuine peer interest in what they have done." The framing instruction matters as much as the content instruction, because the default register a model produces for a non-looking candidate tends to drift toward persuasion, and persuasion is exactly what makes a senior engineer close the tab.

An active candidate is a different problem. They are looking, they expect recruiting messages, and they are open to hearing about roles. The hook can be lighter because the barrier is lower. Theo's job shifts from convincing them to consider a move toward standing out among the messages they are already receiving and sounding like a real person while doing it. The prompt is correspondingly simpler: introduce the company, describe the role, explain why it looks like a match, warm and professional in tone, without the heavy personalization investment. Active outreach is faster per message because the person is already interested in moving, and recognizing which category someone falls into before you start is what lets you spend research time where it actually changes the outcome.

Batching Versus One-Off, and the Numbers Behind It

Volume and care are not actually in tension if the workflow is staged correctly. Theo's instinct had been to fully complete one message before starting the next: research Renee, draft Renee, edit Renee, send Renee, then start the next person cold. That maximizes context-switching, which is the slowest possible way to work. His revised workflow batches by task instead of by candidate. In one focused block he researches a set of 20 candidates and writes only the one-line hook for each into a spreadsheet column. In a second block he feeds the hooks through his template prompt to generate 20 drafts. In a third block he edits all 20, reading each from the candidate's point of view and asking a single question: could this have been sent to anyone else? If yes, the hook is too weak and goes back for more research.

Here are Theo's illustrative figures, his own numbers from before and after, presented as one sourcer's experience rather than a benchmark. Before the change, writing each message essentially from scratch with a generic AI draft took him about 11 minutes end to end, and at 80 messages that was roughly 14.5 hours a week with an 18 percent reply rate, or about 14 replies. After batching, research and hook writing average about 6 minutes per candidate, drafting through the template is near-instant in bulk, and editing runs about 2 minutes each, for roughly 8 minutes per message and about 10.5 hours for the same 80. The reply rate moved to 31 percent, about 25 replies. He recovered roughly four hours a week and nearly doubled his replies, and the lever was not AI doing more. It was AI doing only the drafting while his recovered time went into stronger hooks.

A/B Testing Reply Rates Without Fooling Yourself

Theo treats his template as a hypothesis, not a finished artifact. Each week he runs a deliberate A/B test: two skeletons that differ in exactly one variable, sent to comparable candidate pools, with the reply rate compared after the cohort has had a few business days to respond. The discipline is changing one thing at a time. When he tested a subject line built from the hook topic against a subject line naming the team and company, only the subject differed; the body was held constant, so the difference in replies could be attributed to the subject. Hook-topic subjects won, lifting opens enough to matter.

Two cautions keep the testing honest. First, sample size. A 22 percent versus 26 percent difference across 15 messages each is noise, not signal; Theo waits until each variant has at least 40 sends before he trusts a gap. Second, he resists over-optimizing for opens at the expense of replies, because a clickbait subject can raise opens while lowering replies from exactly the senior engineers he wants. The metric that pays his bills is qualified replies, so that is the metric the test is scored on. Winning variants get promoted into the template with a dated version note explaining what changed and why, which turns the template into a record of what actually works rather than a guess that ossified months ago.

Quality and Compliance Guardrails

Scaling outreach raises two risks that have nothing to do with reply rates, and Theo built guardrails for both before they bit him. The first is legal and jurisdictional. CAN-SPAM, the United States law recruiters often invoke nervously, governs commercial email; recruiting outreach is generally treated as transactional or relationship-oriented rather than commercial advertising, and InMail sent inside LinkedIn Recruiter is platform messaging rather than email entirely, so the CAN-SPAM checklist is largely beside the point for this channel. The rule that genuinely applies when Theo sources candidates in the EU is the GDPR. Processing a candidate's professional data for recruiting can rest on a legitimate-interest basis, but that basis is not a blank check: it obligates him to use only professional information relevant to the role, to be able to say where he found the candidate if asked, and to honor a request to stop and delete. He does not overclaim that any law forbids outreach; he stays within the basis that permits it.

The second risk is discrimination, and it is the one AI makes easier to stumble into. A personalization hook must be built only from job-relevant professional signal: published work, contributions, talks, projects, current scope. The model must never infer or reference protected-class information, and it must never be invited to. A hook that leans on a candidate's name to guess national origin, on a graduation year to estimate age, on a career gap to infer parental status, or on a photo to read gender or ethnicity is both ineffective and a legal liability. Theo's constraint block explicitly instructs the model to ignore any such signal even if it appears in the source material, and his editing pass checks that every hook traces back to something the candidate chose to publish about their work. The guardrail is simple to state and worth repeating: personalize on what someone did, never on who you think they are.

Three Anti-Patterns

Generic research. This is asking AI to draft personalized outreach without having done any research yourself, as in "draft a personalized outreach message to a backend engineer." It fails because the model will manufacture the personalization, and manufactured personalization reads as fake. "I noticed your work in Python" is the classic output: technically true, entirely generic, and a clear signal that nobody looked. Authentic outreach requires that you actually know something about the person. The fix is procedural rather than clever: always do five to ten minutes of research first, find one specific true thing about their work, and only then ask the model to draft from that real insight.

Overpromising. This is letting the model draft commitments you cannot keep, such as "we offer unlimited flexibility," "you would report directly to the CEO," or "we guarantee you will lead a team." It fails at the worst possible moment. The candidate replies, engages, and eventually discovers the promise was never real, at which point authenticity is dead and so is the relationship, and the damage extends past this one candidate to everyone they talk to. The fix is a standing negative constraint in every prompt: do not mention compensation, benefits, title, or reporting structure without my explicit approval, and describe only what we are building and the nature of the opportunity.

The mass-generated feel. This is running enough volume that the messages become detectably templated, with every message following the same structure and flow and only the name swapped. Candidates can tell, and what they conclude is not that you are busy but that you did not put thought into contacting them specifically, which puts your message in the same bucket as spam. The fix is variation with intent: a different insight for each candidate, a different hook shape for passive versus active, and a tone adjusted to the person. Templates are not the problem. Templates applied without variation are.

Practice

These build the system rather than producing one good message, which is the difference between a lucky week and a repeatable process.

  • Build your outreach template. Create a skeleton for your most common role with explicit variables for name, the specific work or project, why that work matters to you, the company introduction, and the call to action. Mark which variables are fixed and which change per candidate.
  • Research and draft one message end to end. Pick a real candidate, spend ten minutes researching, identify one specific genuine insight, write the prompt around it, generate the draft, then edit it. Note how long each of the four steps actually took you.
  • Write a passive and an active version. Draft one message to someone not actively looking and one to someone openly job searching, and articulate exactly how the hook strength, the framing, and the research investment differ.
  • Run the authenticity test. Write several messages from your template, then have a colleague read them from the candidate's perspective, or read them yourself the next morning. Does each feel written for one person, or could any of them go to anyone?
  • Iterate on tone. Draft a message and assess its register honestly. Too formal, too casual, too salesy? Revise it yourself or ask the model to revise with specific tone feedback until it sounds like you rather than like a template.
  • Build your constraint block. Write the standing list of banned words, the sentence cap, and the do-not-promise clause, then append it to every outreach prompt for a week and note what changes in the drafts.

Reflection

  • What is the highest-impact recruiting message you have ever sent, and what actually made it work: the research, the insight, the tone, or something else?
  • How much time do you currently spend on outreach, and what share of that is research versus writing? How would that split change if the model only ever drafted?
  • When you receive recruiting messages yourself, what makes you reply, and what makes you dismiss them as spam? What does that tell you about your own outreach?
  • How could you systematize your outreach so it is both efficient and personalized, rather than trading one for the other?
  • Look at your last five sent messages. Could any of them have been sent to a different person with only the name changed?

Glossary

  • Research. The work you do to understand a candidate before drafting anything: their background, specific projects, open-source contributions, current role, and stated interests.
  • Insight, or hook. A specific, genuine connection between what the candidate has done and why it matters to your company. It must be both true and unique to that person.
  • Template. A structured message format with variables for personalization, which enables high-volume outreach while preserving the parts that must differ per candidate.
  • Passive candidate. Someone not actively job hunting and not expecting recruiting messages. Requires a stronger hook and deeper research.
  • Active candidate. Someone actively looking, expecting recruiting messages, and open to new opportunities. Allows a lighter personalization approach.
  • Constraint block. The standing set of negative instructions appended to every outreach prompt: banned words, length cap, and the list of things the model may never promise.

Outreach sits inside a cluster of lessons that handle the steps immediately before and after the draft.

Closing

The best outreach scales through a system, not through doing everything by hand and not through handing the whole task to a model. Theo's system has four parts: a research routine, an insight identification habit, a draft prompt with its constraint block, and an edit checklist. Once those exist, volume stops being the enemy of quality, because the expensive part of each message is the only part he actually performs. That is leverage without losing the human element, and it is available to anyone willing to build the four pieces once rather than improvising each message.

Start smaller than 80. This week, pick five candidates worth contacting. For each, spend ten minutes researching, identify your insight, draft with your prompt, edit until it reads as authentically yours, and send. That is five genuinely personalized messages in roughly 75 to 90 minutes, which is the proof that the framework works before you scale it. Authentic outreach at scale is possible precisely because AI is a drafting partner rather than a replacement for thinking. Research, insight, draft, edit. Everything else in this lesson is detail hanging off those four words.

Key Takeaways

  • Follow the four-step framework in order. Research for five to ten minutes, identify one specific true insight, ask AI to draft from it, then edit for authenticity, voice, overpromising, and creepiness. This runs 10 to 15 minutes per message against 20 to 30 from scratch, roughly 40 to 50 percent faster, with personalization intact because it came from your research.
  • The hook is the lever, and only a human can supply it. A true, specific detail tying the candidate's actual work to the opportunity separates a read message from a deleted one. AI cannot manufacture a genuine hook; left to invent one, it produces a generic compliment the candidate can usually detect.
  • Build templates that isolate the one variable that changes. A good skeleton fixes the company, mission, and sign-off so your per-message effort goes entirely to the hook and the specific detail it references. The template makes the identical parts free, not every message identical.
  • Give the prompt all four elements. Context about who you are writing to and on whose behalf, the research you gathered, the insight stated explicitly, and constraints on tone, length, and what may never be promised.
  • Beat the AI tell with named constraints, not vague requests. Cap the length, ban the giveaway words, and forbid generic compliments. "Sound human" is too vague to act on; a list of banned tells and a sentence cap is not. Then vary structure and tone so the batch does not read as a batch.
  • Passive and active candidates need different approaches. Passive outreach demands a stronger hook, deeper research, and framing as peer interest rather than a pitch. Active outreach can be lighter and faster because the person is already open to moving.
  • Always constrain what the model may promise. Never let a draft commit you to compensation, benefits, title, reporting structure, or timeline. The promise surfaces later, and when it does, authenticity is gone.
  • Batch by task, not by candidate. Research all hooks, then draft all messages, then edit all messages. Staging the workflow removes context-switching and is what lets care and volume coexist.
  • A/B test one variable at a time and score on qualified replies. Hold everything else constant, wait for a real sample before trusting a gap, and optimize for replies rather than opens so a clickbait subject does not quietly cost you the candidates you want.
  • Know which law actually applies. CAN-SPAM governs commercial email and is largely beside the point for LinkedIn Recruiter InMail and relationship-oriented sourcing. For EU candidates, GDPR legitimate interest permits sourcing but obligates relevance, transparency about your source, and honoring deletion requests.
  • Personalize on what someone did, never on who you think they are. Build hooks only from job-relevant professional signal and instruct the model to ignore protected-class information even when it appears in the source. Inferring age, origin, gender, or family status is both ineffective and a legal liability.

Frequently Asked Questions

How do I tell whether an insight is strong enough to use as a hook? Apply Theo's editing question: could this exact sentence have been sent to a different candidate? If yes, it is not a hook, it is a compliment. "You have deep experience in distributed systems" fails, because it is true of everyone on his list. "Your write-up on why you moved off a particular consensus protocol matches a decision we are making this quarter" passes, because it names something only one person did. The test costs a few seconds and it catches the overwhelming majority of weak hooks before they go out.

Is it dishonest to use AI to write outreach at all? Not when the division of labor is right. The candidate is not owed the knowledge of which tool produced the sentence structure; they are owed a message that reflects genuine attention to them. If Theo did the research, formed the insight, and edited the draft until it sounds like him and says only true things, the message is honest. It becomes dishonest when the model supplies the personalization, because then the message claims an interest that nobody actually took. The line is not the tool, it is whether the specific claim about the candidate is real.

What if I genuinely cannot find anything specific about a candidate? That happens, particularly with people who do not publish, speak, or maintain a public profile beyond a job history. You have two honest options. You can build the hook from their trajectory rather than their output, since "five years at the same company building in this domain, and we are hiring for similar work with more scope" is specific and true. Or you can accept that this person warrants a shorter, plainly transactional message that does not pretend to a personalization you do not have. What you cannot do is ask the model to fill the gap, because it will, and the invention is detectable.

How many candidates can I realistically handle per week with this system? It depends on your mix of passive and active candidates, since passive outreach carries the heavier research cost. The honest way to answer for yourself is to run the framework on five candidates, time each of the four steps, and multiply. Theo runs 80 a week at roughly 8 minutes each after batching, but he sources one narrow discipline where the research is fast because his candidates publish. A sourcer working a market where candidates leave little public trail will land somewhere lower, and that is a real constraint rather than a discipline failure.

Does a low reply rate mean my hooks are weak, or my template? Test rather than guess, and change one thing at a time. If replies are low but opens are healthy, the subject line is working and the body is failing, which usually means the hook. If opens are low, the subject is the problem. Wait for at least 40 sends per variant before trusting any gap, and score on qualified replies rather than opens, because a subject line engineered for opens can raise your open rate while lowering exactly the replies you wanted.

Can I let the model see a candidate's full profile, including their photo and personal details? Be deliberate about this. The model should receive only job-relevant professional signal: published work, contributions, talks, projects, and current scope. Feeding it a full profile invites it to build a hook from a photo, a name, a graduation year, or a career gap, and hooks constructed from those signals infer protected-class information, which is both ineffective and a legal liability. Theo's constraint block instructs the model to ignore such signals even when they appear, and his edit pass verifies that every hook traces back to something the candidate chose to publish about their work.