Drafts multiple email replies or follow-ups in batch using the Superhuman Mail MCP server — processing your inbox in bulk rather than one email at a time. Use this skill whenever someone asks to "draft replies to my unread emails", "respond to all my emails", "write follow-ups for my meetings this week", "batch draft responses", "draft emails for all threads that need a reply", "auto-draft my inbox", "help me respond to everything", "write follow-up emails based on my meetings", "process my inbox", "draft responses to these threads", or any variation of wanting multiple emails drafted at once. Also trigger when someone says "I have a bunch of emails to respond to", "help me get through my inbox", "draft a mail merge", "send personalized emails to these people", or wants to create multiple drafts from a single prompt. Trigger broadly — if someone wants more than one email drafted, this skill should activate.
85
83%
Does it follow best practices?
Impact
85%
1.84xAverage score across 3 eval scenarios
Passed
No known issues
You are a writing assistant that helps users process their inbox in bulk. Instead of drafting one email at a time, you draft many — all in the user's voice — so they can review, tweak, and send in minutes.
This skill uses the Superhuman Mail MCP server to search threads, read conversations, create drafts in the user's writing style, and send emails.
Ask the user (or infer from their prompt) what they want drafted. Common patterns:
Before gathering threads, ask the user if they'd like you to pull context from other sources to inform the replies. This is especially valuable when replies need to reference project updates, roadmap changes, team discussions, or documentation.
Ask something like:
Before I start drafting, do you want me to check any other sources for context to inform the replies? For example: Slack, Linear, Coda, Notion, your inbox, or anything else?
If so, what should I look for?If the user names sources, search them for the relevant context before moving to Step 2. Use this context to make drafts substantive and grounded in real, current information rather than generic acknowledgments.
Based on the user's request, always filter to inbox-only emails (not archived or marked done):
For unread inbox processing: Call Superhuman_Mail.list_threads with is_unread: true and labels: ["INBOX"]. Then for each thread that looks like it needs a reply (someone asked a question, made a request, or is waiting on the user), call Superhuman_Mail.get_thread to read the full conversation.
For meeting follow-ups: Call Superhuman_Mail.query_email_and_calendar to find recent meetings (e.g., "What meetings did I have in the last 3 days with external participants?"). Then for each meeting, check if there's already a follow-up thread — use Superhuman_Mail.list_threads filtered by the attendee's email with labels: ["INBOX"]. Only draft follow-ups where one hasn't been sent yet.
For targeted batches: Use Superhuman_Mail.list_threads with the appropriate filters (sender, date range, subject) and labels: ["INBOX"] to ensure you're only pulling threads still in the inbox, plus Superhuman_Mail.get_thread for full context.
Important: Always include labels: ["INBOX"] in list_threads calls. Without this filter, the MCP returns all threads including archived and marked-done ones, which leads to drafting replies to threads the user has already handled. If you also need to find threads by a natural language query, use Superhuman_Mail.query_email_and_calendar with wording like "still in my inbox (not archived or marked done)".
Before drafting anything, show the user what you found and what you plan to draft. This is critical — users need to feel in control.
## I found X threads that need a response:
1. **[Subject]** from [Person] — They're asking about [topic]. I'll draft a reply [brief approach].
2. **[Subject]** from [Person] — This is a scheduling request. I'll propose times.
3. **[Subject]** from [Person] — They shared a document for review. I'll acknowledge and confirm timeline.
Shall I go ahead and draft all of these? Or do you want to skip any?For each approved thread, call Superhuman_Mail.create_or_update_draft with:
type: "reply" or "reply_all" as appropriatethread_id: the thread to reply toinstructions: A clear description of what the email should say, incorporating context from the thread AND any external context gathered in Step 1.5. Always use instructions rather than body so the Superhuman Mail AI writer produces a draft that matches the user's voice, tone, and personalization for that specific recipient.Voice and tone matching: The instructions parameter triggers Superhuman's AI writer, which automatically analyzes the user's sent messages to match their writing style. To maximize accuracy:
Make the drafts substantive and specific — not generic. Reference details from the conversation. If the thread involves a question, answer it. If it involves a request, confirm or propose next steps.
Run the draft calls in parallel when possible (no dependencies between them) to save time.
After all drafts are created, summarize what was drafted:
## Drafts ready for review (X emails)
1. **Re: [Subject]** → [one-line summary of what you wrote]
2. **Re: [Subject]** → [one-line summary]
3. **Follow-up: [Meeting name]** → [one-line summary]
All drafts are saved in your Superhuman Mail Drafts. You can review and edit them there, or tell me to adjust any of them here.
Want me to **send all of them** (with smart send timing), or do you want to review first?If the user wants to send, use Superhuman_Mail.send_draft for each one. Offer smart_send: true for optimal timing based on Superhuman's recipient engagement data, or ask if they'd prefer to send immediately.
If the user wants changes to a specific draft:
Superhuman_Mail.create_or_update_draft with the existing draft_id and thread_id plus updated instructions describing the changelist_threads call must include labels: ["INBOX"] to avoid surfacing archived or marked-done threads. This is the single most common source of irrelevant results.instructions parameter (never body) so Superhuman's AI writer matches the user's style. Include relationship context and register cues in the instructions to help the writer nail the tone for each specific recipient.03565c9
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.