Send outreach
Skill Mahashwetha/Job-search-email-system-claude/.claude/skills/send-outreach
This skill should be used when the user wants to send a cold outreach or follow-up email to an HR contact at a company. Triggers on phrases like "send outreach to [name] at [company]", "email HR at [company]", "send cold email to [name]", "outreach [company]", "send mail to [name] [email]", "reach out to [company] HR", "email [name] from [company]", "send outreach email", "send this week's outreach emails", "send weekly outreach", "send the drafted emails".From its SKILL.md
npx -y skills add Mahashwetha/Job-search-email-system-claude --skill send-outreachAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 8 stars8 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 4 commands, including `cd "C:\Users\mahas\Learnings\claude-job-agent"` and 3 more.
SKILL.md
4.1 KB, 933 tokens by cl100k_base, as published. Nobody here has run it
Send HR Outreach Email
Send a personalised cold outreach email with resume + portfolio attached using send_outreach_emails.py.
Script location
C:\Users\mahas\Learnings\claude-job-agent\send_outreach_emails.py
What you need from the user
| Argument | Required | Notes |
|---|---|---|
--name | Yes | HR contact full name (e.g. "Andrea Smith") |
--email | Yes | HR contact email address |
--company | Yes | Company name exactly as in tracker (used for role lookup) |
--cc | No | CC email address (e.g. second recruiter) |
If the user hasn't provided all required info, ask for it before running.
Steps
1 — Preview first (dry run to user's inbox)
Always send a test to [email protected] first so the user can approve the email:
cd "C:\Users\mahas\Learnings\claude-job-agent"
echo yes | python send_outreach_emails.py --name "[NAME]" --email "[email protected]" --company "[COMPANY]"
Show the preview output to the user and ask: "Looks good? Send to the real recipient?"
2 — Send to real recipient (only after user confirms)
cd "C:\Users\mahas\Learnings\claude-job-agent"
echo yes | python send_outreach_emails.py --name "[NAME]" --email "[EMAIL]" --company "[COMPANY]"
Add --cc "[CC_EMAIL]" if a CC was provided.
What the script does automatically
- Looks up the role from
List.xlsx(matches company name, status =done) - If found in tracker → fills
{role}placeholder with the actual role title - If not in tracker → sets role to
[Company] opportunities - Always uses
cold_outreach_template.txt(Jinka-style with bullet points) - Attaches both PDFs from
resume/folder - Shows full preview before sending
Rules
- Never skip the test send step — always preview to user's inbox first
- Never send to real recipient without explicit user approval after the test
- If the script errors on missing attachment, check that
resume/folder has both PDFs - If template not found, check that
emailoutreach/cold_outreach_template.txtexists - Do not hardcode HR contact details anywhere in code or skill files
- If the job listing URL returns 404 or any error (expired/taken down), do not send the outreach email — the role no longer exists. Either switch to the spontaneous template or skip entirely and notify the user.
Weekly draft mode — "send this week's outreach emails"
When triggered by "send this week's outreach emails", "send weekly outreach", or "send the drafted emails":
Step 1 — Read saved drafts
Check C:\Users\mahas\Learnings\claude-job-agent\outreach_drafts\ for *_draft.txt files saved by the weekly-hr-search routine.
Parse each file:
TO: {email}
SUBJECT: {subject}
---
{body}
Step 2 — Send one by one with confirmation
For each draft file, show the user:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
COMPANY: {company}
TO: {email}
SUBJECT: {subject}
---
{body}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Send this one? (yes / no / stop)
Wait for explicit user confirmation before sending each one.
- yes → send via
send_outreach_emails.py, then move to next draft - no → skip this draft, move to next
- stop → stop processing remaining drafts
Step 3 — Clean up sent drafts
After user confirms a draft was sent successfully, delete that _draft.txt file so it doesn't appear again next week.
Fallback — no drafts folder or empty
If outreach_drafts/ doesn't exist or has no draft files, fall back to the standard single-email flow and ask the user for --name, --email, --company.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.