ops-leadgen — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ops-leadgen (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
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.
Wraps my-project-leadgen CLI for the daily leadgen review-and-send loop.
Repo: ~/Projects/my-project-b2b-leadgen DB: ~/Projects/my-project-b2b-leadgen/leads.db (gitignored) Run with Doppler: doppler run --project my-project-b2b-leadgen --config dev -- my-project-leadgen <cmd>
| Argument | Action |
|---|---|
review (default) | Show pending drafts one-by-one, approve or skip |
send --draft-id N | Send a single approved draft (Rule-6 gated) |
usage | Print today's Apollo reveals + Apify runs |
scrape [--limit N] | Discover new NL HR contacts via Apollo |
enrich | Run Apify enrichment on unenriched leads |
draft | Generate Claude NL/EN drafts for undrafted leads |
NEVER send multiple drafts in one turn. Each send is a separate staged-draft → approval → send cycle.
my-project-leadgen review (or fetch pending drafts from DB directly)[Send] / [Skip] / [Stop review][Send]:a. Show complete draft one final time b. Wait for the owner to type ok / send / ship it — this creates /tmp/.claude-send-ok c. Run: doppler run --project my-project-b2b-leadgen --config dev -- my-project-leadgen send --draft-id N d. Confirm output shows Sent OK. Gmail message ID: <id>
# Step 1: discover contacts (costs Apollo reveals — check usage first)
doppler run --project my-project-b2b-leadgen --config dev -- \
my-project-leadgen usage
doppler run --project my-project-b2b-leadgen --config dev -- \
my-project-leadgen scrape --limit 50
# Step 2: enrich with Apify website crawler
doppler run --project my-project-b2b-leadgen --config dev -- \
my-project-leadgen enrich
# Step 3: generate Claude drafts
doppler run --project my-project-b2b-leadgen --config dev -- \
my-project-leadgen draft
# Step 4: review + send (Rule-6 gated, one at a time)
doppler run --project my-project-b2b-leadgen --config dev -- \
my-project-leadgen reviewleads.db daily_usage)usage first to check remaining reveals before scraping# Pending drafts count
sqlite3 ~/Projects/my-project-b2b-leadgen/leads.db \
"SELECT count(*) FROM drafts WHERE status='pending';"
# Today's sends
sqlite3 ~/Projects/my-project-b2b-leadgen/leads.db \
"SELECT d.subject, l.email, s.sent_at FROM sends s
JOIN drafts d ON d.id=s.draft_id
JOIN leads l ON l.id=d.lead_id
WHERE date(s.sent_at)=date('now');"Per CLAUDE.md Rule 6: every outbound send requires individual staging + approval. The my-project-leadgen send command physically blocks unless /tmp/.claude-send-ok exists. the owner creates this token by typing ok / send it / ship it in the chat. Token is one-shot — consumed on send. Next send needs a new approval.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.