How Applivation’s Autofill Is Validated

Inside the pipeline that learns how applicant-tracking systems build their forms, and re-checks each round’s fixes in the real app on iPhone simulators.

Filling in a job application automatically sounds simple until you look at how hiring platforms actually build their forms. A country question is a native dropdown on one site and a search box that only looks like a dropdown on the next. Some questions appear only after another has been answered, and the same label can mean the applicant’s own city on one form and a former employer’s city on another. When a tool guesses wrong, the wrong value goes out under the applicant’s name.

Inside the app, filling is deterministic: rules decide which saved answer goes in each field, the applicant reviews them all on one sheet, and nothing is ever submitted automatically. That makes the engine’s quality exactly the quality of what it knows about real forms.

That knowledge is built and checked by the autofill validation pipeline, which runs outside the app. It surveys real postings and builds an answer key the engine can’t influence. It scores the shipped engine against that key and proposes rules from the evidence, and what it finds is fixed at the source. Each round’s fixes are then proved by driving the real app on iPhone simulators against live postings and judging every field. Much of that work is done by AI: agents run each round, label the answer key, review the results and write the fixes, and a local decision model proposes rules. Deterministic scripts check the models’ work in between, and rulings on what the app should do stay with a person.

This page is an outline of the pipeline. The full notes, with the measured figures and real excerpts from the work, are shared under NDA.

Survey

Captures real forms and labels every real field.

  1. Capture real postings
  2. Label every field blind
  3. Settle disagreements
  4. Answer key

Score and fix

Grades the shipped engine; rules and fixes come from the evidence.

  1. Score the shipped engine
  2. Model proposes a rule
  3. Validator tests it on every posting
  4. A person decides
  5. Agents fix findings
  6. Rules and fixes

Prove

Re-checks each round’s fixes in the real app, on iPhone simulators.

  1. Drive the real app
  2. Judge every field
  3. Compare with the screen
  4. Findings
Findings return to the survey as new captures, corrected facts and regression tests.

The ideas, briefly

  1. A deterministic app

    The app itself fills by rules: every field’s meaning comes from them, so the same fields always map the same way. That matters to engineering as much as to trust: when a form breaks, the fix is a rule or a code change plus a regression test that proves it. A language model was built into the app as a tie-breaker and then measured: it got far more wrong than right, so it was switched off.

  2. Run by AI agents, checked by scripts

    The pipeline is where the models work. AI agents run each round: they drive the scripts, label the answer key, review every audited field and write the fixes. The agents that label can read only the worksheet they’re handed, and anything a model changes in the app, a rule or a fix, has to pass checks that aren’t models before it ships: the rule validator, the test suite and the scorecard. Rulings on what the app should do are made by a person and written down.

  3. The pipeline, and the canon it builds

    The pipeline is the instrument. It lives outside the app and never runs in it. What it knows is the canon: a profile of how each applicant-tracking system builds its forms, and an answer key of real postings labelled field by field. Every fact in a profile records where it came from, and measured facts expire and are either measured again or downgraded, never quietly re-dated.

  4. An answer key the engine can’t influence

    Real postings are captured and frozen, then labelled field by field by AI labelling sessions that are never shown what the engine decided. A second, independent pass re-labels a sample, and any disagreement is settled by a person answering a plain question that never says which side gave which answer. The blinding is built into the tooling rather than promised: a labelling session’s tools can’t open the engine’s output, and every label is sealed with a hash that each tool checks before reading it.

  5. A scorecard that leads with precision

    The shipped engine is graded against the answer key by a deterministic script; no model does the grading. The first question is how often a value the engine proposes is right. Coverage is reported at that precision, three ways, never as one bare number. A wrong value and a value where none belonged count as different harms, and the engine is compared with the cost of filling nothing at all.

  6. Rules proposed by a model, decided by evidence

    A local decision model, a language model rebuilt to choose from a fixed list of answers rather than write text, proposes rules for fields the engine leaves unmatched. A deterministic validator tests each proposal across the whole answer key, and it must still hold with each platform left out in turn, under a policy fixed before the run, and a person accepts or declines each mined rule in an append-only ledger. Rules can also change when an AI agent fixes a finding; that change is reviewed adversarially by a separate model and pinned by a test before it merges. A model’s answer may add a field to review, never remove one.

  7. Proved in the real app

    Frozen pages only go so far, so the pipeline’s last step has two halves. The fill audit drives the real app on iPhone simulators against live postings and records every step, and AI reviewers judge every field. The device check compares three views of each posting: what the canon captured, what the app read and what the phone actually showed. Whatever the app missed becomes a finding that an AI coding agent fixes in the app. Whatever the canon missed is fixed in the capture tools and the platform’s profile, and becomes a saved field when an applicant would want it kept.

What the full notes add

I share the full notes, and a password to read them, with people who have signed an NDA.