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.
| Tool | Type |
|---|---|
pdftotext | Raw text extraction |
| OpenResume | Rule-based parser (single-column, English, US-oriented) |
| Affinda | Commercial machine-learning parser with candidate search |
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.
| Job | With Uncooked | Plain Claude |
|---|---|---|
| Good match (Pollen) | 0.96 | 0.50 |
| Stretch AI role (Relay) | 0.95 | 0.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