Simon SkadeLinkedIn

Outreach pipeline

Your first round of outreach

This is a method for a first round of personalized outreach at scale. You have a list of people you want to reach; instead of one generic mass email, each person gets a short note written to their specific role and interests — drafted for you by Claude, and sent by you in safe, paced batches. It works for any outreach where the personal touch matters: sales, partnerships, recruiting, press, advocacy.

New here? Set up the CRM first — the setup guide is here.

The idea

Overview

The end result: each person on your list gets a short, formal email that opens with a sentence about their own role, connects your topic directly to their work, and asks for a short meeting. The opener is written per person; the rest of the email is the same for everyone and written by you. (The worked example throughout is one of mine — reaching a parliamentarian about AI risk — but swap in your own topic and audience.)

The flow, in order:

  1. Have Claude build the contact list in your CRM (names, emails, correct salutations, roles).
  2. Write your standard email once, and make it good.
  3. Have Claude write a personalized opener for each person and export everything to a CSV.
  4. Get a Gmail app password for sending.
  5. Fill in the send script, test it on yourself, then send in batches.

Step 1

Build the contact list

First get everyone into the CRM with the few fields the outreach needs: full name, a verified email, the correct way to address them (including any title), and their role. These are quick to look up, so Claude can do the whole list in one go — and it should use sub-agents to research many people in parallel.

Prompt for Claude

Research everyone in [my target group / list] and create one CRM note per person. Use sub-agents to work through them in parallel. For each person capture: full name, verified email (never guess from a pattern), their organization or affiliation, their role/position, the area they are responsible for, and the correct formal salutation including any title (e.g. "Dear Dr. Müller"). Also note in one line anything relevant they have said publicly about [my topic]. Pull from official, primary sources only.

Emails must be the real, published addresses — a low bounce rate matters. Tell Claude not to guess addresses from a pattern.

Step 2

Write your email

Your email has two parts: a personalized opener (one paragraph, different for each person — Claude writes these in step 3) and a standard body that is the same for everyone. Write the standard body yourself and make it genuinely good; it is the heart of the email. Keep it concise, credible, and specific, and end with a clear, low-friction ask (a 30-minute meeting).

One sentence belongs in your first paragraph: a brief self-introduction and your ask (mine was "As an AI safety researcher and head of a citizens' initiative, I would like to speak with you about the risks of near-future AI systems."). It depends on who you are, so add it to your body yourself — Claude leaves it out of the per-person openers.

Below is one real example — mine, reaching a parliamentarian about AI risk (translated to English). Yours will be about your own topic and audience; this is not a template to copy, it just shows the shape and tone that worked. The first paragraph is the per-person opener; everything after it is the standard body:

Dear Mr. [Surname],

As State Secretary at the Federal Ministry of the Interior, you carry responsibility for public safety, civil protection, and the federal police. AI systems are increasingly used across all of these areas and at the same time create novel risks, and assessing them requires an up-to-date picture of where the technology stands. ← personalized opener

As an AI safety researcher and head of a citizens' initiative, I would like to speak with you about the risks of near-future AI systems. For the past four years I have researched AI safety, including as a fellow of the SERI MATS research program in Berkeley and as a grantee of the Long-Term Future Fund. Today I lead the citizens' initiative PauseAI Germany, which recently organized an appeal in which 152 German professors, including Fields Medalist Peter Scholze, called for an international AI safety agreement.

Behind the AI progress of recent years lies a robust trend: the capabilities of AI systems are rising exponentially. Experts expect AI could take over most cognitive tasks within a few years, and the investment reflects it: in 2025 alone, over $400 billion went into AI infrastructure. World-leading researchers such as Nobel laureate Geoffrey Hinton urge governments to address the major challenges of AI as fast as possible.

I would be glad to give you a compact overview of where AI development stands, the most pressing safety questions, and possible policy options. I am very happy to speak with your staff as well. Feel free to propose a time for a 30-minute conversation.

Kind regards,
Simon Skade · Head, PauseAI Germany

My own email also ends with whatever disclosure my context requires (for political outreach in Germany, a one-line lobbying-register line), and where it helps, names a contact I had already reached in the recipient's own circle. Include whatever yours requires.

If your outreach is political advocacy, the Torchbearer Community's Direct Institutional Plan training walks you from your first email to your first meeting with policymakers, with templates and feedback.

Step 3

Personalize and export to CSV

Now have Claude write the per-person opener for everyone, again with sub-agents in parallel, and export a CSV. Each opener follows the same shape as the example: name their role and what they are responsible for, then connect your topic specifically to that field. Your own intro-and-ask sentence (from step 2) follows it in the body.

