Email Triage is a self-hosted email automation system that classifies, routes, drafts replies, schedules meetings, and produces aggregated digests — running on infrastructure you control. Sovereign AI by default. HIPAA-class controls throughout. For high-subscription readers, the newsletter digest alone can give back an estimated 60–90 minutes a day — an illustrative estimate for a subscription-heavy inbox, not a measured guarantee.
It's the working reference implementation behind Craig LaForest's fractional-CTO practice — proof of what a sovereign, regulated-grade build looks like in a real inbox, not a product to buy off a shelf.
/dashboard — at-a-glance activity, classification stats, recent triage runs
The problem
Knowledge-worker email has four failures the inbox alone cannot solve.
A typical professional inbox is 70–80% mail that requires no action. The 20% that needs attention is buried.
Important mail sits unread for hours. Time-sensitive items — sponsor deadlines, IRB notices, security alerts — get missed.
Every response needs a courteous opening, substantive middle, and closing — even when the middle is "yes, 10am works."
Check calendar, pick 2–3 slots, write proposal, handle back-and-forth. The mechanical part is automatable.
Headline Capability
Your email stays inside your network by default, by design. The classifier and drafter run on your own infrastructure — Ollama on a GPU you control. Cloud LLM backends are supported, but only for non-HIPAA accounts or after explicit BAA acknowledgment recorded in code, not policy. For a law firm or legal department, that same boundary is a confidentiality argument: no third-party AI vendor receives your text, so there is nothing for an opposing party to subpoena and no outside disclosure to argue a privilege waiver from.
The classifier runs on your own hardware (local Ollama; Qwen / Llama / Mistral). Email content never crosses a third-party API — so there's no outside vendor to vet, no data-sharing agreement, and no external audit boundary to argue about.
OpenAI / Gemini / OpenAI-compatible cloud backends supported. HIPAA-flagged messages skip cloud routing until BAA acknowledgment is recorded in the audit log. Code-enforced, not policy-enforced.
When it drafts a reply, the system reads your past sent email — the most privacy-sensitive step. That lookup is permanently locked to your own servers; wiring it to a cloud service fails the build automatically. (For your reviewer: the embedding/RAG path is allowlisted local-only, enforced by a static privacy-invariant test.)
How it works
New mail arrives. The classifier sorts it. The router applies your rules. Actions fire. Every classification produces an audit row showing which model, what category, how confident, what reasoning, what action.
Key differentiators
Local Ollama by default. Cloud backends supported with BAA gating. Hybrid patterns possible. You pick.
A HIPAA profile turns the always-on controls on together — PHI-scrubbed logs, redacted notifications, and a cryptographic audit chain. Stricter gates like recipient verification are opt-in on top. Aligned to (not certified against) HIPAA §164.
First-class Gmail (Pub/Sub push), Office 365 (Graph), and IMAP (IDLE). Multi-account, multi-provider.
Categories, routes, and actions are user-defined and visible in a web UI. No black-box behavior.
Supervised background workers, a durable per-message retry queue, and no-reprocess cursors mean a provider timeout, a restart mid-sync, or a network blip can’t make an inbound message vanish or get triaged twice. A daily health email confirms it’s still working — and stays quiet on a clean day.
Every classification and access lands on a keyed HMAC-SHA256 hash chain across nine tables. An operator-runnable verifier pinpoints where any tampering occurred, and the chain stays verifiable across master-key rotation — something most vendors’ compliance decks can’t show.
Deactivating an account or user purges live credentials and stops reading immediately — but the audit history survives. A soft delete, so removing access never destroys the compliance record you may later need to retain or produce.
Reads your calendar, suggests free slots, drafts meeting-acceptance replies with proper iCal threading.
Newsletter digest collapses 30+ subscription feeds into one inbox entry at 7 AM with summarized article cards. Triage-activity digest at end-of-day shows you exactly what the system did with your mail.
Everything the system does is scriptable, so your own tools or AI agents can drive it. (For your IT team: 27+ JSON endpoints, bearer-token auth, per-token rate limits, HIPAA hard-off. See the API page.)
Killer feature for the high-subscription professional
The newsletter digest pulls every subscription feed from the last 24 hours, has the local LLM extract per-article structure (headline, summary, link), groups by source, and delivers one HTML digest to your inbox at 7 AM.
Research clinicians, financial analysts, consultants — anyone whose job requires staying current on a high-volume subscription feed — spend an estimated 60–90 minutes per day on newsletter skimming. Only 5–10% of articles deserve a real read.
From "120 inbox entries the system can't help me with" to "one digest with 90 article cards I can scan in 5 minutes." Click through the 5–10 worth reading. Close the tab on the rest. Daily time recovered: an estimated 60–90 minutes for a subscription-heavy inbox.
Companion triage-activity digest at end-of-day: counts per category, per-message detail, drafts awaiting review, low-confidence flags for rule tuning. You never lose visibility into what email-triage did with your mail.
A daily 7 AM digest — 12 articles across 5 sources, scannable in 5 minutes
Inside the running system
No black-box behavior. Every category, every rule, every operational signal is visible in the admin UI.
/rules — operator-controlled mailing-list, sender, and regex rules that bypass the classifier
/categories — system defaults + your custom categories with editable descriptions
/admin/stats — classifier latency, cache hit ratio, push watcher health, supervised tasks
What lands in your inbox
Email Triage drafts; you review and send. Nothing leaves your outbox without explicit operator action.
A drafted reply in the email client's Drafts folder — threaded into the original conversation, calendar-aware, ready for review
Engagement models
The code is open-source and self-hostable on your own. These are engagement models for having a fractional CTO stand it up, harden it for your regulatory posture, and keep it running.
Use cases
High-volume sponsor/IRB/manuscript inbox. HIPAA-aware. Daily digest collapses noise, surfaces what needs response.
HIPAA-regulated by default. Audit chain on every staff access. Drafted patient correspondence for clinician review.
Multiple client mailboxes with isolation. Per-client style profiles. Meeting-request intercept across engagements.
Podman + Tailscale + Ollama on a GPU you own. Self-service deployment with the same compliance posture as enterprise. Want it hardened for a regulated workload? That's a CTO conversation.
Verify it yourself
Everything here is inspectable: the supply chain is auditable and the install is buildable by your own ops team — no engagement required to deploy it yourself.
Apache 2.0. Read the code, fork it, audit it.
Every release is cryptographically signed and tied to the exact public build it came from — so you can prove the software you run is what was published. (For your reviewer: cosign keyless-OIDC signature, SLSA-3 provenance, and a separate operator-approval attestation; HIPAA installs verify both before pull.)
ghcr.io/unlimited-data-works-llc/email-triage
Hash-pinned embedding-runtime tarball with SHA-256 sidecar. Sideload through the admin UI; same verification as the auto-download path.
Latest release · v0.2.0
v0.2.0 deepened the compliance evidence and added features built for regulated research. A few highlights:
The entire database is now AES-256 encrypted on disk (SQLCipher), on by default, with a fail-closed boot — HIPAA §164.312(a)(2)(iv).
Can be configured to watch for the mail that starts an FDA IND / EU SUSAR / IRB clock — detection is opt-in and a human confirms every clock; informational only, never assuming your regulatory liability.
Track a study across mailboxes in one scheduled digest — no PHI persisted, delivered only to your own inbox.
A 30-minute call with Craig covers whether a sovereign build like this fits your environment, your compliance posture, and your team's workflow — and what it would take to stand it up for you.