How it works
What happens between your sentence and a company’s percentage.
Nothing here is a black box, because a hiring decision made on a number nobody can audit is a decision nobody can defend. This page is the mechanism in plain language.
Three layers of data
The separation is the whole design. Only the third layer is ours to change.
- 1
The source
What you gave us — the message you wrote, the document you uploaded, in your own language. It never changes. Most AI products throw the input away and keep the output; this one does the opposite.
- 2
The claim
One assertion per row, with the sentence it came from and the time it holds for. Only ever added to, never rewritten. A correction is a new claim with today’s date, so the record has a history instead of a current state.
- 3
The interpretation
Which canonical concept a claim points to. This layer is disposable on purpose: when the matching gets smarter, it is rebuilt from layer two and nothing you said is lost. A bug here can never destroy your evidence.
Four sieves, in rising cost
Two people who know the same thing must land on the same concept, or they match neither each other nor the same job. Deciding when two names mean one thing is the hardest part of the system, so it is done in four steps and the cheapest one runs first.
- Sieve 1
The exact name
Normalized and looked up. Cheapest, and right most of the time.
- Sieve 2
A known alias
Names we have already learned belong to the same concept — both as written and normalized, so the lookup actually reads them.
- Sieve 3
Meaning
A vector comparison, weighed together with how close the names are. Postgres and PostgreSQL merge; MySQL and PostgreSQL do not, although the vector alone can barely tell them apart.
- Sieve 4
A new concept
When nothing matches, the vocabulary grows. A false merge is far worse than a missed one in hiring, so the thresholds err toward missing.
One vocabulary, and your own words
Every concept in the graph is stored in English, because otherwise two people who know the same thing in two languages end up on two separate nodes. Three things are kept exactly as you wrote them: the raw source, the quoted sentence that proves a claim, and the term in your own words. A translated quotation is no longer proof.
Questions about the mechanism
- Does a model write the queries?
- No. The model returns a structure and Python assembles the query. Small models call tools unreliably and will claim to have written something they did not, so the only thing the model is trusted with is reading text and returning a shape.
- What if the model guesses a date?
- It is not allowed to. “Time unknown” is a correct answer and is stored as one; the agent asks instead of guessing. An age is computed from a birth date when it is read, never stored as a number that quietly goes stale.
- What is a percentage, exactly?
- A listing has requirements. For each one, the system looks for a claim that meets it through the four sieves. Met requirements show the claim and its quoted sentence; unmet ones stay in the result. The percentage is a computation over that list — it is for sorting, and the receipts are for deciding.
- Can I see everything you hold about me?
- Export produces one document with your account, every source, every claim with its sentence, your conversations, your companies, the token ledger and your notifications. One click, any time.
- What happens when you improve the matching?
- The interpretation version is raised and layer three is rebuilt from layer two. Your graph improves without you doing anything, and nothing you wrote is touched. Any field that is going to survive a rebuild has to exist on the claim first — that rule is in the project’s own rulebook.
Read it, then check it.
Everything on this page is visible in the product: the sources, the claims with their sentences, and the match with its working. Nothing is behind a sales call.