agentleFS
f13if13i/cold-email/SKILL.md

cold-email

Skill0 starsChanged 3 months agoMITView on GitHub

Draft, grade, and refine cold outreach emails for f13i consulting prospects. ALWAYS use this skill when Farhan asks to write a cold email, pitch email, outreach message, or LinkedIn message to a prospect. Also trigger when grading an existing email draft, identifying a prospect from a job posting, applying the JD-to-client playbook, or checking for warm signals before outreach. This skill codifies the full f13i outreach system: warm signal check, hook selection, draft, grade, and refine.

97 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use free-tools, popups and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • CesarjoquinSkill

    free-tools

    When the user wants to plan, evaluate, or build a free tool for marketing purposes — lead generation, SEO value, or brand awareness. Also use when the user mentions "engineering as marketing," "free tool," "marketing tool," "calculator," "generator," "interactive tool," "lead gen tool," "build a tool for leads," "free resource," "ROI calculator," "grader tool," "audit tool," "should I build a free tool," or "tools for lead gen." Use this whenever someone wants to build something useful and give it away to attract leads or earn links. For downloadable content lead magnets (ebooks, checklists, templates), see lead-magnets.

    Also in 25 projects that use this

  • CesarjoquinSkill

    popups

    When the user wants to create or optimize popups, modals, overlays, slide-ins, or banners for conversion purposes. Also use when the user mentions "exit intent," "popup conversions," "modal optimization," "lead capture popup," "email popup," "announcement banner," "overlay," "collect emails with a popup," "exit popup," "scroll trigger," "sticky bar," or "notification bar." Use this for any overlay or interrupt-style conversion element. For forms outside of popups, see cro. For general page conversion optimization, see cro.

    Also in 23 projects that use this

  • coreyhaines31Skill

    marketing-council

    When the user wants multiple expert perspectives on a marketing question — a simulated board of advisors staffed by legendary marketers (Seth Godin, David Ogilvy, Eugene Schwartz, April Dunford, Rory Sutherland, Alex Hormozi, Byron Sharp, and more). Also use when the user mentions 'marketing council,' 'board of advisors,' 'advisory board,' 'what would Seth Godin say,' 'what would Ogilvy think,' 'channel Hormozi,' 'get multiple perspectives,' 'debate this,' 'have the council review,' 'marketing mentors,' or asks how a famous marketer would approach their problem. The council gives each advisor's take through their documented frameworks, surfaces where they disagree, and synthesizes a recommendation. For executing the winning direction, hand off to positioning, offers, copywriting, ads, or the relevant skill.

    Also in 18 projects that use this

  • Hussain-ElfalahSkill

    andreessen

    Also in 4 projects that use this

  • Hussain-ElfalahSkill

    business-investment-advisor

    Also in 4 projects that use this

  • roerohanSkill

    emails

    When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email program. Also use when the user mentions "email sequence," "drip campaign," "nurture sequence," "onboarding emails," "welcome sequence," "re-engagement emails," "email automation," "lifecycle emails," "trigger-based emails," "email funnel," "email workflow," "what emails should I send," "welcome series," or "email cadence." Use this for any multi-email automated flow. For cold outreach emails, see cold-email. For in-app onboarding, see onboarding.

    Also in 24 projects that use this

  • +5 more from Cesarjoquin
  • +1 more from Hussain-Elfalah

The file

We split this skill into the rules it gives an agent

