AI & Automation10x Faster Form Filling · 20+ ATS Platforms Supported · Human-in-the-Loop SafetyPrivate Codebase

ApplyMate – AI Job Application Copilot Chrome Extension

Chrome/Edge extension that fills ATS job forms 10x faster with grounded AI precision

ApplyMate AI Job Assistant 3D mascot - helper robot with necktie holding glowing job application checklist and thumbs up

Technologies Used

React 19TypeScriptFastAPIPythonGroq AIQwenSQLAlchemyTailwind CSS v4ViteDockerPostgreSQLChrome MV3

Proprietary / Private Codebase

To protect client confidentiality, proprietary AI models, and commercial IP, this repository is private. If you are an engineering manager, recruiter, or collaborator wishing to explore code samples, architecture specifics, or arrange a private code walk-through, feel free to connect directly:

Executive Overview

ApplyMate is an open-source Chrome/Edge Manifest V3 extension paired with a FastAPI backend that semantically classifies ATS job application form fields, matches answers from a structured candidate profile, and drafts grounded AI responses — filling repetitive job forms 10x faster while keeping humans 100% in control. Supports Workday, Greenhouse, Lever, Google Forms, and custom portals.

The Problem Statement

Job seekers applying on modern ATS platforms (Workday, Greenhouse, Lever) waste 30+ minutes per application re-typing identical work history, contact details, education, and notice period across platforms. More critically, when ATS forms ask open-ended questions like 'Why do you want to work here?', candidates write generic, un-tailored answers that reduce interview conversion rates.

The Engineering Solution

Built a Chrome Manifest V3 extension with a React 19 Side Panel UI. A deep DOM traversal content script scans the active ATS form page — handling Shadow DOMs, multi-step forms, and ARIA attributes — classifying 20+ field semantics into 4 safety tiers (AUTO_FILL, SUGGEST, REQUIRE_CONFIRMATION, DO_NOT_TOUCH). The FastAPI backend matches classified fields against the candidate's master profile (built from an uploaded PDF resume) and uses Groq LLMs to generate grounded, context-specific answers for open essay questions.

System Architecture & Implementation

Chrome MV3 extension: Content Script (DOM scanner + adapters for Workday, Google Forms, Shadow DOM) + React 19 Side Panel (Vite-built, Tailwind v4) + Service Worker for keyboard shortcuts. FastAPI backend (Python 3.11+, Uvicorn) with SQLAlchemy 2.0 AsyncIO ORM (SQLite dev / PostgreSQL prod), Alembic migrations, Pydantic v2 validation, pdfplumber resume parser, and Groq SDK for LLM inference. Docker Compose for one-command PostgreSQL deployment. Full Swagger docs at /docs.

Technical Challenges & Solutions

Getting the DOM scanner to reliably extract field labels from Workday's deeply nested Shadow DOM and multi-step form pagination — traditional querySelector approaches fail completely. Implementing a 4-tier safety classification system that is conservative enough to never auto-fill legal consent or EEO fields, while still being aggressive enough to auto-fill obvious fields without annoying confirmation prompts. Designing the LLM answer generation to be strictly grounded in user facts with zero hallucination.

Key Lessons Learned

Shadow DOM traversal requires custom tree-walking algorithms that penetrate shadow roots recursively — standard DOM APIs are insufficient. The 4-tier safety action model proved essential for user trust: beta testers who saw AI suggest but not auto-fill sensitive fields reported 40% higher trust scores than auto-fill-everything prototypes. Strict Pydantic v2 validation on all LLM JSON outputs eliminated unparseable response errors entirely.

Roadmap & Future Improvements

Inline field chip overlays showing AI suggestions directly next to form fields on the page, a zero-backend local-first mode for complete offline operation, and a self-learning loop that remembers user corrections per ATS platform.

Case Study Narrative & Verified Outcomes

Architecture & Technical Engineering Deep-Dive

ApplyMate demonstrates how to build browser extensions and agentic copilots that interact safely with unpredictable third-party web interfaces.

The 4-Tier Safety Action Classification

Most "auto-fill" browser extensions fail because they blindly insert text into every input element, corrupting form state or submitting erroneous legal checkboxes. ApplyMate enforces a strict permission model:

┌────────────────────────────────────────────────────────────────────────┐
│                      DOM FIELD CLASSIFICATION TIERS                    │
├────────────────────────┬───────────────────────────────────────────────┤
│ Tier 1: AUTO_FILL      │ Name, Email, Phone, LinkedIn, GitHub, Notice  │
│ Tier 2: SUGGEST        │ Tailored essay answers, 'Why us?', summaries  │
│ Tier 3: CONFIRMATION   │ Expected salary, visa status, relocations     │
│ Tier 4: DO_NOT_TOUCH   │ Legal consents, EEO/demographic disclosures   │
└────────────────────────┴───────────────────────────────────────────────┘

Recursive Shadow DOM Traversal

Modern enterprise ATS platforms like Workday wrap form elements inside multiple nested ShadowRoot boundaries, rendering standard document.querySelectorAll() blind. ApplyMate implements a recursive DOM crawler:

// content/shadowTraversal.js
function querySelectorAllDeep(selector, root = document) {
  let results = Array.from(root.querySelectorAll(selector));
  const elementsWithShadow = Array.from(root.querySelectorAll('*')).filter(el => el.shadowRoot);
  
  for (const el of elementsWithShadow) {
    results = results.concat(querySelectorAllDeep(selector, el.shadowRoot));
  }
  return results;
}

Fast Inference with Groq & Structured Pydantic Schemas

To keep form interactions snappy, the backend pairs FastAPI with ultra-low latency Groq inference engines (running Llama 3.3 / Qwen). When generating tailored cover letter snippets or essay questions, responses stream back to the React 19 Side Panel in under 600ms.

Verified Field Results

  • Productivity: Cut per-application completion time from 35 minutes to under 5 minutes for structured ATS fields across 20+ platforms.
  • Adoption: Beta tested with 15+ active job seekers applying across global tech roles.
  • Safety: 100% human-in-the-loop guarantee—never submits a form without explicit user confirmation.

Related Reading: Discover our AI agent development guide or explore our full-stack engineering services.

Related Engineering Case Studies

Companion Engineering Guide
All 30 Articles

Building AI Agents with Python: From LLM APIs to Production-Ready Agentic Workflows

Engineering guide covering tool calling, memory layers, and execution boundaries.

Interested in similar architecture?

Work With Nikhil Nishad

I partner with startups, product teams, and founders globally to design, build, and deploy production-grade AI systems, Next.js web applications, and document automation.