Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add spirosbax/insaight --skill draft-outreachgit clone --depth 1 https://github.com/spirosbax/insaightWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/spirosbax/insaight/draft-outreach)<a href="https://agentmods.dev/skills/spirosbax/insaight/draft-outreach"><img src="https://agentmods.dev/badge/skills/spirosbax/insaight/draft-outreach/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/spirosbax/insaight/draft-outreach"><img src="https://agentmods.dev/badge/skills/spirosbax/insaight/draft-outreach.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00210 | $0.01426 |
| Opus 5.5 | $0.00084 | $0.00570 |
| Sonnet 5.5 | $0.00042 | $0.00285 |
| Haiku 4.5 | $0.00021 | $0.00143 |
Grade A, and why
draft-outreach scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 13d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 137 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Insaight — Draft Cold Outreach
Craft personalized cold messages from three inputs:
- The intelligence brief from a prior research skill (conversation context).
- The learned memory —
insaight:get_memory()returns the distilled style guide (the user's voice) and playbook (strategies with reply-rate evidence). - The outreach ledger — prior-contact check via
insaight:list_outreach().
All tools must be loaded first via tool_search(query="insaight").
Step 1 — Verify research exists
Look in the conversation for:
👤 Role & Context+🪝 Outreach Hooks(person research), OR🏢 Company Snapshot+🎯 Prospect Evaluation(company research).
Without a brief there is nothing to personalize with, and a generic message sent under the user's name costs them more than sending nothing. Stop and offer the research instead:
"I don't have research on this person/company yet. Want me to run insaight-research-person or insaight-research-company first?"
Step 2 — Load the memory (STYLE + PLAYBOOK)
insaight:get_memory()
Read the memory rather than trawling raw sent history. The memory is what earlier reflection runs distilled from messages the user approved and from outcomes that actually landed; raw history is unfiltered and pulls a draft toward whatever the most recent message happened to sound like.
- If
style_learnedis true: treat the style file as the voice source of truth and follow it closely — it was distilled from real approved sends. - If
playbook_learnedis true: prefer hooks and variants the playbook marks as working, treat its "hypotheses" as worth testing, and leave anything in its "Retired" section alone — it was retired because it stopped working. - If neither is learned yet (fresh install): fall back in this order —
(a)
insaight:list_outreach(limit=10, full=true)to read recent real sends, (b) the user's Notion outreach log if one is configured (get_config()→ NOTION_OUTREACH_LOG), (c) the fallback principles in Step 4. Mention once: "No learned style memory yet — after a few logged sends and outcomes, run insaight-reflect and drafts will match your voice."
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 13d ago First seen · 137 lines · 210 tokens per session scan A 63adecf27a1d
draft-outreach is a skill published in the GitHub repository spirosbax/insaight (33 stars, last pushed 19d ago), licensed MIT. It adds 210 tokens to every session and 1,426 once invoked, about $0.0008 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-14.
Other skills, from other repositories
linkedin-outreach
Use when running LinkedIn social selling as a repeatable motion — Sales Navigator saved searches and trigger alerts, weekly request budgets, fixing a low acceptance rate, turning profile views and post engagers into warm threads, logging every touch. NOT the note or DM copy (that is cold-outreach), NOT the deal after…
driver
You are the brain driving a LinkedIn outreach framework over MCP. The framework is the hands and a server-side safety gate. You do the reasoning and write the copy; the gate decides what actually sends. Your job is to run one bounded cycle of outreach for a single account and then stop.
recruit-outreach
Personalized Recruiting Outreach — LinkedIn InMail templates, cold email, second-touch follow-ups customized to the candidate's background.
linkednav
Run LinkedIn outreach on the user's own LinkedNav account through the LinkedNav MCP server. Use when the user wants their outreach audited, a campaign created, launched, paused or diagnosed, leads found from buying signals, outreach messages written, replies read or answered, contacts enriched, or results reviewed…
linkedin-outreach
LinkedIn outreach across connection requests, InMails, comment engagement, and DM sequences.
outreach-message-skill
When a LinkedIn prospect connects, updates their status in the master tracker, creates their outreach message file, and generates a ready-to-post comment on their latest post.