Kurniadi Ahmad Wijaya
Forward Deployed AI Engineer
Built production-grade AI and software for banking, fintech and enterprise.
Technical Consultant, Software & AI · Metrodata (PT Mitra Integrasi Informatika)
Skip to content

Clearbox AI Inbox Cleanup for Gmail and Outlook

A self-hosted Gmail and Outlook assistant: Microsoft-Decision-1 scores email, code adds guardrails and reasons, and the owner approves every move to Trash or Archive.

Key results

  • 1,589

    Automated tests passing

  • 179

    Commits by Kurniadi in two days

  • 40

    Synthetic labeled emails in the model evaluation

Role
Solo builder: product design, implementation, infrastructure and tests (open source, MIT)
Period
Oct 2026
Project type
Featured
Room in the 3D HQ
L3:clearbox

Results

  • 1,589

    Automated tests passing

    Vitest suites for the core, Worker, web app and evaluation harness plus the script tests, run on a fresh clone, 16 Oct 2026.

  • 179

    Commits by Kurniadi in two days

    Repository history, 15 to 16 Oct 2026.

  • 40

    Synthetic labeled emails in the model evaluation

    The evaluation reports delete precision and recall, calibration and latency against the real model deployment, not production inbox precision or proof of the 98% agreement target.

Problem

Cleaning a busy inbox means reading email by email. Simple filter rules either miss bulk mail or trash something that mattered, and hosted cleanup services need broad access to the mailbox.

Contribution

  1. I built a per-email pipeline: Microsoft-Decision-1 on Microsoft Foundry returns trash, archive, keep and unsure probabilities; code derives reasons from headers and history, applies guardrails and sender priors, then fuses the scores. Trash suggestions must clear a threshold, calibrated only with enough labels. Moves need owner approval, with Undo for 24 hours and no permanent deletion.
  2. Review groups email by sender with a confidence band and up to three reasons from real signals; one Clean up moves only approved mail to Trash or Archive, with Undo for 24 hours and no permanent delete path.
  3. Once enough labels are available, a nightly job targets at least 98% agreement with the owner's trash decisions, using the newest 500 labels: at least 50 eligible labels and 20 supporting labels per candidate threshold. It searches 0.80 to 0.99 and falls back to 0.99 if none qualifies. Approvals and overrides update sender priors.
  4. It runs on Cloudflare Workers and D1 (EU jurisdiction) behind Cloudflare Access, with least-privilege OAuth, AES-256-GCM encrypted tokens, metadata and snippets only, and a Bicep deployment for the model in Sweden Central.

Code and research

Tech stack

  • TypeScript
  • React
  • Vite
  • Tailwind CSS
  • Hono
  • Cloudflare Workers
  • Cloudflare D1
  • Microsoft Foundry
  • Bicep
  • Vitest

I am open to freelance or part-time work in software and AI engineering.

kurniadiahmadwijaya@gmail.com
About and contactView CV