| name | send-outreach |
| description | 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". |
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 mahashwetha91@gmail.com 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 "mahashwetha91@gmail.com" --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.txt exists
- 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.