Chrome extension for job-form autofill, profile capture, resume handling, task tracking, and AI-assisted application workflows.
Load the unpacked extension from the repository root.
The active code lives here:
manifest.json: extension entry pointbackground.js: service worker and storage orchestrationcontent.js: page detection, autofill, learning, overlayspopup/: browser action popupdashboard/: full dashboard UIlib/: shared storage and field utilitiesassets/,icons/: static assetsdev/: local test pages and fixtures for manual QAtests/: automated Node-based testsbackend/: optional Node backend for AI parsing flows
Old or superseded code is isolated so the active extension root stays clean:
legacy/extensions/job-autofill-v1/: older extension copy kept for referencelegacy/debug/: archived scratch files and debug artifactsdev/fixtures/: local resume fixtures used for manual testing
Nothing under legacy/ is used by the current extension runtime.
From the repo root:
npm testRun the real-site e2e helper:
npm run e2e:realFrom backend/ (optional — only needed for server-side PDF resume parsing):
cp .env.example .env # then set ALLOWED_ORIGINS to your extension id
npm test
node index.js- Copy
config.private.example.jstoconfig.private.jsand fill in your Firebase values - Open
chrome://extensions/ - Turn on Developer Mode
- Click
Load unpacked - Select this repository's root directory
config.private.jsis local-only runtime config. It must not contain an AIapiKey: FormPilot is bring-your-own-key and users enter theirs in Dashboard → Settings → AI. Anything bundled there ships inside the packaged extension and can be extracted by anyone who installs it.- Autofill runs in local-only mode by default. Dashboard → Settings → Autofill Mode switches it to require sign-in.
manifest.keystays out of git and should remain private.- Keep new experiments inside
dev/,tests/, orlegacy/instead of the repo root.