Skip to content

jev-mailroom

Email triage proof of concept: one Jev call with 11 narrow questions per message, combined in Python into kind and topic labels.

Projectprototype

Overview

jev-mailroom is a mailbox triage proof of concept. A fake IMAP server feeds a listener, the listener sends each email to Jev in one batched call with eleven questions, and plain Python turns the answers into labels that a small dashboard shows. It only reads and labels mail; nothing sends, replies or moves money.

The design is shaped by two properties the README calls out: questions in one request are answered independently and cost about the same as one, and the model cannot do arithmetic, compare dates or count. So it asks many narrow questions and keeps every threshold and weight in Python. Labels use two axes: kind (invoice, payment confirmation, account statement, promotion, newsletter, other) and category (education, electricity, telecom, banking, airline, other), so combinations like promotion/banking are expressible.

What the decision model decides

TypeQuestionAnswers
Choicekind: what is the email doing?invoice · payment_confirmation · account_statement · promotion · newsletter · other
Choicecategory: what is the email about?education · electricity · telecom · banking · airline · other
Yes / nostates_amount_owed: is a figure presented as money owed?yes · no
Yes / nofrom_billing_entity: is the sender a biller rather than a person or marketer?yes · no

How it works

  1. Fixture emails are served by a local IMAP stub
  2. The listener sends one Jev call with 11 questions per email
  3. Python combines answers with thresholds into kind and category labels
  4. Results go to results.jsonl and a dashboard on port 8000

Strengths

  • Many narrow questions for roughly the cost of one call
  • All arithmetic and thresholds stay in auditable Python
  • Read-only design with no side effects
  • Offline mode for working on the pipeline without API calls

Caveats

  • Proof of concept using synthetic fixtures and a fake IMAP server
  • Requires a TypeSafe API key
  • Licence not stated

Getting started

Set TYPESAFE_API_KEY (or ~/.typesafe.key), run ./jev.sh start and open http://localhost:8000/dashboard.html.

At a glance

Type
Project
Status
prototype
Language
Python
Runtime
Local services (IMAP stub, listener, dashboard)
Has code
yes

Use cases and integrations

How curated lists describe it

  • Email triage PoC: reads a mailbox over IMAP and classifies each message by what it is and what it's about, using TypeSafe System One (Jev) — 11 questions in a single call, decided in Python.

    hellogumbo/awesome-jev

Frequently asked questions

What does Jev decide per email?

Eleven typed answers, including what kind of email it is, what it is about and several billing signals, which Python combines into labels.

Why ask so many questions?

Questions in one request are answered independently and cost about the same as one, so narrow questions are cheap and easier to threshold.

Can I run it without a real mailbox?

Yes. It ships fixture emails and a fake IMAP server; you only need a TypeSafe API key.

Related projects

  • Open-source AI email assistant; listed as using Jev as an optional classifier for email intent and triage.

    ProjectproductionTypeScript
  • Chinese-language Zotero AI reading assistant that uses Jev judgments to classify papers in your library.

    LibraryproductionJavaScript
  • Privacy-first personal knowledge management system, listed as integrating Jev for document classification and tag routing.

    PluginproductionTypeScript
  • Classifies tax PDF pages into 261 IRS forms and 7 page kinds with one Jev request per page and a confidence gate.

    ProjectproductionTypeScript
  • Config-driven IMAP inbox classifier with a terminal UI where Jev answers yes/no per category to tag, move, flag or notify.

    ProjectbetaPython
  • Rust tool that asks Jev which PDF pages genuinely need OCR, extracting text pages locally and sending only the rest to OCR.

    ProjectbetaRust