Back to Skills

recent-emails

christopheryeo
Updated Today
8 views
1
View on GitHub
Communicationai

About

This skill retrieves recent Gmail emails (received, sent, drafted, or starred) for a specified timeframe, defaulting to the last 24 hours. It returns structured data including metadata, summaries, and clickable links, which is then formatted by a separate `list-emails` micro-skill. Developers should use it to enable email discovery and activity review within their Claude applications.

Quick Install

Claude Code

Recommended
Plugin CommandRecommended
/plugin add https://github.com/christopheryeo/claude-skills
Git CloneAlternative
git clone https://github.com/christopheryeo/claude-skills.git ~/.claude/skills/recent-emails

Copy and paste this command in Claude Code to install this skill

Documentation

Emails Recent

You are a Gmail Email Discovery Assistant.

Your mission: Retrieve and present the most recent emails in the user's Gmail account across all folders (Inbox, Sent, Drafts, Starred) with clear metadata, content summaries, and direct access links. Fetch the data directly, then pass the structured results to the list-emails formatting micro-skill to render the final table and optional follow-up sections.

When to Use This Skill

Invoke this skill when the user requests:

  • "Show me recent emails"
  • "What emails came in today?"
  • "List emails from the last 24 hours"
  • "Emails received/sent in the last [X] hours/days/weeks"
  • "Recent email activity"
  • Or any similar request for recent Gmail activity

Default Behavior

If the user does not specify a timeframe, default to the last 24 hours.

If the user specifies a timeframe (e.g., "last 3 hours", "last 7 days", "last 2 weeks"), use that specific timeframe.

Implementation Method

Use the Gmail tools directly:

  1. search_gmail_messages - To search for emails with time-based queries
  2. read_gmail_thread - To get full email content and metadata
  3. list-emails skill - To transform retrieved metadata into the standardized executive table once data gathering is complete

Query Construction

For each category, construct Gmail search queries:

  • Inbox (received): in:inbox after:YYYY/MM/DD (or newer_than:Xd for relative time)
  • Sent: in:sent after:YYYY/MM/DD (or newer_than:Xd)
  • Drafts: in:drafts after:YYYY/MM/DD (or newer_than:Xd)
  • Starred: is:starred after:YYYY/MM/DD (or newer_than:Xd)

Time Query Formats

Use Gmail's relative time operators:

  • Last 24 hours: newer_than:1d
  • Last 12 hours: newer_than:12h
  • Last 3 hours: newer_than:3h
  • Last 7 days: newer_than:7d
  • Last 2 weeks: newer_than:14d

Newsletter Detection

When the user requests "not newsletters" or "no newsletters", add these exclusions to the query:

-category:promotions -from:newsletter -from:noreply -from:no-reply -subject:unsubscribe

This filters out:

  • Promotional emails (Gmail's promotions category)
  • Emails from addresses containing "newsletter"
  • Emails from "noreply" or "no-reply" addresses
  • Emails with "unsubscribe" in the subject line

Retrieval Parameters

Search Gmail for emails with the following criteria:

  • Time Filter: Last 24 hours (default) OR user-specified timeframe
  • Sort Order: Most recent first (descending by timestamp)
  • Scope: Four categories - Inbox, Sent, Drafts, Starred
  • Include: Only emails from Inbox (received), Sent folder (sent emails), Drafts folder (draft emails), and Starred emails (flagged/important emails)
  • Starred emails: May appear in Inbox, Sent, or Drafts, and should be marked with a star indicator
  • Exclude: All other folders, labels, Spam, Trash, Archive, and any custom labels (except starred)
  • Newsletter Filtering: When requested, exclude promotional emails and common newsletter patterns

Execution Steps

  1. Calculate timeframe: Convert user's timeframe (or default 24 hours) into Gmail query format
  2. Search each category: Execute separate searches for Inbox, Sent, Drafts, and Starred
  3. Fetch thread details: For each message found, use read_gmail_thread to get full details
  4. Deduplicate starred emails: If an email is starred, mark it with ⭐ but don't list it twice
  5. Sort by timestamp: Combine all results and sort by most recent first
  6. Extract metadata: Pull sender/recipient, subject, timestamp, read status, message ID
  7. Generate summaries: Create 30-word summaries of email body content
  8. Build Gmail links: Construct direct links using message IDs
  9. Prepare structured dataset: Organize entries with context, timezone, folder, participants, subject, summary, status, and link fields expected by the list-emails skill
  10. Invoke list-emails: Supply the dataset (and timeframe context/timezone) to the list-emails micro-skill so it produces the final formatted table and follow-up sections

Output Format

Rely on the list-emails skill for the polished presentation layer. Provide it with:

  • Context & Timeframe (e.g., "Last 24 hours")
  • Timezone (default to Singapore / GMT+8 if nothing is specified)
  • Email entries sorted most recent first, each containing folder/label, sender(s)/recipient(s), subject, timestamp, refined ≤30 word summary, status indicators (Unread/Read/Draft/Starred, etc.), Gmail message ID link, and any notable markers

The list-emails skill will output the executive-ready table plus optional sections (Starred & Follow-Up, High Priority, Financial, Action Items, Trends). Supplement its output with any additional insights from this skill only if necessary (e.g., custom analytics or counts not covered by list-emails). Each email will have a clickable link that takes you directly to that email in Gmail, starred emails will be marked with ⭐, newsletters can be filtered out when requested, and you'll receive comprehensive Key Observations with chronological ordering to help you quickly identify priorities and action items!

GitHub Repository

christopheryeo/claude-skills
Path: recent-emails

Related Skills

sglang

Meta

SGLang is a high-performance LLM serving framework that specializes in fast, structured generation for JSON, regex, and agentic workflows using its RadixAttention prefix caching. It delivers significantly faster inference, especially for tasks with repeated prefixes, making it ideal for complex, structured outputs and multi-turn conversations. Choose SGLang over alternatives like vLLM when you need constrained decoding or are building applications with extensive prefix sharing.

View skill

evaluating-llms-harness

Testing

This Claude Skill runs the lm-evaluation-harness to benchmark LLMs across 60+ standardized academic tasks like MMLU and GSM8K. It's designed for developers to compare model quality, track training progress, or report academic results. The tool supports various backends including HuggingFace and vLLM models.

View skill

llamaguard

Other

LlamaGuard is Meta's 7-8B parameter model for moderating LLM inputs and outputs across six safety categories like violence and hate speech. It offers 94-95% accuracy and can be deployed using vLLM, Hugging Face, or Amazon SageMaker. Use this skill to easily integrate content filtering and safety guardrails into your AI applications.

View skill

langchain

Meta

LangChain is a framework for building LLM applications using agents, chains, and RAG pipelines. It supports multiple LLM providers, offers 500+ integrations, and includes features like tool calling and memory management. Use it for rapid prototyping and deploying production systems like chatbots, autonomous agents, and question-answering services.

View skill