ats-autofill-engine
v0.1.0-alpha.2
Published
Deterministic form autofill engine for ATS job applications (Greenhouse, Lever, Workday). Framework-agnostic core with browser adapters. Chrome MV3 and Node compatible.
Maintainers
Readme
ats-autofill-engine
Framework-agnostic form autofill library for ATS (Applicant Tracking System) platforms. Detects form fields, classifies them, and fills them programmatically.
Features
- Form Detection - Scans DOM for application form fields using Mozilla-derived heuristics + ATS-specific selectors
- Field Classification - Maps detected fields to a canonical taxonomy (name, email, phone, resume, work experience, education, etc.)
- Autofill Engine - Builds a fill plan from profile data and executes it with React-compatible native setters
- File Attachment - Programmatic file input handling via DataTransfer API
- Keyword Highlighting - Highlights job-relevant terms in page content
- Intent Detection - Detects job posting pages via JSON-LD, meta tags, and DOM heuristics
Supported ATS Platforms
| Platform | Adapter | Status |
|----------|---------|--------|
| Greenhouse | ats-autofill-engine/greenhouse | V1 |
| Lever | ats-autofill-engine/lever | V1 |
| Workday | ats-autofill-engine/workday | V1 (multi-step wizard) |
Install
npm install ats-autofill-engine
# or
pnpm add ats-autofill-engineSub-entries
import { ... } from 'ats-autofill-engine' // Core types + classifier
import { ... } from 'ats-autofill-engine/profile' // Profile schema (Zod)
import { ... } from 'ats-autofill-engine/ports' // Port interfaces (Logger, etc.)
import { ... } from 'ats-autofill-engine/heuristics' // Mozilla heuristics (MPL-2.0)
import { ... } from 'ats-autofill-engine/dom' // DOM scanner + filler
import { ... } from 'ats-autofill-engine/highlight' // Keyword highlighter + intent
import { ... } from 'ats-autofill-engine/greenhouse' // Greenhouse adapter
import { ... } from 'ats-autofill-engine/lever' // Lever adapter
import { ... } from 'ats-autofill-engine/workday' // Workday adapterArchitecture
Hexagonal architecture with clean core/adapter separation:
src/
core/ Pure TypeScript, no DOM APIs
types/ FormModel, FillInstruction, FillResult, FieldType
profile/ Profile schema (JSON Resume based, Zod validated)
ports/ Logger interface, adapter contracts
heuristics/ Mozilla autocomplete heuristics port (MPL-2.0)
classifier/ Field classifier + fill plan builder
adapters/ DOM-dependent code
dom/ Generic DOM scanner, filler, file attacher
highlight/ Keyword highlighter, JD extractor, intent detector
ats/ Per-platform ATS adapters
greenhouse/ Greenhouse-specific selectors + fill logic
lever/ Lever-specific selectors + fill logic
workday/ Workday multi-step wizard adapterInvariant: src/core/ never imports document, window, HTMLElement, or any DOM API. Enforced by separate tsconfig.core.json (lib: ["ES2022"], no DOM) and CI grep gates.
Plan
Full implementation plan in docs/plan/ - 9 phases (B1-B9), part of the larger Chrome Extension POC plan.
License
MIT AND MPL-2.0
Core heuristics module (src/core/heuristics/mozilla/) is derived from Mozilla's form autofill heuristics and licensed under MPL-2.0. All other code is MIT.
