AboutServicesExperienceProjectsBlogContactResume Buy Me a Coffee Start a Project
Back to Blog
I Built an AI Chrome Extension That Fills Job Forms Automatically
Technical
Feb 5, 2026·5 min read·By Rugved Chandekar

I Built an AI Chrome Extension That Fills Job Forms Automatically

Chrome ExtensionAIAutomationLLM

Job applications are repetitive by design. The same fields, the same questions, the same responses — dozens of times across dozens of platforms. I got tired of it, so I built a tool to automate it.

The result: an AI-powered Chrome Extension that analyzes any job page, fills form fields automatically, and tailors answers to the specific company and role.

The Problem

Every job application platform has its own form layout. LinkedIn Easy Apply, Greenhouse, Lever, Workday — they all ask for the same information in slightly different ways. There's no standard. There's no "import from resume" that actually works well.

The result is that job seekers spend significant time on repetitive data entry — not on crafting thoughtful applications, but on filling the same fields over and over. That's a problem worth automating.

How It Works

The extension flow is simple:

  1. One-time setup — clone the repo, load as an unpacked Chrome extension, add your OpenAI API key and personal details (name, contact info, experience summary)
  2. Go to any job page — navigate to a job application form on any platform
  3. Click "Analyze Page" — the extension reads the page DOM, identifies form fields, and extracts the job description
  4. Auto-fill executes — fields are populated, character limits respected, validations passed, and answers tailored to the role

Technical Architecture

The extension consists of three main components:

Chrome Extension Architecture:

┌─────────────────────────────────┐
│          Popup UI               │
│   "Analyze Page" button         │
│   Status indicator              │
└──────────────┬──────────────────┘
               │ triggers
┌──────────────▼──────────────────┐
│         Content Script          │
│   • DOM traversal               │
│   • Form field detection        │
│   • Job description extraction  │
│   • Field value injection       │
└──────────────┬──────────────────┘
               │ sends to
┌──────────────▼──────────────────┐
│       Background Service        │
│   • OpenAI API calls            │
│   • Profile data storage        │
│   • Response processing         │
│   • Field mapping logic         │
└─────────────────────────────────┘

The content script does the DOM work. The background service handles API calls and keeps credentials secure (never exposed in the content script). The popup provides the trigger and status.

Key Challenges

Field Detection Across Different Platforms

Every ATS (Applicant Tracking System) builds forms differently. Some use standard HTML inputs with clear labels. Others use custom components with aria attributes. The extension uses a combination of label-input association, aria-label reading, placeholder text, and field position heuristics to identify what each field is asking for.

Respecting Constraints

Character limits, required fields, and input validations vary by form. The extension reads maxlength attributes and validation patterns before generating responses, then instructs the LLM to stay within those constraints.

Context-Aware Answers

Generic answers don't pass screening. The extension sends both the user's profile and the job description to the LLM, prompting it to tailor each answer — especially for open-ended questions like "Why do you want to work here?" or "Describe a relevant project."

One-Time Setup

# 1. Clone the repository
git clone https://github.com/Rugvedrc/ai-job-form-filler

# 2. Open Chrome and navigate to:
chrome://extensions/

# 3. Enable "Developer mode" (top right toggle)

# 4. Click "Load unpacked" and select the cloned folder

# 5. Open the extension popup and configure:
#    - OpenAI API key
#    - Your personal profile (name, email, phone)
#    - Experience summary (used as context for tailored answers)
#    - Skills and highlights

What Makes It Smart: Context-Aware Filling

The key differentiator is context awareness. The extension doesn't paste a generic answer for "Why this company?" It reads the actual job posting — the company description, the role requirements, the team details — and generates an answer specific to that application.

This is the difference between automation that saves time and automation that actually helps.

What I Learned Building It

  • DOM manipulation is messier than expected — production websites are full of dynamic content, shadow DOM, and custom components that don't behave like standard HTML
  • Chrome extension security model is strict — content scripts have limited access; background service workers are isolated for good reason
  • Prompting for constrained output — telling the LLM "answer in under 200 characters" requires more than just saying it; you need to validate and retry if the constraint isn't met
  • The 80/20 rule applies — 80% of job application forms use the same 20% of field types; focus there first

Want to automate repetitive browser tasks with AI? Let's talk.

Get In Touch
RC
Rugved Chandekar AI Systems Engineer @ Idyllic Services — Chrome Extensions & AI — IEEE Author