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
- 01
Client PDFs
passports, statements, letters
- 02
Parse
one structured record per applicant
- 03
Fill
paced to the page, not to the machine
- 04human
Review
operator checks before submit
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.