Teiva Harsanyi uses Jev to filter engineering articles and rank them against a reader’s written interests. His Barista architecture writeup explains a concrete failure: grading several candidates together let neighboring articles change each other’s grades.
Retrieve broadly, then judge individually
- An embedding model turns articles and interests into vectors, numerical representations used to find related text. Separate interests get separate searches through Postgres’s pgvector extension.
- Jev first classifies each article’s domain, depth, quality, spam risk and paywall status. Application rules discard unsuitable articles before embedding or personalized ranking.
- For ranking, Jev sees the reader’s interests, one candidate’s metadata and opening text, earlier classification, and recent feedback.
- Harsanyi reports that sending the whole backlog together produced unstable grades. He switched to a separate request per candidate, then stores grades until new feedback requires reassessment.
The reported improvement comes from controlling the decision’s context. The article supplies no repeated-run measurements or held-out relevance evaluation to establish how stable or accurate those grades are.
Keep selection rules outside the model
Barista’s ranking question offers poor, weak, good and excellent fit. Harsanyi describes a probability-weighted score that lets code compare candidates between those levels.
- The normal selection rule requires at least a good fit.
- The day’s best candidate is an exception, so the system can still send an article when every grade is below that bar.
- Typed answers simplify parsing. They still need evaluation against what readers actually want.
Put the work queue beside the data
Postgres also holds queued work and per-user schedules. Workers claim rows with FOR UPDATE SKIP LOCKED, which locks available work while letting other workers move past busy rows.
Harsanyi groups saving an article and queuing its next stage in one transaction. He also names the cost: some transactions remain open during network calls, holding connections and locks.
Caveat: this is the operator’s implementation report, with a stated five users. Its ranking behavior and cost claims were read, not independently reproduced.