AgentStack
SKILL verified MIT Self-run

Send Outreach

skill-mahashwetha-job-search-email-system-claude-send-outreach · by Mahashwetha

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 outrea…

No reviews yet
0 installs
10 views
0.0% view→install

Install

$ agentstack add skill-mahashwetha-job-search-email-system-claude-send-outreach

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Send Outreach? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

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.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.