Skip to content
AI Primer
workflow

Developers are adopting Jev for document classification

Developers report using Jev to score inbox content, classify invoices, and split documents into categories. DocJev’s author claims 6x lower latency than GPT-5.6 Luna at equivalent accuracy for document classification and splitting.

5 min read
Developers are adopting Jev for document classification
Developers are adopting Jev for document classification

TL;DR

  • DocJev couples document parsing to a bounded decision layer, and jerryjliu0's DocJev announcement says natural-language category rules can classify a document or split a packet into component documents.
  • The shared 40-PDF field test put Jev and GPT-5.6 Luna at 40/40 for classification, while jerryjliu0's benchmark graphic shows Jev split 7 of 8 packets exactly versus Luna's 8 of 8.
  • Builders are connecting the outputs to accounting codes, supplier matching, reading priority, file moves, and incident folders, from kevinkern's invoice build to levie's Box demo.
  • The integration surface is deliberately machine-facing: AskVenice's API announcement describes a state-plus-typed-questions request that returns a branchable probability, choice, or score rather than prose.

A 15-page DocJev demo packet contains two adjacent auction-result documents with the same category, a tougher test than merely identifying their labels. Pydantic AI's TypeSafe integration turns each output-model field into a separate question, while the official Jev announcement describes the underlying stack as a System One model using a parallel sampler and RLCD training.

Document classification and packet splitting

DocJev uses LiteParse for local page-text extraction, with optional LlamaParse for difficult OCR, then gives Jev the narrower task of choosing a document category or packet boundary. Its output includes probabilities and review flags.

The published field notes break the results out cleanly:

  • Classification: Jev, 139 ms and 40/40 correct; GPT-5.6 Luna, 794 ms and 40/40 correct.
  • Packet splitting: Jev, 210 ms and 7/8 exact; GPT-5.6 Luna, 1,352 ms and 8/8 exact.

The announcement says in jerryjliu0's launch post that its six-times speed comparison includes LiteParse time. The separate benchmark graphic labels its displayed timing as decision time excluding OCR, and describes 40 original public-sector PDFs rearranged into eight packets with agent-reviewed labels.

Outside documents, hrishioa's entity-resolution report claimed a TypeSafe data-pipeline integration cut costs 99%, lifted throughput by more than seven times, and came within one percentage point of Fable on its own task.

Invoice coding and supplier matching

Kern's invoice interface makes the decision space explicit: accounting-code candidates, a document-type choice, and a "no supported account" alternative. _avichawla noted in _avichawla's clarification that each probability is conditional on the candidate label set, so adding one label changes every other probability even when model and prompt remain fixed.

Kern says in kevinkern's implementation note that the workflow starts with PDF OCR, then uses Jev with custom rules and prompts; a linked DeepSeek model handles difficult cases. His kevinkern's matching plan scopes the account list and context to a company while targeting payment-to-invoice matching, and kevinkern's supplier update adds supplier detection, duplicate detection, and account merging.

A more elaborate routed "team" did not automatically improve the workflow. In kevinkern's routing test, Kern reported a run that cost nearly as much as Astra and reached its time limit before finishing.

Priority inboxes and corpus scoring

Keep's priority inbox assigns a "most likely to read" score from the content a person tends to consume, iannuttall's priority-inbox post says. Iannuttall reported classifying 1,600 saved bookmarks in 22 seconds, then using the rank to surface items in the app and email.

The input is broader than title matching. iannuttall's explanation says the classifier receives each item's content and tags, while iannuttall's follow-up adds read state and prior usage to the ranking signal. A separate iannuttall's PostShiba example routes support email summaries to Telegram twice daily and lets agents draft replies.

The same pattern can become a corpus audit: iannuttall's X-post analysis ran eight questions over 3,282 posts, reporting 4.25 million input tokens, $0.1282 in cost, and an 8-minute-34-second run.

File actions and incident routing

Marcel Pociot's Stagehand prototype classifies downloaded files against user-authored rules, then renames and moves matching invoices. The app uses a configurable confidence threshold, and marcelpociot's threshold explanation says lower-confidence files are left for manual review rather than moved automatically; marcelpociot's duplicate notice says duplicate detection only notifies the user.

The same prototype turns copied terminal commands and GitHub URLs into proposed actions, according to marcelpociot's clipboard workflow and marcelpociot's GitHub URL workflow. A potentially destructive command still requires review.

Box's workflow applies the pattern to an incident report: it asks whether customers are affected and how severe the incident is, then records the result and moves the file to escalate, monitor, or review. levie's Box demo presents that as a document workflow rather than a chat interface.

Typed API surfaces

TypeSafe documents three question types in its primitives reference: Choice selects from an allowed set and returns probabilities, Score places the state on an ordered rubric, and Noul returns a yes-probability. The model receives the application state separately from those questions.

AskVenice's beta exposes the same pattern as jev-latest; AskVenice's pricing and endpoint post lists POST /api/v1/decisions, 64K tokens per call, $0.042 per million input tokens, and free output. The developer route includes an agent skill: iannuttall's install post gives the npx skills add typesafe-ai/skills --skill typesafe-ai command, and iannuttall's use-case reply names A/B-test analysis, email-subject scoring, and churn identification as candidate applications.

Local and browser-side variants

Local replicas are already being tested alongside the hosted model. Kern's 3090 setup uses Qwen3.5-2B and direct next-token logits; its posted 40-question run took 1,222 ms at roughly 33 questions per second. In a separate comparison, kevinkern's image-classification test was faster than DeepSeek Flash but agreed with the reference review on 7 of 20 image pairs, and kevinkern's experiment update said two of five early ideas had failed so far.

Browser-sized experiments are taking the same selector primitive in stranger directions. nicdunz's sentence generator evolves 500 locally assembled sentences by ranking them through classifier.dev, nicdunz's Text DeepDream scores 36 mutated candidates per generation, and nicdunz's X-Ray demo labels sentences as claim, evidence, guess, or instruction. higgsfield_ai's asset-selection demo uses Jev to filter content and assets before DeepSeek and Higgsfield generate ad creatives.

Further reading

Discussion across the web

Where this story is being discussed, in original context.

On X· 7 threads
TL;DR1 post
Document classification and packet splitting2 posts
Invoice coding and supplier matching6 posts
Priority inboxes and corpus scoring5 posts
File actions and incident routing6 posts
Typed API surfaces4 posts
Local and browser-side variants7 posts
Share on X