Skip to content

jev-codebook

Applies a qualitative codebook to open-ended survey answers and reviews with Jev, exporting uncertain rows for human review.

Projectprototype

Overview

jev-codebook, documented in French, English and Spanish, applies a qualitative research codebook to open-ended text such as survey answers and reviews at scale using Jev. Each response is coded against the codebook's categories, and uncertain rows are kept for people rather than labelled automatically; the top candidate and probability are hints for the reviewer, not a final label.

The review workflow is designed to be auditable. A review-export command produces a CSV of uncertain messages, and the apply step re-imports human annotations while checking fingerprints of both the row and the codebook, rejecting stale reviews, retaining extra columns and writing a separate audit log, without changing the original text or probabilities. Examples run on a synthetic support fixture, including a round trip that exports one uncertain row, applies a simulated human annotation and closes the review.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich codebook code applies to this response?(inferred)—
Yes / noIs this row too uncertain to code automatically?(inferred)yes · no

How it works

  1. Define a codebook
  2. Jev codes each open-ended response
  3. Export uncertain rows to a review CSV
  4. Humans annotate; re-import with fingerprint checks
  5. Keep an audit log

Strengths

  • Human review built in for uncertain rows
  • Fingerprints prevent stale or mismatched reviews
  • Multilingual documentation

Caveats

  • Examples use synthetic data
  • Accuracy on real codebooks not reported in the excerpt

Getting started

`python3 -m examples.review_export` to produce a review CSV from the synthetic fixture.

At a glance

Type
Project
Status
prototype
Language
Python
Runtime
CLI and library
Has code
yes

Use cases and integrations

How curated lists describe it

Frequently asked questions

What does Jev decide?

Which codebook code fits each open-ended response.

What happens to uncertain rows?

They are exported for human review; the top candidate is only a hint.

How are reviews kept consistent?

Row and codebook fingerprints are checked and stale reviews rejected.

Related projects

  • Chinese tool that scans a Bilibili video's comments for rhetorical moves, with eight labels and quoted evidence, optionally via Jev.

    ProjectprototypeJavaScript
  • dbt package whose macros run Jev Choice, Noul and Score over SQL values in DuckDB and ClickHouse models.

    ProjectbetaSQL (Jinja)
  • DuckDB extension that asks Jev about every row in SQL and returns answers as ENUM, DOUBLE or STRUCT columns.

    PluginbetaC++
  • Python and Node library that classifies Hugging Face dataset rows on typed Choice, Score and Noul dimensions using Jev.

    ProjectbetaPython, TypeScript
  • Codex plugin for batch labelling JSONL records with Jev under custom policies, with Codex reviewing uncertain labels.

    MCP serverbetaTypeScript
  • Moves a coding agent's bulk semantic judgments (triage, tagging, routing) to Jev; an A/B reports 78% fewer tokens at similar accuracy.

    ProjectbetaPython