agentsclimarketplace

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.

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.

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

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.

Keep looking

Skills are one crate of 328,083. 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.