Skip to the article
Conxfolio
Blog · Evidence

A résumé parser with no model in it, and what it prints instead

Conxfolio calls no language model anywhere. The thing that reads your résumé is ordinary code, and it tells you what it did with your file.

— a reader that cannot invent has nothing to hallucinate with.

The Conxfolio import review after reading a pasted résumé, showing the reading line, one open question and the fields that were filled
The import review. Everything on it came out of the document; the line under the heading says how the document was read.

Almost every résumé tool released in the last three years reads your document by sending it to a language model and asking for JSON back. It works often enough to demonstrate and it fails in a particular way: the model fills gaps. A missing job title becomes a plausible job title. A date it could not read becomes a date that looks right. You cannot see which is which, because the output has the same shape either way.

The résumé builder here does it differently, and the difference is visible on the screen rather than in a claim.

The reader is code, and it says so

The file that reads a résumé opens with a line stating that no model is ever called: no provider, no key, no network call. That is not marketing copy, it is a comment above the functions that do the work, and the functions match it. Nothing in Conxfolio calls a model. The readers, the score and the letter engine are all deterministic, which is a large part of why the whole product is free.

Rules first, specialists over the top

The first pass is a set of heuristic rules: find the headings, split the entries, pull the contact line. Those rules are the floor and they are never overruled downwards. Over them run the specialists, one per kind of section, each reading the same text with a narrower grammar in mind and each returning a confidence in what it found. A specialist may re-file a section the rules could not name, supply entries where the rules found none, or adopt a split its own reading proves. It may never delete what the rules already read.

The line that says how your file was read

The reading line on the import review, reading: Read by 5 specialists, 1 page
The reading line on our test import. Every clause is a count of something that happened.

We pasted a 162-word résumé for an invented backend engineer, Ada Fennimore, who does not exist. The review reported five specialists and one page. That is the number the reading returned for that file, so a shorter document will report fewer. There is no fixed number to quote as a product claim, and when a response carries no reading report at all the surface prints nothing rather than a sentence about work that did not happen.

A specialist may quote, and only quote

The rule that does the most work is the narrowest one. Every string a specialist emits is checked, in code, to be a span of the source document. A value that fails the check is dropped and counted. The consequence is that the reader has no way to produce a sentence you did not write. It can be wrong about where your sentence belongs. It cannot be wrong about whether you wrote it.

What it left empty

On our test file the review filled the name, the email, the phone, the location, the summary, nine skills, two roles with their bullets, and one degree. It reported Target role as not found, LinkedIn as not found, and zero certifications, zero languages and zero projects, each with a plain sentence saying it could not confidently identify one. An empty field is the honest output of a reader that will not guess, and the import review is where you see it.

Uncertainty becomes a question, not a decision

Where the reading is unsure, it asks. Our file produced one question: the first role had been read under Experience, and the reader wanted to know whether it belonged on the page as a project instead. Nothing is applied until the question is answered, which is the subject of its own piece on questions instead of guesses.

Free and deterministic are the same sentence

A reader that calls a model costs money on every visitor, which is why every tool built that way meets you with an account, a trial or a queue. This one has no per-visitor cost at all, so nothing has to be held back to pay for it: every design, both export formats, no watermark and no account. The limits that do exist are on the shared endpoints rather than on you, and they exist to keep a renderer up rather than to sell a plan.

It also makes the behaviour stable. The same file read twice returns the same reading, which is what makes the questions and the drop counts meaningful at all. A probabilistic reader can produce two different documents from one file on two afternoons, and there is no honest way to report that in a line of counts.

What this does not do

A deterministic reader is not a better writer. It will not improve your bullets, it has no opinion about your career, and it cannot tell whether an employer's own parser will agree with it. What it gives you is a reading you can audit line by line against the document you uploaded, and a file whose contents you can still recognise afterwards. If you want a measurement of how readable that document is, that is a separate tool: the ATS résumé checker, whose arithmetic is printed on its own report.

Import a résumé and watch it being read

Paste it or upload it. The review shows every field it filled, every field it left empty, and how the file was read.

Open the résumé builderCheck a résumé instead

Questions

Does Conxfolio use AI to read my résumé
No. There is no model call anywhere in the product. The reader is a set of deterministic functions, and the file that holds them says so at the top: no provider, no key, no network call to a model. The same is true of the scorer and of the letter engine.
What is a specialist
A reader for one kind of section: experience, projects, education, certifications, skills, languages and plain lists. Each one runs over the heuristic rules, which stay as the floor, and each returns its own confidence in what it read.
Why does the number of specialists change between files
Because it is a count of what actually ran on your document, not a badge. A page with three sections does not need seven readers. The line prints the number that reading returned, and prints nothing at all when a response carries no reading report.
Can a specialist write a sentence for me
No. Every string a specialist emits is checked in code to be a span of your source text. A field that fails that check is dropped and counted rather than shown. It cannot compose a sentence, guess a date or name an employer your document does not name.
Where does the file go
A file you import is read in this browser first. Only the text it contains is sent to be sorted into fields, and if this browser cannot read the file, the file itself is sent instead. The work then stays in the browser under one storage key.

Conxfolio is a free set of four career tools: a résumé builder with 37 rendered layouts, an ATS résumé checker that prints its own arithmetic, a cover letter builder that traces every proof paragraph back to the line it came from, and a portfolio builder with 20 authored designs. There is no account to create, nothing is held back for a paid plan, and no language model is used anywhere in the product, so the readers, the score and the letter are deterministic code you can check.