17 AI skills for finding customers and making content
personalisation-line
make every template read like you wrote it by hand
How the two work together
Claude thinks it through. Paste the Claude prompt into Claude Code, or drop the folder into your skills folder. Claude does the judgement: what to look for, what is worth doing, what is right.
Codex gets it done. At the hand-off point Claude runs Codex on your machine with one command and passes it the Codex prompt. Codex does the mechanical part and hands the result back. Claude checks it before you see it.
No API key to set up: Claude calls the Codex you already have installed. If Codex is not installed, Claude does that half itself and tells you.
Prompt for Claude
---
name: personalisation-line
description: One personalised first line that makes templated cold email read as hand-written; for volume outreach to researched prospects.
---
# Get templated outreach answered like hand-written mail
Real-signal first lines, ready to send: 50 to 250% more replies than merge-field templates (Lavender, 231,818 emails).
## Claude does
1. Ask, one sentence each: what they sell, who to, the ask, the tone. Per prospect: name, company, raw material (About page, posts, news, job adverts). Guess nothing.
2. Research by Lavender's 5x5x5: five minutes, five sources, stop.
3. Rank facts: Level 1 random, 2 company, 3 recent, 4 recent and tied to the user's problem. Keep the highest; below 3, skip. Situation signals (hiring, funding, site change) beat compliments.
4. Decide Y, in the user's words, for "I saw X, and I believe you are dealing with Y" (Lavender). "So what?" test: X must point at Y, else back to 3.
5. Record: lead_id, name, company, signal_type (post, news, hiring, tech, profile, mutual), verbatim evidence (exact words or dated change), implication, status ok or skip.
## Then Codex does
Codex fits each signal and implication into a situation line plus a second option under hard caps, varying structure, and writes JSON and CSV: bulk work, nothing to decide.
```
codex exec --sandbox danger-full-access --skip-git-repo-check -C "<working folder>" - < CODEX.md
```
Fill in: {WE_SELL}, {ICP}, {OFFER}, {TONE}, {SIGNALS} (step 5 records), {OUTPUT_FOLDER}.
## Claude checks
1. Same lead_ids as {SIGNALS}, same order, skips kept.
2. Deletion test: cover the line, read the rest; still fine means decorative, fail.
3. Every fact traces to the verbatim evidence; one invention fails the row.
4. Under 25 words, their situation first, no sender or product, clean hand-off.
5. No banned opener, attention hack, AI tell or repeated shape.
6. Five random rows as the recipient: obvious why this person wrote, not creepy.
Only failing rows go back, with reasons; twice failed becomes skip.
## Rules
- Personal means specific, recent, about them: something you could only know by looking.
- Post: three to six of their words, quoted. Change: dated. Profile detail: unusual. Connection: real.
- Never "I see you work at X", "Impressive background", the headline, {{FirstName}} and {{Company}} (Level 1, 5% lift), "I hope this email finds you well", "Allow me to introduce myself", "My name is", "I wanted to reach out" or "I saw your LinkedIn profile".
- No praise, attention hack or product opener: their world first, you over we; generic personalisation is worse than none.
- One signal, one detail; over-personalising reads creepy and blurs the ask.
- Public information only; thin data means skip, never a guess; the line goes out in the user's name. One sentence under 25 words; anyone-else-unchanged means rewrite.
- No leverage, synergy, ecosystem, em dashes or repeated patterns.
- Line only, never the whole email, three fields maximum; 25 of 100 points, no rescue for a weak list or offer.
## If Codex is not installed
Claude does the Codex section itself and says so.
## Built from
- coreyhaines31/marketingskills, https://github.com/coreyhaines31/marketingskills/blob/main/skills/cold-email/SKILL.md, 46,908 stars (api.github.com, 5 Sep 2026).
- alirezarezvani/claude-skills, https://alirezarezvani.github.io/claude-skills/skills/marketing-skill/cold-email/, 25,542 stars.
- growthenginenowoslawski/coldoutboundskills, https://github.com/growthenginenowoslawski/coldoutboundskills/blob/main/skills/campaign-copywriting/SKILL.md, 680 stars, 1,000+ real campaigns.
- Clay blog, https://www.clay.com/blog/ai-email-personalization-examples, official blog, 24 prompts.
- Instantly, https://instantly.ai/prompt/personalized-cold-email-first-line-generator-sales, 5,465 recorded runs.
- Lavender, https://lavender.ai/blog/how-to-build-a-cold-email-personalization-process, 231,818-email benchmark.
Prompt for Codex
# Get templated outreach answered like hand-written mail - Codex task
Everything you need is below; you have no memory of the conversation behind it. Do not browse or ask.
## You are given
- {WE_SELL}: what the sender sells; context only, never in a line.
- {ICP}: who they sell to.
- {OFFER}: the ask the email makes.
- {TONE}: casual, formal or peer-to-peer.
- {SIGNALS}: JSON array, one object per prospect: lead_id, name, company, signal_type (post, news, hiring, tech, profile, mutual), signal (verbatim evidence: exact words or a dated change), implication (the problem it points at, in the sender's words), status (ok or skip).
- {OUTPUT_FOLDER}: where to write.
## Produce
In {OUTPUT_FOLDER}:
1. personalisation-lines.json: same lead_ids, same order, each with lead_id, name, company, source (signal_type unchanged), status, situation_line, second_option.
2. personalisation-lines.csv: same rows, header lead_id,name,company,source,status,situation_line,second_option; text fields double-quoted, inner quotes doubled.
Per ok prospect:
- situation_line: one sentence stating their exact situation (the signal) and bridging to the implication. Complete "I saw X, which usually means Y" with keywords from signal and implication only; vary the frame, never the facts. Under 25 words, under 15 better. Opens on them. Ends so the sender's next sentence follows without a jolt.
- second_option: same caps, a different angle on the same signal (a question exposing the gap, or the implication first), not a rewording.
Per skip prospect, or empty signal or implication: status skip, both text fields "<fields cannot be generated - skip>".
## Rules
1. Never fabricate: only facts in signal and implication; thin data means skip, not a filled gap.
2. Post lines quote three to six of their exact words; change lines carry the date; profile and mutual lines name the specific detail.
3. Never "I hope this email finds you well", "Allow me to introduce myself", "My name is", "I wanted to reach out", "I saw your LinkedIn profile", "I see you work at X" or "Impressive background". Never mention {WE_SELL} or any product.
4. No compliment unconnected to the implication.
5. No leverage, synergy or ecosystem. No em dashes; full stops or commas.
6. Vary the opening word and structure across prospects; no repeated pattern.
7. One signal per line; never combine two.
8. Could it go to anyone else unchanged? Rewrite until not.
9. Match {TONE}. British English.
## Return
Print, in order:
1. `rows: N, ok: N, skip: N` and both file paths.
2. `longest line: N words`.
3. First three words of every ok situation_line, one per row, to expose repeats.
4. Five random rows in full, for spot-check.
5. Any lead_id set to skip that arrived ok, with the reason.
6. The complete JSON.
Then print DONE.
Built from the best public work on this
Sources for the personalisation line skill
All opened and checked on 5 Sep 2026. Star counts are from api.github.com on that date. Only sources that survived the check and are confirmed are listed.
Built from
- coreyhaines31/marketingskills, cold-email SKILL.md and references/personalization.md, https://github.com/coreyhaines31/marketingskills/blob/main/skills/cold-email/SKILL.md (46,908 stars, 7,312 forks, pushed 3 Sep 2026): the deletion test, the "So what?" test, the four-level ladder, the ~5% merge-tag lift, the research-signal table and the "What feels fake" list.
- alirezarezvani/claude-skills, cold-email, https://alirezarezvani.github.io/claude-skills/skills/marketing-skill/cold-email/ (25,542 stars, 3,607 forks, pushed 30 Aug 2026): the banned-opener list with the reason each fails, "generic personalisation is worse than none", the hiring-to-problem bridge.
- growthenginenowoslawski/coldoutboundskills, campaign-copywriting and personalization-subagent-pattern skills, https://github.com/growthenginenowoslawski/coldoutboundskills/blob/main/skills/campaign-copywriting/SKILL.md (680 stars, 243 forks, pushed 18 Aug 2026, "built by GrowthEngineX from patterns across 1,000+ real B2B campaigns"): "Line 1: Situation Recognition (1 sentence)", 25 of 100 points, never fabricate, skip token on missing data, word cap, banned words, no em dashes, JSON out, five-lead spot-check, three fields maximum, keep copy static when the AI line fails QA.
- Clay blog, Eric Nowoslawski, "24 AI Email Personalization Examples for Cold Outreach (With Prompts)", https://www.clay.com/blog/ai-email-personalization-examples (Clay's official blog, 9 Apr 2026, 24 prompts with example outputs): signal Levels 1 to 4, the attention-hack warning, the input-guardrails-prefix prompt shape that stops hallucination.
- Instantly prompt library, "Personalized Cold Email First Line Generator (Sales)", https://instantly.ai/prompt/personalized-cold-email-first-line-generator-sales (5,465 recorded runs): the hard word cap and the rule that line one must hand off into line two without awkwardness.
- Lavender, Will Allred, "How to Build a Cold Email Personalization Process", https://lavender.ai/blog/how-to-build-a-cold-email-personalization-process, with the Cold Email Benchmark Report, https://lavender.ai/blog/the-cold-email-benchmark-report (231,818 cold emails from about 50,000 inboxes, data as of 4 Feb 2026): "I'm reaching out because I saw x, and I believe you're dealing with Y", the 5x5x5 research routine, the over-personalisation warning, the 50% to 250% reply lift.
Supporting data, no technique taken: Woodpecker cold email statistics, https://woodpecker.co/blog/cold-email-statistics/ (20M+ emails, updated 23 Jun 2026): advanced personalisation replies at roughly 17 to 18% against 7 to 9% for basic, and only 5% of senders personalise every email.
Not used: Josh Braun, "Killer Cold Email Opening Lines", https://joshbraun.com/killer-cold-email-opening-lines/. Reputation only, no metric, so it carries no weight here even though its do and don't list agrees with the sources above.
Best public prompt we found for this job
From growthenginenowoslawski/coldoutboundskills, personalization-subagent-pattern skill:
Quoted exactly as published, including its two em dashes:
```
You are personalizing cold email fields for N leads.
CONTEXT:
- We sell: <one sentence from client-profile.yaml>
- Our ICP: <one sentence>
- Our offer: <the CTA we're asking them to respond to>
- Tone: <casual | formal | peer-to-peer>
FIELDS TO GENERATE (per lead):
- situation_line: <definition + 1 good example + 1 bad example>
- value_line: <definition + 1 good example + 1 bad example>
- cta_soft: <definition + 1 good example + 1 bad example>
RULES:
1. Never fabricate facts. If the company description is thin, say something generic but not false.
2. Never use em dashes (—). Use periods or commas.
3. Never use the word "leverage", "synergy", "ecosystem".
4. Maximum length: <N words per field>.
5. If a lead is missing company_description, return "<fields cannot be generated — skip>"
LEADS:
<JSON array>
RETURN:
A JSON array with the same lead_ids and the personalization fields. Save to /tmp/personalization-<batch-id>.json and print "DONE" when complete.
```
Our CODEX.md keeps this prompt's shape (context, fields, rules, leads, return) and narrows it to the one field the giveaway promises, the situation line, with the signal and implication chosen by Claude first so Codex has nothing to invent.
Want this running in your business?
I optimise how businesses run — your sales, your visibility, your social media — and build bespoke software where nothing off the shelf fits. The first conversation is free. Work starts from £150 a day.
Foxera