DJY89
← Work index
0x0011f41 · SEC/WORK/EMAIL-TRIAGE · REV.03

Email Triage Assistant

An AI email classification system that checks Office 365 on a schedule, applies routing rules, and creates Asana tasks with failure alerts on personal infrastructure.

Live
Next case ↗
email-triage
[09:15:22] Polling inbox... 5 unread
Analyzing: "Re: Project deliverables"
→ Client Request (0.94) | Priority: High
→ Skill match: Project Management
✓ Task created → Assigned to @pm-lead
Analyzing: "Weekly Newsletter"
→ Marketing (0.99)
→ Rule: skip-newsletters
⊘ Skipped (auto-archive)
Analyzing: "Invoice #4521 attached"
→ Finance Request (0.91)
→ Skill match: Accounting
✓ Task created → Assigned to @ops-team
Analyzing: "Quick question about API"
→ Technical Support (0.88)
✓ Task created → Assigned to @pm-lead
[09:15:31] 3 tasks created | 1 skipped
Email Triage AssistantFIG.01

Overview

Built for my own workflow on personal infrastructure. It polls Office 365 every 15 minutes, classifies each email with Claude, and either creates an Asana task or archives it based on configurable routing rules.

The Problem

The daily inbox was a time sink:

  • Critical requests buried in promotional noise
  • Action items forgotten in long thread chains
  • Context lost when forwarding emails to project tools
  • Hours wasted on manual sorting and task creation

The Solution

A system that runs continuously on personal VPN infrastructure, processing emails every 15 minutes:

Intelligent Classification

Claude AI analyzes each email against a configured skill matrix, determining:

  • Category: Client request, internal task, notification, spam
  • Priority: Urgent, high, normal, low
  • Routing: Which team member or workflow should handle it
  • Action Type: Requires response, task creation, or archive

Automated Task Creation

When an email requires action, the system:

  1. Extracts key details (deadline, stakeholders, requirements)
  2. Links relevant SOPs for self-service resolution
  3. Creates properly formatted Asana tasks
  4. Attaches the original email for context
  5. Assigns based on skill-based routing matrix

Technical Architecture

Key Components

Email Monitor Service

  • Systemd service running on Debian 12 VPN server
  • Polls Microsoft Graph API every 15 minutes
  • Tracks processed emails to prevent duplicates

AI Classification Engine

  • Claude 3.5 Haiku for cost-effective classification
  • Custom prompt engineering for business context
  • Structured output parsing for reliable routing

Rules Database

  • SQLite for routing rules and client associations
  • Configurable skill matrix for team assignments
  • SOP linking for common request types

Results

The system has been running in production since late 2024:

  • ~30 minutes saved daily on email processing
  • 15-minute polling cadence for new messages
  • Actionable messages routed into Asana with the original email attached
  • Scheduled operation with email failure alerts

Technical Highlights

  • Stateless Design: Each poll is independent, enabling easy recovery
  • Failure Resilience: AWS SES notifications on any processing errors
  • Context Preservation: Full email thread linked to every task
  • Cost Optimized: Haiku model keeps AI costs under $5/month

0x0011f42 · SEC/WORK · MEASURED RESULTS

Approximate Daily Saving

30 min

Email processing in my own workflow

Polling Interval

15 min

Scheduled mailbox checks

Monthly AI Cost

<$5

Claude Haiku optimized

Scheduled Operation

15 min

Mailbox checks with alerts for interrupted processing

0x0011f43 · SEC/WORK · RELATED SYSTEMS