30 Days of Claude Skills You'll Actually Use

I Haven't Manually Triaged My Email in Three Weeks

Every morning Claude triages my inbox, ranks what needs a reply, and saves drafts in my voice. Here's the 15-minute build.

Jaydyn Rosevear13 min read

Every morning I ask Claude to check my email. A few seconds later I'm looking at a ranked list of the replies that actually need my attention, with drafts already saved in Gmail. I review, tweak if needed, hit send. Done.

I built this as a Claude skill. It took about fifteen minutes the first time and has saved me at least an hour a day since.

This is Day 1 of a new series I'm calling 30 Days of Claude Skills You'll Actually Use.

(Make sure to subscribe so you don't miss any. Some will be free, some for paid subscribers only.)

(Quick cadence note: I won't send a skill every single day. I'll drip these out so your inbox stays manageable.)

Day 1 is Email Autopilot.


What Email Autopilot Actually Does

Three things, every morning:

  • Pulls every email from the last 24 hours. Threads, replies, the whole inbox window.
  • Sorts them into three buckets: emails that need a response, FYI updates, and noise (newsletters, marketing, shipping confirmations). The "needs a response" bucket gets ranked P1 / P2 / P3 by urgency.
  • Drafts a reply for each needs-response email in my voice, pulling context from my other connected tools (calendar, CRM, Slack, meeting transcripts) so the drafts have the same context I'd have if I were writing them myself.

I look at the briefing, review the drafts Claude has already saved in Gmail, edit anything that needs a tweak, hit send. What used to take me 60 to 90 minutes a day now takes about ten.

The behavior change is the real value. I don't open Gmail before lunch anymore. (My Chief of Staff agent handles the rest of my morning context, like meetings, Slack, and pipeline, and this skill handles the inbox layer specifically.)


How to Build It in Four Steps

Step 1: Connect Gmail

In Claude Desktop, go to Settings → Connectors and turn on Gmail (or whichever email tool you use, same connector menu). Set permissions to allow drafts. Without this, the skill can't read your inbox or save replies.

This is the substrate. Everything below assumes it's on.

Step 2: Create Your Voice Skill

This is the step that separates Email Autopilot from every other "AI answers your email" hack. The reason the drafts don't sound like generic AI is that the skill has a voice profile of you to work from.

But here's the architectural move worth pausing on: voice isn't an email problem. It's a you problem. Every drafting skill you ever build (LinkedIn posts, Slack replies, internal updates) will need it. So instead of baking voice into Email Autopilot, you build it as its own standalone skill. Other skills reference it.

This matters because skills compose. If voice lives inside Email Autopilot, you'd duplicate it across every drafting skill you build. Update one and the others drift. Voice as a shared base skill means your skill library compounds instead of bloats.

You'll see this play out across the series. By Day 30, expect a small library of base skills (voice is the first, others to come) that the more specialized skills sit on top of.

To generate your voice profile, open Claude and paste this prompt:

/skill-creator Go through the emails I've sent in the last 30 days using the Gmail connector. Study how I actually write. My tone, my typical openings and closings, my sentence length, my level of formality, any signature phrases I use, how I handle different audiences (clients, internal, partners, etc.) or any other factors you think are important.

Then build me a Claude skill called my-voice that holds all of that as a reference profile other skills can read before drafting in my voice. Be specific. Quote phrases I actually use. Note quirks. The goal is for another instance of you, with no memory of me, to be able to read this skill and draft something that sounds like I wrote it.

(Note: I started the prompt by invoking /skill-creator, which is Claude's built-in skill for creating well-crafted skills. Meta, I know.)

Give Claude a few minutes. It will create the skill and prompt you to save it. Once saved, you can invoke it anytime by typing /my-voice.

Step 3: Save Email Autopilot as a Skill

In Claude, create a new skill: > Customize > Skills > Hit the "+" > Write Skill Instructions and name it email-autopilot.

Paste the instructions below. Save it.

(This is the full skill block. Skim it now if you want. The tailoring section below explains how to customize it for your specific role and tools.)

# Email Autopilot

## Description

Reviews the user's Gmail inbox from the past 24 hours, buckets emails into three categories (Needs Response / FYI / Noise), prioritizes the Needs Response bucket P1/P2/P3, and drafts replies in the user's voice using context from connected tools. Use when the user says "check my email," "morning email briefing," "what's in my inbox," "any urgent emails," or any similar phrase. Add "no drafts," "quick briefing," or "just brief me" to skip draft creation and run briefing-only mode. Do NOT use for composing new emails from scratch or managing labels/folders.

## Voice

This skill drafts in the user's voice by referencing the /my-voice skill. Before drafting any reply in Step 5, load the /my-voice skill and apply its voice profile. If the /my-voice skill doesn't exist or its profile is empty, stop and direct the user to create or populate it before continuing.

## Modes

- **Default**: full briefing + drafts saved to Gmail (Steps 1 to 6).
- **Briefing only**: triggered by "no drafts," "quick briefing," "just brief me," or "skip drafts." Runs Steps 1 to 4 and 6, skips Step 5. No drafts created.

## Instructions

### Step 1: Pull lightweight signal context

Pull only the cheap signals that affect categorization, not the deep context that informs draft content. The goal here is to know who matters before reading any email, not to pre-load everything.

- **Google Calendar**: today's meetings; tomorrow's first meeting if it's before 10am. Extract attendee names/emails. Those senders should rank higher today.
- **Slack**: DMs and @mentions from the past 24h. Extract sender names and the gist of any open thread. Used to flag follow-up emails on active Slack conversations.
- **Granola** (or other meeting tool): commitments from meetings in the past 24h, specifically (a) commitments where the user owes someone something with an implied deadline this week, and (b) decisions reached or unresolved questions. These act as P1 promoters in Step 4.
- **HubSpot**: thin list only. Names and emails of contacts with active deals or recent VIP activity. Do NOT pull full deal records yet.
- **Notion** or task tool: any items flagged as today's priorities. Project and people names only.

Skip any tool that isn't connected and note in the briefing which sources were unavailable.

Output of this step is a compact "signal map." Names, deal references, and commitments used to rank inbound emails. Hold it in working memory; don't write it out to the user.

### Step 2: Fetch and triage email (subject + snippet only)

Use Gmail `search_threads` with query `newer_than:1d` and `pageSize: 50`. Paginate if more than 50 threads are returned.

Do not fetch FULL_CONTENT yet. Categorize from subject + snippet + sender only. This first pass is bucketing, not drafting. Newsletters, shipping confirmations, and automated alerts should never trigger a full-body pull.

For each thread, identify the latest unread message. That's what's being categorized, not the full thread history.

### Step 3: Categorize into three buckets

- **Needs Your Response**: someone is directly asking a question, requesting action, scheduling, or waiting on a reply.
- **FYI / Awareness**: information to be aware of but no reply needed. Status updates, shared documents, announcements, calendar confirmations.
- **Noise**: newsletters, marketing, automated notifications, receipts, shipping updates, app alerts.

**Heuristics for Needs Response:**
- User is in **To**, not CC. If only in CC, downgrade by one tier (or move to FYI) unless explicitly named in the body.
- Subject or snippet contains a question, ask, or request for confirmation/decision.
- Sender domain or name matches a known relationship from the Step 1 signal map.
- Calendar/scheduling language ("can we move," "are you free," "confirming for").

**Heuristics for Noise:**
- Sender pattern matches `noreply@`, `marketing@`, `notifications@`, or known SaaS notification domains.
- Subject contains "Your receipt," "Order #," "X new updates," "Weekly digest," "Has shipped," etc.
- Automated platform notifications (Slack digest emails, GitHub notifications, calendar app reminders).

When in doubt between FYI and Noise, choose FYI. When in doubt between Needs Response and FYI, fetch FULL_CONTENT for just that thread and re-decide.

### Step 4: Prioritize the Needs Response bucket

- **P1, Urgent**: time-sensitive requests, leadership/boss asking, deadlines today or tomorrow, sender flagged urgent. Also P1: any email that touches a commitment surfaced in Step 1 from Granola (you owe this person something this week), or any email from someone on today's calendar.
- **P2, Important**: direct questions needing thoughtful reply, client or partner emails, requests that will block someone else's work this week.
- **P3, When You Can**: low-stakes replies, social/casual threads, things that can wait 24 to 48 hours.

Be opinionated. Make the call cleanly. Don't ladder P1/P2/P3.

### Step 5: Fetch full bodies and draft replies

**Skip this step entirely if the user invoked briefing-only mode.**

Before drafting, load the `my-voice` skill to retrieve the user's voice profile. If the skill doesn't exist or its profile is empty, stop and direct the user to create or populate it before continuing.

For each thread in the Needs Response bucket, fetch `get_thread` with `messageFormat: "FULL_CONTENT"`. This is the only point where full bodies are pulled.

Then for each email needing a draft, pull Tier 2 context on demand:
- Sender is a HubSpot contact → pull full deal record for that contact.
- Email references a meeting → pull the relevant Granola transcript snippet.
- Email references a project → pull the relevant Notion page.
- Email is a thread continuation → review the full thread history to know what was already discussed.

**Draft the reply:**
- Match the voice profile from the `my-voice` skill exactly. Use its openings, closings, sentence length, signature phrases, and audience-specific norms.
- Reference the specific meeting, deal, or commitment when applicable. The draft should feel like the user wrote it after a five-minute think, not like an AI generated it.
- Keep draft length consistent with the user's voice norm for that audience (short for partners, longer for prospects).
- Default to **reply**, not **reply-all**, unless the thread is clearly a group thread requiring group response.
- Do not append a signature. Gmail adds the user's signature automatically.

Save each draft using Gmail `create_draft` with the correct recipient, subject, and body. **Never send. Drafts only.**

### Step 6: Present the briefing

Format as:

📬 Email Briefing, [Today's Date]
[X] threads from the past 24 hours
(Sources unavailable: [list if any])

🔴 Needs Your Response ([count])

P1, Urgent
- [Subject] from [Sender] | [Time received] | [1-2 line summary] | ✏️ Draft saved
- ...

P2, Important
- ...

P3, When You Can
- ...

📌 FYI / Awareness ([count])
- [Subject] from [Sender] | [Brief summary]
- ...

🔕 Noise ([count])
[count] automated and marketing emails. Top senders: [list top 3-5]

End the briefing with:
*Drafts saved in Gmail. Want me to revise any of them? Tell me which one and what to change.*

(In briefing-only mode: *Briefing only, no drafts created. Want me to draft replies for any of these? Tell me which ones.*)

## Revision workflow

When the user asks to revise a draft:
1. Identify the draft by subject or sender from their request.
2. Apply the requested change while preserving the voice profile.
3. Update the **existing** Gmail draft. Don't create a duplicate.
4. Show the user the revised draft inline and confirm it's been updated in Gmail.

## Behavior rules

- Always run the briefing immediately. Don't ask clarifying questions before fetching emails.
- Be opinionated about priority. Don't ladder P1/P2/P3.
- Never send, label, archive, or delete anything without explicit user approval. Drafting and saving as a Gmail draft is the only safe action.
- Match the user's voice exactly per the `my-voice` skill's profile. Do not default to generic professional tone.
- Tier 2 context (HubSpot deal records, Notion pages, Granola transcripts, full email bodies) is pulled per-email in Step 5 only, never speculatively in Step 1.
- If a connector isn't enabled, skip that context source and note in the briefing which sources are unavailable.
- Collapse the Noise bucket. Show count and top 3-5 senders. Don't list every newsletter.

## Troubleshooting

- **No threads returned**: Gmail connector likely not enabled. Settings → Connectors → Gmail. Then retry.
- **Drafts not saving**: Check Gmail connector permissions allow drafts. Read-only access will fetch but not draft.
- **Wrong voice**: regenerate the voice profile and update the `my-voice` skill (30 days may be too narrow a sample if your tone has shifted; try 60 days). If the `my-voice` skill is empty or missing, drafts will sound generic.
- **Missing tool context**: that connector isn't enabled. Settings → Connectors → enable.
- **Briefing too long**: use briefing-only mode ("quick briefing") to skip drafting, or ask Claude to collapse FYI items the same way as Noise.

Step 4: Connect the Rest of Your Stack

The skill's depth comes from the Step 1 "signal map." The part that pulls lightweight context from your other tools before email categorization. The default list I use is Calendar + Slack + HubSpot + Granola + Notion. Yours will look different.

Open Settings → Connectors in Claude Desktop and turn on the tools the skill should pull from. Set permissions per tool: Calendar read-only, Slack with channel access, HubSpot read-only, Granola read-only, etc.

If you don't use one of these tools, remove that line from the skill instructions before saving. The skill will skip any connector that isn't enabled and tell you so in the briefing.

What changes if you swap tools:

  • Sales-heavy role: replace Granola with Salesforce or Apollo. Add LinkedIn if you use it for outbound.
  • Engineering or PM role: replace HubSpot with Linear or Jira. Add GitHub if relevant emails come through there.
  • Creator role: add Stripe or Substack so the skill knows when a brand deal email or subscriber payment comes in.
  • No CRM: drop the HubSpot block entirely. The skill still works on email + calendar alone.

Tailoring It for Your Specific Work

The skill above is the version I run. Yours probably needs different VIPs, different tone rules, different prioritization logic. Instead of hand-editing, use this meta-prompt to have Claude interview you and produce a customized version.

Paste this into Claude (a fresh chat is fine):

I'm about to save this Claude skill called Email Autopilot. Before I save it, I want you to interview me about my situation and produce a customized version with my specifics filled in.

Ask me in small batches (not all at once). Topics to cover:

1. My role, company, and what kinds of emails I send and receive most
2. The connected tools I want the skill to reference for context (Calendar, Slack, CRM, meeting tools, Notion, others), and any tools to skip
3. My VIPs (5-10 people I always want surfaced. Bosses, key clients, partners, board members.)
4. What kinds of emails should always be P1 vs. always be P3 for my role specifically
5. Tone preferences beyond what's already in my voice profile (e.g., shorter for partners, longer for prospects)
6. Any sections of the skill I want to add, drop, or rename
7. Any behavior rules I want to add (e.g., "always flag emails from my CEO regardless of content")

After I answer, produce a customized version of the skill with my answers filled in. Before giving me the final version, summarize in 5-8 bullets what you changed so I can review.

Use the /skill-creator skill when creating the updated skill.

The base skill is:

[PASTE THE SKILL FROM STEP 3 HERE]

Spend ten minutes answering Claude's questions. The clearer your answers, the sharper the skill.


Want It on Full Autopilot?

The skill is on-demand by design. You say "check my email" and Claude runs the briefing. But if you'd rather not have to ask, wrap it in a Claude Cowork Scheduled Task or a Claude Code Routine that fires every weekday at your preferred time (mine runs at 6:45am) and invokes the skill automatically.

Same skill, scheduled trigger. The briefing lands before you've poured coffee.


What to Do This Week

  • Connect Gmail (1 minute). Settings → Connectors → Gmail.
  • Connect the rest of your stack (5 minutes). Calendar, Slack, CRM, meeting tool, whatever you live in.
  • Generate your voice profile (a few minutes). Paste the voice-generation prompt, save the output as the my-voice skill.
  • Save Email Autopilot (3 minutes). Copy the skill block from Step 3, save.
  • Run it tomorrow morning. "Hey Claude, check my email." See if the briefing matches the priorities you'd have set yourself.
  • Tune it (10 minutes). Use the meta-prompt in the tailoring section to have Claude interview you, then update the skill.

By Friday, you should have two skills (one shared, one specialized) that triage your inbox faster than you can, and draft replies that don't make you cringe when you read them back.


Day 1 down. 29 more to go.

#claude#skills#email#productivity#automation