10 rules. 0 are common, 8 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 89 edited versions we read keep these.

  • 8

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Check for existing relationship context in this order:

    line 17
  2. Distinctive:

    If ANY warm signal found → email MUST open with that specific moment/interaction, not a general insight.

    line 45
  3. Distinctive:

    If from a job posting: extract the hiring pain from the JD — that IS the hook

    line 50
  4. Distinctive:

    No hedging phrases ("I think", "might", "perhaps")

    line 84
  5. Distinctive:

    Do not send below B: If B or below, fix it and re-grade before presenting final version.

    line 101
  6. Distinctive:

    Before finalizing, note email format:

    line 104
  7. Very specific:

    Avoid: AI-native operators running full Claude/GPT/Gemini stacks with full business context — they don't see consultant value.

    line 112
  8. Distinctive:

    When Farhan shares a job posting for a pricing role:

    line 115
  9. Very specific:

    Before the first Gmail, Calendar, Granola, or Obsidian call, run tool_search for each ("gmail search threads", "calendar list events", …

    line 128
  10. Distinctive:

    Failure behaviour: if a source fails, name it in the output.

    line 139

“Common” is measured: kept by at least 6 in 10 of the 89 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Cold Email Skill

Step-by-Step Workflow

Step 1: Load Context

Load f13i docs using load-f13i-docs skill, or read directly from the Obsidian vault with obsidian_get_note (format: content):

  • 10-brain/05-writing.md (voice rules)
  • 10-brain/02-business.md (pipeline, ICP, existing relationships)
  • Voice docs: 10-brain/voice/01-voice-doc.md, 10-brain/voice/02-llm-prompt.md (fetch these for all outreach tasks)

Step 2: Warm Signal Check (ALWAYS run before drafting)

Check for existing relationship context in this order:

Granola:

Granola:query_granola_meetings
query: "[person name] OR [company name]"

Google Calendar:

Google Calendar:list_events
q: "[person name] OR [company name]"
timeMin: [3 months ago]
timeMax: [today]

Gmail:

Gmail:search_threads
query: "from:[company domain] OR to:[company domain]"

Obsidian vault (second brain):

obsidian_search_notes
query: "[company name]"

If ANY warm signal found → email MUST open with that specific moment/interaction, not a general insight. Override the hook decision tree.

Step 3: Research the Prospect

  • Web search: "[person name] [company]" + "[company] pricing page"
  • Fetch their pricing page directly if available
  • If from a job posting: extract the hiring pain from the JD — that IS the hook

Step 4: Hook Selection (if no warm signal)

Pick ONE hook based on what the research surfaced:

HookWhen to Use
BugObvious pricing problem visible on their page (missing tier, wrong model, confusing packaging)
Left on tableClear revenue gap — they're underpricing a segment or feature
Competitive gapTheir pricing vs. competitors reveals a strategic blind spot
JD signalThey're hiring for pricing — use the JD pain as the opener

Step 5: Draft the Email

Structure:

Subject: [3-6 words, specific to their situation — no generics]

[Warm signal anchor OR specific observation — 1 sentence]

[The so-what / what it means for them — 1-2 sentences]

[Credibility anchor — 1 sentence, specific to why you — tie to Grafana or relevant experience]

[No-strings-attached ask — 1 sentence]

[Signature]
Everyone's got a pricing opinion. Almost nobody has pricing data.
f13i.com | cal.com/farhan-m | me@f13i.com

Voice rules (from 10-brain/05-writing.md):

  • Contractions always
  • No hedging phrases ("I think", "might", "perhaps")
  • No consulting jargon
  • Short sentences, varied length
  • Sound like a practitioner, not a vendor

Step 6: Grade the Email

Grade as the recipient would grade it (use their background/role):

GradeCriteria
A+Specific, non-obvious insight + clear credibility + low-friction ask. Would reply.
AStrong but one element slightly generic or slightly long
B+Good insight, minor hedging or weak subject line
BSendable but one fix needed
Below BDo not send. Identify the specific problem.

Do not send below B. If B or below, fix it and re-grade before presenting final version.

Step 7: Email Verification

Before finalizing, note email format:

  • Research the company's email pattern (first.last, firstlast, etc.)
  • Recommend verifying via Hunter.io or NeverBounce free tier before sending
  • Note the email domain's mail provider if findable (MX record lookup via web search)

ICP Reminder

Strongest current lane: companies embedding AI into their product who don't know how to price it. Secondary: Series A-B SaaS with a clear pricing problem visible from the outside. Avoid: AI-native operators running full Claude/GPT/Gemini stacks with full business context — they don't see consultant value.

JD-to-Client Playbook

When Farhan shares a job posting for a pricing role:

  1. Extract the pain from the JD — what are they trying to solve?
  2. Identify the hiring manager (usually the poster)
  3. Research their current pricing page
  4. Apply this workflow — JD pain becomes Hook B (left on table) or Hook A (bug)
  5. Grade using the A+/B rubric before finalizing

Preflight — resolve tool signatures at runtime

Do not trust the tool names or parameter names written above. They drift.

Before the first Gmail, Calendar, Granola, or Obsidian call, run tool_search for each ("gmail search threads", "calendar list events", "granola meetings", "obsidian get note") and use the names and parameters it returns. The names here are correct as of 2026-07-30; the parameter schemas are not documented here on purpose, because hardcoding them is what broke this skill.

History: this skill shipped for months calling gmail_search_messages, gmail_read_thread, and gcal_list_events — none of which exist. It failed silently, producing confident output with the email and calendar legs missing entirely. Nothing reported it. Fixed 2026-07-30.

Failure behaviour: if a source fails, name it in the output. A partial result that says which leg died beats a clean-looking one that quietly dropped a source.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.