Article
CommunityJev Guides & Articles
How I Stopped Misclassifying Jobs with Jev
Angel Nikolov's field report from three remote job boards: one Jev fan-out call per posting replaces keyword rules for sites, seniority, regions, work model, and benefits, with shadow mode before enforcement.
- Format
- Article
- Reading time
- 2 min
- Published by
- Community
- Author
- Angel Nikolov
- Last verified
- Oct 2026
- Platforms
- CloudflareNext.js
Highlights
- Keywords mislabeled a security role as AI, a Unity client role as backend, and a JavaScript role as Java before Jev was added.
- One fan-out call per posting: 4 site Nouls, 1 seniority Choice, 8 region Nouls, 1 work model Choice, and 13 benefits Nouls.
- Salaries stay on regex by design: money needs exact extraction, not judgment.
- Fail-safes: no token means no call, an 8-second timeout with one retry, dedupe before calls, and concurrency capped at 5.
- They run Jev via Cloudflare Workers AI (typesafe/jev) to keep calls inside their Cloudflare-hosted Next.js stack.
Watch out
One team's experience on three job boards, not a benchmark; the performance and cost figures quoted (193x faster, 444x cheaper, $0.042 per million input tokens) are TypeSafe's vendor claims. Benefits are pruned only when sure, and location is weighted heavily for region classification.
Questions about this entry
Short answers drawn from the linked project or page.
A security role was tagged as AI jobs, a Unity client role as backend jobs, and a JavaScript role as Java jobs, all from the old keyword rules, and all three were live until a reader complained.
One fan-out call per posting carries every question: 4 site Nouls, 1 seniority Choice, 8 region Nouls, 1 work model Choice, and 13 benefits Nouls, built in one file so prompts stay reviewable. They invoke it through Cloudflare Workers AI as typesafe/jev.
Shadow mode first: Jev runs on a sample of about 25 posts per feed, writes raw answers to an audit field, and logs what it decided versus keywords, changing nothing. In enforce mode, confident structured decisions can update the row and below-bar cases keep the keyword result.
By design: money needs exact extraction, not judgment. Salaries were deliberately left out of the Jev questions.
Reading and isolating the benefits section of the full post, since perks often sit past 6,000 characters and snippets miss them, and weighting the location field heavily for region Nouls, because a bare Remote with no place named means worldwide.
No token means no call and keywords keep working; an 8-second timeout with one retry for transient errors, then skip; calls run only on posts that already passed dedupe; and concurrency is capped at 5 so mail and ingest never stall. Every method returns null on error.
Every classified posting keeps its raw Jev answers as JSON with the model name (jev-1.13.0) and timestamp, every call writes a queryable log row with latency, tokens, and what was applied versus logged, and an /audit-jev view compares keywords against Jev structured decisions.
From the Jev guides
Original write-ups on what this entry is for.
From the Jev AI model community
Posts from builders shipping with Jev right now.