pitch-follow-up-tracker
Track outreach pitches and draft contextual follow-up emails. Monitors a pitch tracker (Google Sheet or local markdown), checks Gmail for replies, flags stale pitches, and drafts tiered follow-ups (Day 3, Day 7, Day 14) that reference the original pitch content. Use when you need to check on pitch follow-ups, draft follow-up emails, review outreach status, find pitches without replies, or manage an outreach pipeline. Triggers on: 'check follow-ups,' 'who hasn't replied,' 'draft follow-ups,' 'outreach status,' 'pitch tracker,' 'stale pitches,' or any request to manage pitch/outreach follow-up.
Best use case
pitch-follow-up-tracker is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Track outreach pitches and draft contextual follow-up emails. Monitors a pitch tracker (Google Sheet or local markdown), checks Gmail for replies, flags stale pitches, and drafts tiered follow-ups (Day 3, Day 7, Day 14) that reference the original pitch content. Use when you need to check on pitch follow-ups, draft follow-up emails, review outreach status, find pitches without replies, or manage an outreach pipeline. Triggers on: 'check follow-ups,' 'who hasn't replied,' 'draft follow-ups,' 'outreach status,' 'pitch tracker,' 'stale pitches,' or any request to manage pitch/outreach follow-up.
Teams using pitch-follow-up-tracker should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/pitch-follow-up-tracker/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How pitch-follow-up-tracker Compares
| Feature / Agent | pitch-follow-up-tracker | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Track outreach pitches and draft contextual follow-up emails. Monitors a pitch tracker (Google Sheet or local markdown), checks Gmail for replies, flags stale pitches, and drafts tiered follow-ups (Day 3, Day 7, Day 14) that reference the original pitch content. Use when you need to check on pitch follow-ups, draft follow-up emails, review outreach status, find pitches without replies, or manage an outreach pipeline. Triggers on: 'check follow-ups,' 'who hasn't replied,' 'draft follow-ups,' 'outreach status,' 'pitch tracker,' 'stale pitches,' or any request to manage pitch/outreach follow-up.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Marketing
Discover AI agents for marketing workflows, from SEO and content production to campaign research, outreach, and analytics.
Best AI Agents for Marketing
A curated list of the best AI agents and skills for marketing teams focused on SEO, content systems, outreach, and campaign execution.
AI Agent for Cold Email Generation
Discover AI agent skills for cold email generation, outreach copy, lead personalization, CRM support, and sales-adjacent messaging workflows.
SKILL.md Source
# Pitch Follow-Up Tracker Monitor outreach pitches, detect non-replies, and draft contextual, tiered follow-up emails. ## Prerequisites - **gog CLI** (required) — for Gmail access ```bash which gog ``` - **Google account** configured with gog (`gog gmail --account <email>`) - **Pitch tracker** — one of: - Google Sheet with outreach data - Local markdown file with pitch records ## Workflow ### 1. Collect Configuration Ask the user (or detect from context): | Parameter | Required | Description | |-----------|----------|-------------| | `gmail_account` | yes | Email account to check (e.g., you@company.com) | | `tracker_type` | yes | "sheet" or "markdown" | | `tracker_id` | if sheet | Google Sheet ID | | `tracker_path` | if markdown | Path to local .md file | | `sender_name` | yes | Name to use in follow-ups | | `sender_role` | optional | Role/title for email signature context | | `follow_up_style` | optional | "warm" (default), "direct", or "casual" | ### 2. Load Pitch Data **From Google Sheet:** ```bash gog sheets get <SHEET_ID> "<TAB_NAME>!A1:Z500" --json --account <gmail_account> ``` Expected columns (flexible — adapt to whatever columns exist): - Contact name / email - Brand / company - Date sent - Subject or pitch summary - Status (if tracked) **From Markdown file:** Read the file. Expected format (flexible): ```markdown ## [Brand Name] - **Contact:** Name <email> - **Sent:** YYYY-MM-DD - **Subject:** [pitch subject] - **Summary:** [what was pitched] - **Status:** Sent / Replied / Closed ``` Adapt to whatever format the user actually uses. Extract: contact email, brand, date sent, pitch content/subject, current status. ### 3. Verify Reply Status (CRITICAL — Do Not Skip Steps) Before flagging ANY pitch as "needs follow-up," you MUST complete ALL of these checks. Do not skim. Do not skip. A false positive wastes the user's time and erodes trust. **Check 1: Search for direct replies** ```bash gog gmail search "from:<contact_email>" --max 10 --account <gmail_account> ``` Look for any reply from the contact after the pitch send date, even in a different thread. **Check 2: Search by domain (catches new threads)** ```bash gog gmail search "from:@<contact_domain>" --max 10 --account <gmail_account> ``` Brands often respond from a different person at the same company. Check for ANY email from that domain since the pitch date. **Check 3: Search sent folder for user follow-ups** ```bash gog gmail search "to:<contact_email> OR to:@<contact_domain>" --max 10 --account <gmail_account> ``` Check if the user already sent a response, follow-up, or forwarded the thread. **Check 4: Search drafts for unsent responses** ```bash gog gmail search "in:drafts <contact_name> OR <brand_name>" --max 5 --account <gmail_account> ``` A draft response means the user is working on it. Do NOT flag as needing follow-up. **Check 5: Check if forwarded** ```bash gog gmail search "subject:Fwd: <original_subject>" --max 5 --account <gmail_account> ``` If the original email was forwarded to a colleague, talent, or team member, it may be in progress. **Check 6: Read full email threads** For any matching threads, read the FULL thread content — not just the latest message. Context changes mid-thread. ```bash gog gmail get <message_id> --account <gmail_account> ``` **Check 7: Check recent memory/context** If available, check conversation history, daily memory files, or any tracker for recent context about this deal. The user may have mentioned handling it verbally or via another channel (text, WhatsApp, call). **Classification (only after ALL checks):** - **Replied** — contact responded (in same or different thread) - **Already followed up** — user sent a follow-up but no reply yet - **Draft in progress** — user has an unsent draft - **Forwarded/delegated** — user forwarded to someone else - **Needs follow-up** — ALL checks came back empty. No activity since original send. - **Too fresh** — sent less than 3 days ago ### 4. Calculate Follow-Up Tier For pitches needing follow-up, determine tier based on days since last outreach: | Days Since Last Contact | Tier | Tone | |------------------------|------|------| | 3-6 days | **Day 3: Gentle Nudge** | Light, brief, bumping to top of inbox | | 7-13 days | **Day 7: Add Value** | Share something useful — article, idea, new angle | | 14+ days | **Day 14: Final Check-In** | Direct, low-pressure, leave door open | If user already sent one follow-up, advance to next tier. ### 5. Draft Follow-Up Emails Each draft MUST reference the original pitch content. No generic "just checking in" emails. **Day 3 — Gentle Nudge:** ``` Subject: Re: [Original Subject] Hi [Name], Wanted to bump this to the top of your inbox — [one sentence referencing the specific pitch content, e.g., "the proposal for a summer campaign series featuring outdoor content"]. Happy to jump on a quick call or send more details if helpful. [Sender Name] ``` **Day 7 — Add Value:** ``` Subject: Re: [Original Subject] Hi [Name], Following up on my note about [specific pitch reference]. Since I sent that over, [add relevant value: a new idea, a relevant trend, a recent success story, a new content example]. Would love to explore how this could work for [Brand]. Open to a quick chat this week? [Sender Name] ``` For the "add value" component, search the web for a recent relevant tidbit: ``` web_search "[brand name] [niche] news 2026" ``` Incorporate a genuine, relevant insight — not filler. **Day 14 — Final Check-In:** ``` Subject: Re: [Original Subject] Hi [Name], Circling back one last time on [specific pitch reference]. Totally understand if the timing isn't right — just wanted to make sure this didn't get buried. If [Brand] is exploring [relevant type of partnership] down the line, I'd love to be on your radar. Always happy to connect. [Sender Name] ``` Adjust tone based on `follow_up_style`: - **warm** (default): Friendly, relationship-focused - **direct**: Shorter, business-focused, clear ask - **casual**: Conversational, emoji-OK, lighter ### 6. Output Summary ```markdown # Outreach Follow-Up Report **Date:** [today] **Account:** [gmail_account] **Pitches Reviewed:** [total count] ## ✅ Replies Received ([count]) | Brand | Contact | Replied On | Action Needed | |-------|---------|------------|---------------| | [Brand] | [Name] | [date] | [Review reply / Schedule call / Send deck] | ## 🔥 Needs Follow-Up ([count]) ### Day 3 — Gentle Nudge **[Brand Name]** → [Contact Name] <[email]> - Original pitch: [summary] - Sent: [date] ([X] days ago) - Draft: > [Full draft email] ### Day 7 — Add Value **[Brand Name]** → [Contact Name] <[email]> - Original pitch: [summary] - Sent: [date] ([X] days ago) - Draft: > [Full draft email] ### Day 14 — Final Check-In **[Brand Name]** → [Contact Name] <[email]> - Original pitch: [summary] - Sent: [date] ([X] days ago) - Draft: > [Full draft email] ## ⏳ Too Fresh to Follow Up ([count]) | Brand | Contact | Sent | Follow-Up Date | |-------|---------|------|----------------| | [Brand] | [Name] | [date] | [date when Day 3 hits] | ## 📊 Pipeline Summary - Total active pitches: [X] - Awaiting reply: [X] - Replied: [X] - Follow-ups needed today: [X] ``` ### 7. Create Gmail Drafts (if requested) If the user approves the follow-up drafts: ```bash gog gmail draft create --to "<email>" --subject "Re: [subject]" --body "<draft body>" --account <gmail_account> ``` Always ask before creating drafts. Never send emails without explicit approval. ## Error Handling | Issue | Action | |-------|--------| | gog not installed | Stop and instruct: `npm i -g gog` or equivalent | | Gmail auth expired | Prompt: `gog gmail auth --account <email>` | | Sheet not accessible | Verify Sheet ID and sharing permissions | | No pitches found in tracker | Report empty tracker, suggest format | | Contact email missing | Flag the pitch, skip Gmail check for it | | Rate limited on Gmail | Space queries with 1-2s delays, process in batches | | Markdown format unexpected | Adapt parsing to whatever structure exists, ask user if ambiguous | ## Tips - Run this daily or every 2-3 days for best results - Keep your pitch tracker updated — the skill is only as good as your data - Review and personalize drafts before sending — they're starting points, not final copy - The "add value" follow-up works best when you have genuine news or insights to share
Related Skills
Pitch Deck Reviewer
Reviews pitch decks and provides investor-ready feedback with scoring
Meeting Mastery — AI Meeting Prep, Notes & Follow-Up Engine
You are an elite meeting preparation and follow-up agent. You ensure every meeting is high-value — thoroughly prepared beforehand, cleanly documented during, and actioned after.
KPI Tracker Skill
Track, analyze, and report on Key Performance Indicators for any business.
Budget & Expense Tracker — AI Agent Financial Command Center
Track every dollar, enforce budgets, spot spending patterns, and build wealth — all through natural conversation with your AI agent.
linkedin-followup
Manage LinkedIn outreach leads from Google Sheets — search by name, read live conversation threads, update status, and send contextual follow-up messages. Use after linkedin-dm to move leads through the pipeline (Sent → Replied → Call Scheduled → Demo Done → Closed).
game-light-tracker
Track live NFL, NBA, NHL, or MLB games and automatically change Hue light colors based on which team is leading. Use when user wants to sync smart lights with live sports scores for visual game tracking. Supports NFL, NBA, NHL, and MLB games with customizable team colors.
ml-experiment-tracker
Plan reproducible ML experiment runs with explicit parameters, metrics, and artifacts. Use before model training to standardize tracking-ready experiment definitions.
github-growth-tracker
Track GitHub repo growth (stars, forks, issues, commits) with periodic digests and trend analysis. Compare your repos against a watchlist. Use when checking repo stats, monitoring growth, setting up a github digest, comparing repos, or managing a repo watchlist. Requires GITHUB_TOKEN environment variable or GitHub PAT (see Credentials).
engagement-analytics-tracker
Use this skill whenever the user needs help with behavioral analytics, engagement tracking, or data collection across any digital touchpoint. Trigger for: website behavioral analytics (scroll depth, form abandonment, session tracking, GTM setup, GA4 custom events), email engagement tracking (open/click/attribution via Klaviyo, Mailchimp, or custom platforms), social media engagement monitoring (owned and competitor), mobile app analytics (Firebase, Amplitude, Mixpanel, AppsFlyer), user-level engagement scoring, cohort analysis, conversion tracking, event schema design, data layer setup, attribution modeling, or any request like "track user behavior", "set up analytics", "measure engagement", "build an event schema", "track form abandonment", "email attribution", "app retention analysis", "what events should I track?", or "how do I measure X". Always use this skill — do not guess at tracking implementations from memory; patterns and APIs change.
ad-platform-tracker
Use this skill whenever the user needs to track, analyze, or respond to advertising platform changes across Meta (Facebook/Instagram), Google Ads, or competitor intelligence. Trigger for any of these requests: Meta algorithm updates, Andromeda implications, Google Ads policy changes, Performance Max updates, privacy/compliance tracking (GDPR, CCPA, iOS), competitor ad analysis, campaign impact assessment, ad policy audits, regulatory compliance checks, platform feature rollouts, algorithm behavior changes, creative strategy updates from platform shifts, competitor ad library scraping, or any question like "what changed on Meta/Google?", "how does X update affect my campaigns?", "is my account compliant?", "what are competitors running?". Always use this skill — do not rely on training memory for fast-changing platform details.
conference-poster-pitch
Use conference poster pitch for academic writing workflows that need structured execution, explicit assumptions, and clear output boundaries.
alumni-career-tracker
Analyze laboratory alumni career trajectories and outcomes to provide data-driven career guidance for current students and postdocs. Tracks industry vs academia distribution, identifies career pathways, and generates personalized recommendations based on degree level and research interests.