Research and evals

The rules came from testing, not guesswork. Here is what was tested, and what wasn’t.

The method

Before any instructions were written, the same resume was parsed many times, changing one thing at a time, and scored against an answer sheet.

ToolType
pdftotextRaw text extraction
OpenResumeRule-based parser (single-column, English, US-oriented)
AffindaCommercial machine-learning parser with candidate search

Read the full findings

What changes what recruiters see

Your latest job title decides your role in search

Affinda assigned the most recent title verbatim, and a headline or summary didn’t change it. A “frontend engineer” search matched only titles containing that exact phrase.

Key evidence belongs in Experience, not only Projects

Affinda never showed Projects. Ongoing real work (freelance, your own product) goes in Experience.

Stack the Education block

GPA was extracted only when school, degree, location/date and GPA each had their own line.

Safe habits

These broke a simple parser and cost nothing: standard headings, one column, clear space around contact separators, visible space between entries, one page, hyphenation off, no icons.

In OpenResume, the original resume lost its email, phone, links and 4 of 5 jobs even though its raw text was perfect. Spacing fixes recovered them without changing a word.

Limits

The title finding comes from Affinda and hasn’t been tested elsewhere. The Education finding rests on two versions in one tool. Autofill in real systems such as Workday, Greenhouse and Lever is still an open question.

Does it work? Evals

The plugin ships with an eval suite: 11 cases with fictional candidate Jane Doe and fictional job postings, each scored by regex checks on the files produced and by an LLM judge on the reply.

JobWith UncookedPlain Claude
Good match (Pollen)0.960.50
Stretch AI role (Relay)0.950.50

Claude Sonnet, 3 runs each, identical checks. Plain Claude gets the same resume and posting.

Plain Claude kept employer titles and invented no skills, but in every run it attached “4+ years” to TypeScript (the resume shows about 2.5 years at an employer), left freelance work under Projects, and never warned about the shortfall.

The other cases, all 1.00 on Sonnet, check that it turns a PDF resume into LaTeX word for word and asks you to confirm it before tailoring, stops on a job the candidate can’t legally take, removes overclaims already in a master resume, stays out of unrelated edits, logs applications without inventing fields, counts interviews correctly, and never marks an application “ghosted” without asking.

The scripts also have 103 unit tests.

Install it

/plugin install uncooked --marketplace mofopeadegoke/uncooked

New to Claude Code? Start here