Filling a form is a decision problem. Every field has a small set of possible answers that already exist in your profile. The job is to pick the right one, which is what a decision model is for.
How it works
- You save a profile locally, once.
- On any page with a form, one click or
Alt+Shift+Ffills it. - Jev decides in two rounds: first which profile key fits each field, then which exact option or stored answer matches it.
- Each decision passes a confidence gate before anything is written.
You can see how sure it was
Every field gets a coloured outline after a fill.
- Green: filled confidently.
- Yellow: filled, but check it.
- Grey: left empty, needs you.
- Blue: already had a value and was left alone.
Nothing is ever auto-submitted. You review and submit yourself, and Undo reverts the whole fill.
The parts that are plain code
Some values are computed, never decided by the model: full name, phone formats, date of birth and age, one-line address, most recent education. A model should not be asked to do string formatting.
What made it hard
- Large forms. A 30 to 40 field form with a rich profile can exceed the per-request token limit. FormPilot batches by estimated token size and splits into as many parallel calls as needed.
- Framework forms. Values are set with native setters and real events so React, Vue and Angular forms register them.
- Iframes. It works inside frames on the same or a different origin.