Send outreach
Skill Mahashwetha/Job-search-email-system-claude/.claude/skills/send-outreach
Automated daily job search pipeline — aggregates company tracking, sends styled HTML email digests, tailors resumes with Gemini AI, drafts LinkedIn outreach messages, and scans remote job APIs for given location. Hot jobs for the given role and many features are made as claude skills too newly.
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.
One thing 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.
What its author says it does
Copied from the file, not written here
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".
SKILL.md
4.1 KB, 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.