send-outreach — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited send-outreach (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
A bulleted imperative like {match} tells the agent to never reveal, disclose, or mention something to the user. Used adversarially it can instruct the agent to hide its tool calls or lie about what it did — stripping the transparency a user relies on to trust the agent.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Send a personalised cold outreach email with resume + portfolio attached using send_outreach_emails.py.
claude-job-agent\send_outreach_emails.py| 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.
Always send a test to your own address (recipient_email in config.py) first so the user can approve the email:
cd 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?"
cd 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.
List.xlsx (matches company name, status = done)email_followup_template.txt ("I recently applied for the {role} role...") — never the agency-flavored cold outreach template[Company] opportunities and uses email_cold_outreach_spontaneous_template.txtresume/ folderresume/ folder has both PDFsemailoutreach/email_cold_outreach_template.txt existsemailoutreach/: linkedinoutreach_followup_template.txt (checking status on an application) and linkedinoutreach_coldintro_template.txt (plain cold outreach, no application)Per user instruction (2026-08-17): drafts to known/verified HR contacts are sent automatically, no per-email confirmation. This applies to drafts produced by the weekly-hr-search routine, and to any future "draft outreach then send" workflow unless the user says otherwise.
When triggered by "send this week's outreach emails", "send weekly outreach", "send the drafted emails" — or automatically at the end of the weekly-hr-search routine right after drafts are written:
Check claude-job-agent\outreach_drafts\ for *_draft.txt files.
Parse each file:
TO: {email}
SUBJECT: {subject}
---
{body}For each draft, send via send_outreach_emails.py (or an equivalent direct SMTP send of the draft's own SUBJECT/body, which was built from email_followup_template.txt for tracked roles or email_cold_outreach_spontaneous_template.txt otherwise; never email_cold_outreach_template.txt) — no confirmation prompt, no dry-run-to-self step.
Do NOT send, and instead note as skipped in the receipt (see Step 4), if:
[email protected] was flagged "undeliverable" by Hunter, sent anyway, and did in fact bounce/get flagged by Netatmo's mail server — so trust the verifier's "invalid/undeliverable" status and skip rather than guess-and-send.After a draft sends successfully, delete that _draft.txt file so it doesn't appear again next week.
After sending (or attempting) all drafts, send a plain-text receipt to your own address (recipient_email in config.py) listing, for every email actually sent:
And for anything skipped: company, reason skipped.
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.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.