Communitygithub.com

aiagentwithdhruv/skills

Étiquete automatiquement les e-mails Gmail en catégories Action Requise, En Attente et Référence. Utilisez-le lorsque l'utilisateur demande d'étiqueter des e-mails, de trier la boîte de réception, de catégoriser des e-mails ou d'organiser Gmail.

Qu'est-ce que skills ?

Cette compétence permet à un agent IA, comme Claude Code ou Cursor, d'analyser et d'organiser automatiquement votre boîte de réception Gmail en étiquetant chaque e-mail selon trois catégories : Action Requise (e-mails nécessitant une réponse ou une action), En Attente (e-mails pour lesquels vous attendez une réponse externe), et Référence (e-mails informatifs, newsletters, notifications). Elle est optimisée pour le traitement parallèle : après avoir récupéré les e-mails, elle les divise en plusieurs lots et lance simultanément jusqu'à 10 sous-agents de classification (chacun utilisant un modèle Sonnet rapide et économique), ce qui réduit le temps de classification de 34 à 19 secondes pour 100 e-mails. Les scripts Python intégrés gèrent la récupération, la découpe, la fusion des classifications et l'application des libellés via l'API Gmail. Un registre de comptes simplifie la gestion de plusieurs adresses Gmail, et la compétence est conçue pour éviter les erreurs de dépassement de contexte en écrivant les résultats des sous-agents dans des fichiers plutôt qu'en les lisant via des sorties de tâches.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/aiagentwithdhruv/skills/tree/HEAD/gmail-label

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Étiquetage automatique Gmail

Objectif

Récupérer les e-mails de la boîte de réception, les classer via des sous-agents parallèles en Action Requise / En Attente / Référence, et appliquer les libellés en bloc via l'API Gmail.

Scripts

  • ./scripts/gmail_label_fetch.py - Récupère les résumés des e-mails au format JSON compact
  • ./scripts/gmail_label_split.py - Divise les e-mails en N lots pour une classification parallèle
  • ./scripts/gmail_label_merge.py - Fusionne les lots classifiés en un seul fichier labels.json
  • ./scripts/gmail_label_apply.py - Applique les classifications de libellés en bloc

Sous-agent

  • email-classifier — défini dans .claude/agents/email-classifier.md
  • Modèle : Sonnet 4.5 (classification rapide et économique)
  • Chaque sous-agent lit un lot, écrit un fichier de sortie classifié

Flux (parallèle — par défaut)

Étape 1 : Récupérer les e-mails

python3 .claude/skills/gmail-label/scripts/gmail_label_fetch.py \
  --account ACCOUNT --query "in:inbox" --limit 100 --output .tmp/emails.json

Étape 2 : Diviser en lots

python3 .claude/skills/gmail-label/scripts/gmail_label_split.py \
  --input .tmp/emails.json --chunks 10 --output-dir .tmp/chunks

Étape 3 : Classifier en parallèle (lancer 10 sous-agents)

Lancez 10 sous-agents email-classifier en arrière-plan, un par lot. Chaque sous-agent :

  • Lit .tmp/chunks/chunk_N.json
  • Classe chaque e-mail
  • Écrit .tmp/chunks/classified_N.json

Utilisez l'outil Tâche avec run_in_background: true et model: "sonnet". Lancez les 10 dans un seul message pour un véritable parallélisme :

Pour chaque lot 0-9, lancer une tâche avec :
  subagent_type: "email-classifier"
  model: "sonnet"
  run_in_background: true
  prompt: "Lire /chemin/absolu/.tmp/chunks/chunk_N.json, classer chaque e-mail, écrire les résultats dans /chemin/absolu/.tmp/chunks/classified_N.json"

CRITIQUE : N'utilisez PAS TaskOutput pour lire les résultats des sous-agents. Les sous-agents écrivent leurs résultats dans des fichiers — l'agent principal n'a jamais besoin de voir les données de classification. Lire TaskOutput inondera la fenêtre de contexte et provoquera des erreurs "prompt too long" avec de gros lots (500+ e-mails).

Au lieu de cela, interrogez l'existence des fichiers :

# Attendre que tous les fichiers classifiés existent (délai d'attente après 120s)
for i in $(seq 0 9); do
  while [ ! -f ".tmp/chunks/classified_$i.json" ]; do sleep 2; done
done

Puis passez directement à l'étape 4 (fusion).

Étape 4 : Fusionner les classifications

python3 .claude/skills/gmail-label/scripts/gmail_label_merge.py \
  --input-dir .tmp/chunks --output .tmp/labels.json

Étape 5 : Appliquer les libellés

python3 .claude/skills/gmail-label/scripts/gmail_label_apply.py \
  --account ACCOUNT --input .tmp/labels.json

Directives de classification

