Skip to content
private / NDA2025

Visa Form Auto-Fill

40 minutes of government forms, compiled down to seconds.

Role

Sole engineer

manual entry removed

90%+

applications / day

50-60

transcription errors

~0

Chrome Extension APIsJavaScriptPDF ParsingDOM Manipulation

Per application

  • Read a value off a PDF
  • Type it into a government form
  • A few hundred times
  • Across pages that time out and lose state
  • ~40 minutes, and attention degrading all the way

Now

  • PDFs parsed once into one record
  • Fields filled the way the page expects
  • Operator reviews, then submits
  • Seconds
  • The hundredth passport number is as accurate as the first

How it runs

runs itselfneeds a person
  1. 01

    Client PDFs

    passports, statements, letters

  2. 02

    Parse

    one structured record per applicant

  3. 03

    Fill

    paced to the page, not to the machine

  4. 04human

    Review

    operator checks before submit

The extension removes the typing, not the judgement — an operator still reviews every application before it is submitted.
An early prototype — the shipped version can't be shown. Documents go in on the right, come out as a structured profile, and every field the extension writes is logged with the profile key it came from. Applicant details are redacted here; the two unmapped rows at the top are the extension refusing to guess.

Where it got hard

Government portals aren't built for this
Multi-page flows reset if you move too fast, so the fill is paced to the page.
Half the fields don't exist yet
Many render only once an earlier answer is made. A single "fill everything" pass finds the other half.
Setting .value is ignored
Validation fires on native events, so every write has to look like a keystroke.
Layouts vary by authority
The same field appears in different places, so extraction has to tolerate the drift.

Outcome

90%+ manual entry removed
Per application, on a 50–60/day operation.
Minutes → seconds
Per-application processing time.
~0 transcription errors
Across thousands of monthly submissions.
No added headcount
The consultancy kept its throughput without hiring to do it.

The measure of this one isn't that it's clever. It's that the failure mode it removed — a mistyped digit on someone's visa application — was the expensive one.