Stop typing. Start doing.
FormPilot scans any web form, understands its context using LLMs, and fills every field intelligently β from your name to a 500-word cover letter.
Every developer, student, and professional wastes hours per week filling repetitive web forms β job applications, hackathon registrations, surveys, checkout pages, onboarding flows.
Browser autofill is dumb. It pattern-matches field names. It fails on React/Vue apps. It can't write your cover letter. It has zero context.
FormPilot is different.
| Feature | Browser Autofill | FormPilot |
|---|---|---|
| Understands field context | β | β Uses LLM |
| Fills essay / textarea fields | β | β Generates content |
| Works on React / Vue SPAs | β Often breaks | β Native setter bypass |
| Supports dropdowns semantically | β | β Matches by meaning |
| Multiple profiles (Personal/Work) | β | β |
| Confidence scoring per field | β | β |
| Payment vault + Password vault | β | β |
| Your choice of AI model | β | β GPT-4o, Claude, Gemini, Groq |
| Zero data sent to any server | β | β 100% local |
Demo video link coming soon β see the extension in action on Google Forms and job portals.
FormPilot is a Manifest V3 Chrome Extension with 3 isolated layers:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β POPUP (React SPA) β
β Dashboard Β· Scan Β· Preview Β· Profiles Β· Vault Β· History β
ββββββββββββββββ¬βββββββββββββββββββββββ¬ββββββββββββββββββββ
β chrome.runtime β chrome.tabs
βΌ βΌ
ββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββ
β BACKGROUND WORKER β β CONTENT SCRIPT β
β β β β
β Β· Builds AI prompt β β Β· Scans DOM (10-layer label β
β Β· Calls AI API β β extraction strategy) β
β Β· Parses response β β Β· Injects values β
β Β· 4 providers β β Β· React/Vue-safe native β
β (OpenAI, Claude, β β setter bypass β
β Gemini, Groq) β β Β· Visual feedback CSS β
ββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββ
1. User clicks "Scan Page"
β Content script queries all input/textarea/select/ARIA elements
β 10-priority label extraction (aria-label β fieldset/legend β sibling text β ...)
β Fields categorized: personal / contact / address / professional / essay / ...
β Returns DetectedField[] with selector, label, type, confidence
2. User clicks "Review & Auto-fill"
β Background builds structured prompt with profile data + field list
β AI returns { suggestions: [{ index, value, confidence }] }
β Payment fields β matched from Vault's default card
β Credential fields β matched from password vault by domain
3. User clicks "Auto-Fill All Forms"
β Each field: focus β native setter β input/change/blur events fired
β React synthetic event system triggered correctly
β Green glow animation on filled fields
β History entry logged
- Zero telemetry. No analytics. No tracking.
- API keys stored locally in
chrome.storage.localβ sandboxed to this extension. - API calls go directly from your browser to the AI provider. No relay server.
- Keys sanitized before sending (strips hidden unicode characters).
- Message validation β background/content scripts reject any message not from
chrome.runtime.id.
| Layer | Technology |
|---|---|
| UI | React 18 + TypeScript |
| Styling | TailwindCSS 3 + Custom glassmorphism design system |
| Animation | Framer Motion |
| Icons | Lucide React |
| Popup bundler | Vite 5 |
| Content/BG bundler | esbuild |
| Storage | chrome.storage.local (localStorage fallback in dev) |
| AI Providers | OpenAI, Anthropic Claude, Google Gemini, Groq |
| Extension standard | Chrome Manifest V3 |
# 1. Clone
git clone https://github.com/Karan-Raj-KR/FormPilot-.git
cd FormPilot-
# 2. Install dependencies
npm install
# 3. Build
npm run build
# This runs: vite build (popup) + esbuild (content + background)
# 4. Load in Chrome
# β Open chrome://extensions
# β Enable "Developer mode" (top right)
# β Click "Load unpacked"
# β Select the /dist folder- Open the extension β click Settings
- Choose your AI provider (Groq is free to start)
- Paste your API key (stored locally, never leaves your browser)
- Go to Profiles β fill in your info (or paste your entire resume in "Raw Info")
- Navigate to any form β click Scan β click Auto-Fill
| Provider | Default Model | Speed | Cost |
|---|---|---|---|
| Groq (Llama 3.3 70B) | llama-3.3-70b-versatile | β‘ Fastest | Free tier |
| Google Gemini | gemini-2.5-flash | β‘ Fast | Free tier |
| OpenAI | gpt-4o | π΅ Best accuracy | Paid |
| Anthropic Claude | claude-3-7-sonnet | π΅ Best reasoning | Paid |
All providers use
temperature: 0.3for consistent, accurate fills.
FormPilot/
βββ src/
β βββ background/index.ts β Service worker: AI calls + prompt builder
β βββ content/
β β βββ index.ts β DOM scanner + field filler + MutationObserver
β β βββ styles.css β Visual feedback (green glow, purple highlights)
β βββ popup/
β β βββ App.tsx β Root component + state
β β βββ pages/
β β βββ Dashboard.tsx β Onboarding guide
β β βββ Home.tsx β Scan + field category grid
β β βββ Preview.tsx β AI generation + per-field editing + fill
β β βββ Profiles.tsx β Create/edit/switch profiles
β β βββ Settings.tsx β API key + model + toggles
β β βββ History.tsx β Past fill sessions
β βββ shared/
β βββ types.ts β All TypeScript interfaces
β βββ constants.ts β Defaults, model lists, storage keys
β βββ storage.ts β Chrome storage abstraction
β βββ auth.ts β Google OAuth
β βββ sync.ts β Cross-device profile backup
βββ public/manifest.json β Chrome Extension MV3 config
βββ vite.config.ts
βββ build-scripts.mjs β esbuild stage for content + background
Built with β and zero sleep at [Open Loop]
| Name |
|---|
| Karan Raj |
| Saagnik |
| Havinash |
MIT Β© 2026 FormPilot Team
If you've ever rage-quit a form, this is for you.
β Star this repo if it saved you time .





