Classify CSV Data with Jev and DuckDB
An audited input file and a clear integration checklist. The accompanying browser CSV checker is a local input utility, not the DuckDB extension. The browser Content demo is a separate teaching exercise, not an equivalent implementation.
Use caseTurn CSV, documents, or search results into reviewable data
A source-first companion to Hamilton Ulmer’s DuckDB example, with a safe preparation checklist.
Source · Hamilton Ulmer · X companion
2026-09-21 · Editorial update; no live model call
Problem
Section titled “Problem”Copying a large table from a database into a separate prompt loses IDs, filters and context. The community idea here is to bring row classification closer to the data. This guide stops short of installing an unverified extension and instead prepares a small, inspectable input and output contract.
Before you begin
Section titled “Before you begin”- Basic familiarity with tables and stable primary keys.
- A local CSV or an authorized copy of a database extract.
Sources
Section titled “Sources”
Image from Hamilton Ulmer’s original X post. The post is linked; this is not a JevLog test result.
1. Open the original source first
Section titled “1. Open the original source first”Follow the X link in Sources. Identify the current repository, installation instructions, license and supported database version. The source post could not be fetched directly during this review, so no extension name or installation command is guessed here.
2. Select a small, safe input
Section titled “2. Select a small, safe input”Export only the ID and text you need. Do not send an entire production table, credentials or unrelated fields. Record the number of selected rows before any classification step.
3. Audit the exported file
Section titled “3. Audit the exported file”Open the CSV input checker and choose a non-production export with a stable ID and text column. Inspect headers, missing text, uneven rows, duplicate IDs, and repeated content locally in your browser. The tool does not silently delete duplicates; two customers can report the same issue.
A semantic cache may reuse matching text under the same conditions, but every original ID still needs its own result.
4. Define an output that can be joined back
Section titled “4. Define an output that can be joined back”Require the original ID, a permitted label, the model version and an explicit error or review state. Preserve failed rows. A classifier result should never be accepted merely because the number of returned rows looks plausible.
5. Measure the whole workflow
Section titled “5. Measure the whole workflow”On a small non-sensitive test set, measure reading, request time, retries, writing and manual correction separately. This package does not provide a Jev/DuckDB extension or claim a speedup. Follow the original project for actual integration work.
Practice sample: download reading_list.csv for local use; not a live run here.
Check the result
Section titled “Check the result”An audited input file and a clear integration checklist. The accompanying browser CSV checker is a local input utility, not the DuckDB extension. The browser Content demo is a separate teaching exercise, not an equivalent implementation.
- You can identify the input, its source, and the fields that leave your system.
- Original identities, failed rows, uncertain cases and human corrections remain visible.
- You distinguish an offline fixture, an author demo and a live evaluation you ran yourself.
Continue reading
Section titled “Continue reading”- CSV preflight tutorial: blanks, duplicate IDs and wrong columns
- Human review queue tutorial: low scores and missing labels
Does calling from SQL keep data local?
Section titled “Does calling from SQL keep data local?”Not necessarily. Inspect the extension’s network behavior.