Prompt for Claude

For everyone in the CRM, write a personalized opening paragraph for the outreach email. Use sub-agents to work through them in parallel. For each person: 1. From their CRM note (verify with a quick web search if needed), take their current role and the main area they are responsible for or care about. 2. Write two formal sentences in [my language]. Sentence one names their role and the concrete area they shape — vary the wording across people (e.g. "As …, you are responsible for …", "As a member of …, you deal with …", "As head of …, you have long worked on …") so the emails do not read as templated. Sentence two ties [my topic] directly to that exact area: why it matters to what they do, concrete to their field, no generic filler, no invented facts. Do not add a self-introduction or an ask — that sentence is the same for everyone and lives in the standard body. If a person has verifiably said something relevant, you may weave in one short, accurate reference. Then export a CSV with columns: email, name, salutation, personalization.

Check the personalizations before sending — they will not all be good. Claude's openers can be generic, repetitive across people, subtly wrong about someone's role, or stretch for an angle that does not really fit. Read through them (the preview and test steps below help), and if a batch reads weak or templated, adjust the prompt and regenerate. It is worth a few iterations: the opener is the first thing every recipient reads.

The CSV the script expects looks like this (one row per person):

email,name,salutation,personalization
jane.doe@example.com,Jane Doe,Dear Dr. Doe,"As head of ..., you ... [your topic] ..."
Optional, advanced — probably not important

You can have Claude add a closing line naming one or two people in the recipient's own organization that you have already contacted ("I have already reached out to your colleagues X and Y"). Otherwise you may often get referred onward to whoever owns that topic, and saying it up front can head that off. It only works if you know who a given person tends to forward you to — which you can often guess after a bit of research. Keep it in a separate column if you use it.

Step 4

Get a Gmail app password

The script sends through Gmail's mail server, which needs an app password — a separate 16-character password just for sending. This is not your normal Google password, and it is a different thing from the Gmail connector Claude uses to make drafts. To create one:

  1. Turn on 2-Step Verification for the Google account you send from (Google Account → Security). App passwords only appear once it is on.
  2. Go to myaccount.google.com/apppasswords, enter a name like "outreach script", and generate it.
  3. Copy the 16-character password. You will paste it into the script in the next step.

Keep the app password to yourself — paste it only into the script on your own machine, never into a chat with Claude. The script has a blank field for it for exactly this reason. If you use a Google Workspace address, your admin may need to allow app passwords. See Google's app password help.

Step 5

Test, then send in batches

The send script reads your CSV, builds each email (salutation + personalized opener + the standard body), and sends them a few seconds apart. It runs entirely on your machine — Claude never touches your app password. Download it and open it in any editor: fill in the CONFIG block, and write your standard email (everything below the personalization, including your signature) into the build_email() function just beneath it — you can have Claude do that for you.

SENDER_EMAIL   = ""          # the address you send from
APP_PASSWORD   = ""          # the 16-char app password from step 4 (keep secret)
SENDER_NAME    = "Your Name"
SUBJECT        = "Your subject line"
CSV_PATH       = "outreach.csv"
TEST_RECIPIENT = ""          # your own address, used by --test
DELAY_SECONDS  = 6           # pause between sends

# Your actual email lives in build_email() just below the config: the
# salutation and personalization are filled per person; you (or Claude)
# write the standard body and signature there once.
Download script

Then preview, test on yourself, and send — one flag at a time:

python3 send_outreach.py --preview          # write every email to preview.txt (sends nothing)
python3 send_outreach.py --test             # send a couple to your own address
python3 send_outreach.py --send             # send for real (asks you to confirm)
python3 send_outreach.py --send --limit 60  # send the next 60, then stop

Every address it sends to is recorded in sent_emails.json, and already-sent contacts are skipped. So you can send a first batch with --limit, watch the early replies, then simply run --send again later to continue with whoever is left — no one is emailed twice, even if a run is interrupted. The few-second spacing keeps you well under Gmail's sending limits.

Then

After sending

Replies will start arriving — meeting offers, polite declines, referrals, questions. That is where the CRM's skills take over: run /process-inbox-[name] to sort the replies, schedule meetings, and draft answers, then /meeting-preparation-[name] and /meeting-follow-up-[name] around each meeting. See How to use it in the setup guide.

Questions, or want a hand?

This is the outreach process I use. If you want help adapting it, message me on Signal (username SimonSkade.01) or email simonskade42@gmail.com. I can also add you to a small group of people running this kind of outreach.