Action Requise :

  • Alertes de sécurité nécessitant une vérification
  • Cartes de crédit / renouvellements de domaine avec échéances
  • @mentions Slack posant des questions
  • Nouveaux membres d'équipe à saluer (notifications Slack d'arrivée)
  • E-mails clients nécessitant une réponse
  • Mises à jour de fiches d'établissement (Google Business Profile, Bing Places)
  • Avis Stripe nécessitant une action

En Attente :

  • E-mails de vente sortants en attente de réponse
  • Tickets de support en attente de résolution
  • Propositions envoyées, en attente de réponse

Référence :

  • Newsletters marketing (DigitalMarketer, etc.)
  • Newsletters caritatives / à but non lucratif (RAPS, etc.)
  • Rapports de performance Google Business Profile
  • Offres promotionnelles (Blinkist, soldes, etc.)
  • Notifications de mises à jour de plateforme (Google Play, Apify, etc.)
  • Codes de confirmation (déjà utilisés)
  • Newsletters immobilières (Westbank, etc.)
  • E-mails de comptes de jeux (Riot Games, etc.)
  • Alertes de sécurité informatives (2FA activé, etc.)
  • Avis de santé
  • Notifications de mises à jour légales / politiques

Registre des comptes

Les comptes sont stockés dans gmail_accounts.json à la racine de l'espace de travail. Chaque compte nécessite :

  • email - Adresse Gmail
  • token_file - Chemin vers le jeton OAuth

Ajouter de nouveaux comptes

python3 .claude/skills/gmail-inbox/scripts/gmail_multi_auth.py --account NOM_COMPTE --email EMAIL

Performances

  • Flux séquentiel : ~36s pour 100 e-mails (récupération 1s + classification 34s + application 1s)
  • Flux parallèle : ~30s pour 100 e-mails (classification 19s + fusion <1s + application ~10s)
  • La classification est le goulot d'étranglement ; 10 sous-agents parallèles la réduisent de 34s à 19s (~1,8x d'accélération)
  • Le démarrage des agents (~4s de décalage) limite les gains théoriques
  • L'étape d'application peut varier en raison de la limitation de l'API Gmail

Schéma

Entrées

NomTypeObligatoireDescription
accountstringOuiNom du compte Gmail depuis le registre
querystringNonRequête de recherche Gmail (par défaut : 'in:inbox')
limitintegerNonNombre max d'e-mails à classer (par défaut : 100)
chunksintegerNonLots de classification parallèle (par défaut : 10)

Sorties

NomTypeDescription
labels_appliedobjectCompteur par catégorie : Action Requise, En Attente, Référence

Informations d'identification

NomSource
credentials.jsonfichier
token_*.jsonfichier (généré automatiquement)

Composable avec

Compétences qui s'enchaînent bien avec celle-ci : gmail-inbox

Coût

API Claude Sonnet pour la classification

Individual skills in this repo

This repo contains 10 individual skills — each has its own dedicated page.

aiagentwithdhruv/skills

Add new Modal webhooks for event-driven execution. Use when user asks to create a webhook, add an endpoint, or set up event triggers.

aiagentwithdhruv/skills

Answer Euron Gen AI Bootcamp doubts instantly. Covers Euri API setup across all frameworks (Python, LangChain, OpenAI SDK, TypeScript, n8n, curl), MCP server setup, common errors, model recommendations, and token limits. Use when someone in the bootcamp asks a question.

aiagentwithdhruv/skills

Manage emails across multiple Gmail accounts with unified tooling. Use when user asks to check email, read inbox, label emails, archive messages, or manage Gmail across accounts.

aiagentwithdhruv/skills

Scrape Google Maps for B2B leads with deep website enrichment and contact extraction. Use when user asks to find local businesses, scrape Google Maps, generate contractor lists, or build local service business databases.

aiagentwithdhruv/skills

Run Claude orchestrator locally with Cloudflare tunneling. Use when user asks to run locally, start local server, or test webhooks locally.

aiagentwithdhruv/skills

MCP server for AI-powered macOS control — apps, display, audio, files, screenshots, clipboard

aiagentwithdhruv/skills

Deploy execution scripts to Modal cloud. Use when user asks to deploy to Modal, push code to cloud, or update Modal functions.

aiagentwithdhruv/skills

Scrape and verify business leads using Apify, classify with LLM, enrich emails, and save to Google Sheets. Use when user asks to find leads, scrape businesses, generate prospect lists, or build lead databases for any industry or location.

aiagentwithdhruv/skills

Query Skool community content using RAG pipeline with vector search. Use when user asks to search Skool knowledge, find community answers, or query Skool content.

aiagentwithdhruv/skills

Scrape Upwork jobs and generate personalized proposals with cover letters. Use when user asks to find Upwork jobs, create Upwork proposals, or apply to Upwork listings.

Skills associés