Impleo reads your application forms, drafts every answer in your voice, and waits for your approval before a single field is touched.
Install from Source Β· Installation Guide Β· How It Works Β· Architecture Β· Privacy Β· Roadmap
Every hackathon, fellowship, scholarship, accelerator, and job application asks the same mechanical fields β name, email, phone β followed by the questions that actually take time: "Why do you want to join?", "Tell us about a project you're proud of.", "Describe your background."
Answering those well means pulling context from your resume, your GitHub, your past applications, and whatever you can remember about your own story β then writing it out, by hand, again. Multiply that by every program you apply to, and it's hours of repetitive, low-leverage typing that has nothing to do with whether you're qualified.
Existing tools don't solve this:
- Traditional autofill (Chrome's built-in, LastPass, Dashlane) only knows static key-value pairs β name, address, card number. It has no idea how to answer "what's a technical challenge you overcame?"
- Generic AI assistants (ChatGPT, Gemini web) can draft an answer, but you're still copy-pasting between tabs, re-explaining your background every session, and manually matching answers back to form fields.
- Resume parsers and "smart" form bots either fabricate plausible-sounding nonsense the model made up, or β worse β submit forms on your behalf without you ever reading what was sent.
AI-generated answers should never be blindly submitted. A wrong fact, an off-tone sentence, or a hallucinated detail in a scholarship essay isn't a bug you can quietly ship a fix for β it's already been read by a human on the other side.
Impleo is a human-in-the-loop AI copilot for application forms. It never types a form field it hasn't earned the right to guess, and it never submits anything on its own.
1. Open the application β 2. Impleo detects fields β 3. AI drafts responses
β
6. Impleo fills fields β 5. You approve or edit β 4. You review every answer
| Step | What happens |
|---|---|
| 1. Detect | Click the extension icon on any application page. Impleo scans the live DOM β Google Forms, Luma, Greenhouse, Lever, Workday, Typeform, or a generic HTML form β and extracts every question, its field type, and its options. |
| 2. Draft | Your stored profile (resume, projects, writing samples, past answers) plus the extracted schema go to the AI model of your choice in a single call. It returns a structured, per-question answer β not a wall of text to cut apart yourself. |
| 3. Review | Every answer renders as a card: the question, the generated response, and a confidence badge. Nothing touches the page yet. |
| 4. Approve / Edit / Regenerate / Skip | You decide, field by field. Regenerate with a one-line instruction ("make it shorter," "more technical") if the first draft isn't right. |
| 5. Fill | Only what you approved gets written into the live form, with a per-field result so you can catch anything that didn't match. |
| 6. Never submit | The submit button is never touched, clicked, or focused programmatically. That action stays yours, always. |
Human-in-the-loop, by construction β not by policy. There is no code path in Impleo that can submit a form. Review isn't a setting you can turn off.
A minute in β extract, review, and fill a real form without Impleo ever touching Submit. Watch the full-quality MP4.
|
|
|
|
|
|
| Capability | Traditional Autofill | Generic AI Assistant | Resume Parsers / Form Bots | Impleo |
|---|---|---|---|---|
| Understands question context | β | β | β | |
| Requires your approval before writing | β N/A | β N/A | β | β |
| Writes in your voice | β | β | β | |
| Works across arbitrary form platforms | β Manual copy-paste | β | ||
| Privacy-first / local processing | β | β Cloud-only | β Cloud-only | β |
| Runs on your own API key | β N/A | β | β | β |
| Never auto-submits | β N/A | β N/A | β Often does | β Always |
Impleo is a single local piece β a browser extension β with no hosted backend, no local server, and no multi-tenant infrastructure. One instance per person, everything running inside your own browser.
flowchart TB
subgraph Browser["Chrome Browser β everything runs here"]
SP["Side Panel β React + Tailwind (Vite)<br/>onboarding Β· review cards Β· settings<br/>prompt builder + provider adapter (src/sidepanel/lib/)"]
CS["Content Script β injected on demand<br/>extractGoogleForm / extractLumaForm / extractGenericForm<br/>fillGoogleForm / fillLumaForm / fillGenericForm"]
ST[("chrome.storage.local + IndexedDB<br/>profile Β· qaHistory Β· identityMemory Β· learnedAnswers Β· apiKey Β· documents")]
end
PROV(["Your chosen provider<br/>Anthropic Β· Gemini Β· OpenAI Β· Groq"])
SP -- "chrome.scripting.executeScript" --> CS
CS -- "extracted form schema" --> SP
SP -- "reads / writes locally" --> ST
SP -- "single structured-output call, direct HTTPS" --> PROV
PROV -- "answers + confidence" --> SP
SP -- "approved answers only" --> CS
CS -- "writes fields, never clicks Submit" --> Page(["Live form on the page"])
Layers, and why each exists:
- Content scripts are self-contained, serialized functions injected only on the active tab, only on demand β no persistent background scanning, no broad
content_scriptsmanifest entry. - The side panel is the whole application. Its
lib/builds the prompt, calls your chosen provider directly over HTTPS, and reads/writes all local storage β there is no server in between. - Your API key is held in
chrome.storage.localand sent only to the provider you chose, as that request's authentication header β never to any Impleo backend, because there is none. - The review pipeline and human approval gate sit structurally between generation and fill: the fill function only ever receives the subset of answers you explicitly approved.
- Identity memory + learned answers persist in
chrome.storage.local(documents in IndexedDB) so recurring fields (email, CTC, notice period, "why this role") get smarter, not just faster, over time.
Your data. Your model. Your rules.
Impleo is built local-first because application answers are personal β resumes, salary expectations, government IDs, life story. That data should never leave a machine you don't control.
- β Local processing β everything runs inside your browser. There is no server, local or hosted; the only network call is the one you configured, straight to your chosen provider.
- β User-owned API keys β you supply your own key for the provider you trust; Impleo never ships a shared key or proxies your calls through anyone's infrastructure.
- β
No backend storage β there is no Impleo-hosted backend. Your profile, history, and identity memory live in your browser's own storage (
chrome.storage.local), and your documents in IndexedDB, on your device. - β Sensitive IDs stay local β government/financial IDs (Aadhaar, PAN, passport, date of birth) are recognized by field label and filled from your remembered value locally; the value is never placed in the text sent to the AI provider.
- β No tracking, no analytics, no telemetry.
- β No data selling. There is no business model that depends on your data β Impleo has no backend to collect it in.
- β No hidden uploads. The only network call Impleo ever makes on your behalf is the one you configured, to the provider you chose, when you click Generate.
- Node.js 18+ and npm
- Google Chrome (or any Chromium-based browser: Edge, Brave, Arc)
- An API key from at least one supported provider (Anthropic, Google Gemini, OpenAI, or Groq)
git clone https://github.com/Agnik47/Impleo.git
cd Impleo
cd extension && npm install && npm run buildThen load extension/dist as an unpacked extension via chrome://extensions (enable Developer mode β Load unpacked), and enter your API key in the side panel's Settings β Impleo runs a live test call before saving it, so you know immediately if the key works. There is no server to start.
Using an AI coding agent? Hand it
INSTALLATION.mddirectly β it's written as a step-by-step runbook an agent can execute unattended (clone, install, build, verify), with the two steps that require a human β loading the unpacked extension and entering your API key β clearly called out. It also covers common setup failures in more detail than the summary above.
| Provider | Label | Default model suggestion |
|---|---|---|
| Anthropic | anthropic |
claude-sonnet-5 |
| Google Gemini | gemini |
gemini-2.0-flash |
| OpenAI | openai |
gpt-4o-mini |
| Groq | groq |
llama-3.3-70b-versatile |
Model IDs are never hardcoded to a fixed release β you can type any model string your account has access to under Settings, and that exact string is sent on every call.
All persistent state lives in your browser's own storage (chrome.storage.local, plus IndexedDB for documents) and is never synced anywhere:
- Profile β personal info, links, education, skills, projects, resume text, writing samples
- Q&A history β last 50 approved question/answer pairs, used as few-shot context
- Identity memory β canonical values (email, phone, CTC, notice period, etc.) reused across every form
- Learned answers β previously accepted answers, matched by normalized question text
- Documents β resume/CV/portfolio files, stored as raw bytes in IndexedDB; their contents never leave your device
- API key β stored once via onboarding/Settings in
chrome.storage.local, sent only to your chosen provider as the request's auth header, never to any Impleo backend
- Export / Import profile β back up or transfer your full profile, Q&A history, identity memory, and learned answers as a single JSON file. Exported files contain sensitive values in plain text β handle them like a resume, or more carefully.
impleo/
βββ extension/ Chrome MV3 extension (Vite + React + Tailwind)
β βββ manifest.json Permissions, entry points, icons
β βββ background.js Minimal service worker (side panel behavior only)
β βββ content-scripts/ Self-contained extractors/fillers, injected on demand
β βββ src/sidepanel/ React side panel β onboarding, review flow, settings
β βββ App.jsx View routing
β βββ ReviewFlow.jsx Extract β review β fill state machine
β βββ components/ Review cards, buttons, UI primitives
β βββ lib/ The app's brain (client-side, no server):
β providers.js β Anthropic/Gemini/OpenAI/Groq adapters
β promptContext.js β builds profile + schema + history prompt
β generate.js β classify + generate orchestration
β fieldRegistry.js β canonical identity-memory fields
β storage.js / documentStore.js β chrome.storage + IndexedDB
β
βββ landing/ Marketing site (Vite + React)
β
βββ IMages/ Product screenshots and brand assets
β
βββ docs/ Product spec, architecture rationale, brand guide
β
βββ INSTALLATION.md Step-by-step setup runbook (human- and AI-agent-friendly)
Impleo started as a personal tool and is built to stay small, boring, and correct rather than sprawling. Contributions are welcome, with a few ground rules:
- Read
docs/before proposing architectural changes.docs/PRD.md,docs/ARCHITECTURE.md, anddocs/STRUCTURE.mdcapture why the system looks the way it does β several design choices (no hosted backend, self-contained content scripts, single combined AI call) are deliberate trade-offs, not oversights. - Human-in-the-loop is non-negotiable. Any change that lets Impleo write to a form field without an explicit user approval, or touches a submit control, will not be merged.
- Privacy is a hard constraint. No new telemetry, no hosted storage, no calling any endpoint the user didn't configure themselves.
- Keep PRs scoped. Small, reviewable diffs with a clear rationale beat large speculative ones.
- Verify against a real page. Content-script changes should be checked against an actual Google Form / Luma event / target platform, not just read through β DOM structures on these sites are not stable across selectors.
To get started: fork the repo, follow Installation, and open a PR against main with a description of what you changed and why.
Impleo isn't on the Chrome Web Store yet β but it's finished, open source, and free today. It just arrives by clone instead of by one click.
%%{init: {'theme':'base','themeVariables':{'fontFamily':'Geist, Segoe UI, sans-serif','fontSize':'14px'}}}%%
flowchart LR
S["<b>SEED</b><br/><br/>Built, working<br/>and MIT licensed"]
P["<b>SPROUT</b><br/><br/>Clone and run it locally<br/>β the whole extension, free"]
C["<b>CANOPY</b><br/><br/>One-click install from<br/>the Chrome Web Store"]
S ==> P -.-> C
classDef done fill:#0B0F0E,stroke:#28C94E,stroke-width:2px,color:#A3A3A3
classDef here fill:#111a12,stroke:#A6D91A,stroke-width:3px,color:#F5F5F5
classDef soon fill:#0B0F0E,stroke:#27332D,stroke-width:2px,color:#737373
class S done
class P here
class C soon
You are here β Sprout. The dashed edge is the part that isn't built yet.
A jungle grows faster with more hands in it. Cheapest effort first β you don't need to open a pull request to help:
| Way in | What it does | |
|---|---|---|
| β¦ | Drop a seed | Star the repo. One click, and it puts Impleo in front of the next person hand-copying their rΓ©sumΓ© at 2am. |
| β³ | Flag a broken vine | Form platforms rewrite their DOM without warning. If an extractor stops biting on a page, open an issue with the URL β that report is the fix. |
| β | Grow a new branch | Greenhouse, Lever, Workday and Typeform extractors are all still unclaimed above. Pick one and it's yours. |
| β° | Clear the path | Setup notes, a sharper error message, a docs fix β anything that saves the next person the hour you just spent. |
Three rules of the jungle. Everything else is up for discussion, but these three aren't: 1. Never auto-submit β there's no code path that clicks submit, and there never will be. 2. Privacy is a hard constraint β no telemetry, no hosted storage, no endpoint the user didn't choose. 3. Keep it scoped β a small, reviewable diff with a clear rationale beats a large speculative one.
Impleo is released under the MIT License.
MIT License β Copyright (c) 2026 Agnik Paul
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files, to deal in the Software
without restriction, subject to the inclusion of the above copyright notice.
See the LICENSE file for the full text.
Install from Source Β· Installation Guide Β· Architecture Β· Privacy Β· Contribute
Made for anyone tired of typing the same answer twice.
MIT licensed Β· Local-first, single-user Β· No tracking, no telemetry, no data selling


