agentsclimarketplace

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

Install
npx -y skills add Mahashwetha/Job-search-email-system-claude --skill send-outreach

Assembled 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

ArgumentRequiredNotes
--nameYesHR contact full name (e.g. "Andrea Smith")
--emailYesHR contact email address
--companyYesCompany name exactly as in tracker (used for role lookup)
--ccNoCC 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.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.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.