outreach-personalize

Solid

Personalizes a sequence at scale without inventing anything. Handles both shapes: a personalized opening line inside written copy, and a whole message written per person and pushed into a custom variable. Decides what can genuinely vary row by row and what must stay a segment, ranks the sources (role and company, recent LinkedIn content, company news, technology used), writes AI variables with fallbacks that cannot break when the data is missing, refuses fabricated personalization, states what the generation costs and where it runs before starting it, and forces a quality review on a 20 row sample before generating the other thousand. Also covers spintax and when it actually helps. Produces the personalization columns in outreach/leads.csv with their source and date. Triggers on: personalize, personalization, personalisation, icebreaker, ice breaker, first line, AI variable, custom variable, merge tag, merge field, fallback, spintax, variables, mass personalization, personalization at scale, accroche, message

AI & Automation 12 stars 2 forks Updated 2 days ago MIT

Install

View on GitHub

Quality Score: 82/100

Stars 20%
37
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

# Personalize at scale ## What this does Fills the per contact parts of a sequence: the icebreaker sentence, the cleaned company name, the whole message when the campaign is written one person at a time, and any other custom variable the copy uses. It writes those columns into `outreach/leads.csv` with the source and the date behind each one, so every sentence you send can be traced back to something somebody actually read. ## When to use it Use it after the copy exists and before the campaign is built, because the copy tells you which variables are needed and the coverage tells you whether the copy can use them. Use it again when a list ages and the icebreakers no longer match reality. Use a different skill when: you are writing the sentences of the sequence itself ([outreach-write](../outreach-write/SKILL.md)), splitting a list into segments (`outreach-filter`), or finding emails and phone numbers (`outreach-enrich`). ## Inputs | Input | Where it comes from | If it is missing | |---|---|---| | The list | `outreach/leads.csv`, one row per contact | Stop, there is nothing to personalize | | The mode | `outreach/sequence.md` header line `Mode:` | Ask. A means a whole message per person, B means two variants and only small variables | | The variables the copy uses | `outreach/sequence.md` header line `Variables used:` | Read the `{{...}}` tokens out of the body | | Source material per row | LinkedIn URL, company website, news, job posts already in the list | Leave the ro...

Details

Author
emelia-io
Repository
emelia-io/claude-outreach
Created
3 days ago
Last Updated
2 days ago
Language
Python
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Solid

outreach-write

Writes the copy of a cold outreach sequence: the angle, the subject lines, the opening line, the proof, the ask, the follow-ups and the break-up. Picks between one message written per person and pushed into a custom variable, and two A/B variants that test genuinely different approaches. Prices the generation before it starts, because a thousand per contact messages do not fit in a Claude Code subscription. Holds two house prompts that write those per contact messages, one for email and a separate one for LinkedIn, where you do not sign, you end on a question, you drop the closing formula and you barely introduce yourself because the profile is one click away. Asks the four questions it needs first: the language, the formal or informal you for languages that make the distinction, the gender of the person signing because the grammar agrees in French and it is never guessed from a first name, and the rules for that language. Lays out the step body the way Emelia actually sends it: the message, then the signatur

12 Updated 2 days ago
emelia-io
AI & Automation Listed

ai-personalization

Use when a sequence needs genuine per-prospect openers written from real research — not mail-merge variables (Education). Runs on the Growth (Verbiflow) MCP.

1 Updated 1 months ago
bowtiefunnel
AI & Automation Solid

outreach-sequence

Designs the multichannel flow of a campaign, starting from one of Emelia's five real campaign templates (Pure Cold Email, Pure Linkedin basic, Pure Linkedin Premium with InMail, LinkedIn then Email, Email then LinkedIn) rather than from a blank tree, and picking the template mechanically from the email and LinkedIn coverage the enrichment actually produced. Then: which steps exist in Emelia (email, LinkedIn visit, invitation, message, InMail, manual call task), how conditions and branches work (invitation accepted, email bounced, link clicked, reply received, contact fields such as the email and the LinkedIn profile URL), the delays that work and why, a clean A/B test with a sample size that makes the result mean something, what goes in the body of an email step (the message or its custom variable, then the signature, then a real unsubscribe link from step 2 on), and the conditions that stop a contact or stop the campaign. Produces outreach/campaign.json, the spec that outreach-campaign turns into a real camp

12 Updated 2 days ago
emelia-io