Skip to content

Karan-Raj-KR/FormPilot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ€– FormPilot

The AI-powered Chrome Extension that actually understands your forms.

Chrome Extension Manifest V3 React TypeScript License: MIT

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.


🧠 The Problem

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.


⚑ What Makes It 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

Demo video link coming soon β€” see the extension in action on Google Forms and job portals.


πŸ“Έ Screenshots

Dashboard Scan Page Profiles
Vault History Settings

πŸ—οΈ Architecture

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        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

How a Fill Works

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

πŸ” Privacy & Security

  • 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.

πŸ› οΈ Tech Stack

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

πŸš€ Installation (Development)

# 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

πŸ”‘ Setup (First Use)

  1. Open the extension β†’ click Settings
  2. Choose your AI provider (Groq is free to start)
  3. Paste your API key (stored locally, never leaves your browser)
  4. Go to Profiles β†’ fill in your info (or paste your entire resume in "Raw Info")
  5. Navigate to any form β†’ click Scan β†’ click Auto-Fill

πŸ€– Supported AI Providers

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.3 for consistent, accurate fills.


πŸ“ Project Structure

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

πŸ‘₯ Team

Built with β˜• and zero sleep at [Open Loop]

Name
Karan Raj
Saagnik
Havinash

πŸ“„ License

MIT Β© 2026 FormPilot Team


If you've ever rage-quit a form, this is for you.

⭐ Star this repo if it saved you time .

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors