The Problem: ATS Forms
A typical Workday form contains 40 to 50 fields spread across 3–4 pages. Filling it in manually takes 15–20 minutes. If you apply to 10 jobs per week, that is 3 hours lost solely on form completion.
The Kandidat Chrome extension solves this problem by automating form completion. Here is how it works under the hood.
Extension Architecture
The extension comprises three layers:
- Content Script — Injected into the ATS page, it analyses the DOM and interacts with form fields
- Background Worker — Communicates with the Kandidat API to retrieve profile and data
- Popup UI — React interface for controlling the process and viewing progress
The content script is the core of the extension. It must work with dynamic pages (React, Angular) that frequently change their DOM structure.
Intelligent DOM Detection
Each ATS structures its forms differently. The extension uses a signature system to identify the ATS:
- Workday — Detected via
data-automation-idattributes and specific CSS classes - Greenhouse — Identified by the form ID
#application_form - Lever — Recognised via the page structure
.posting-page - SmartRecruiters — Detected via
[data-test]components
Once the ATS is identified, a specialised adapter is loaded with the field mapping logic.
Field Completion
Filling in fields is not a simple input.value = "...". Modern frameworks (React, Angular) do not detect value changes made directly on the DOM. The extension simulates real user events:
- Focus — Simulate a click on the field
- Input — Inject text character by character (for React fields)
- Change — Trigger the validation event
- Blur — Exit the field to confirm
For dropdowns and selects, the extension opens the menu, searches for the matching option and simulates a click on it.
Document Upload
Uploading CVs and cover letters simulates a drag & drop or native file input:
- The document is retrieved from the Kandidat API (PDF optimised for the position)
- A
DataTransferis created with aFileblob - The
dropevent is dispatched on the upload zone - For Workday: simulation of the
changeevent on the hidden file input
Open-Ended Questions and AI
Open-ended questions ("Why this role?", "Describe a project") are detected by analysing the label and placeholder. The extension sends the question + context (position, company, profile) to the Kandidat API, which generates a response via AI.
Candidates can edit the response in the popup before the extension submits it. The average generation time is 2–3 seconds per question.
Install the Kandidat Extension
Complete Workday, Greenhouse, Lever and SmartRecruiters forms in 30 seconds.
Discover the extension →Conclusion
The Kandidat Chrome extension is a sophisticated automation tool that simulates real user behaviour to complete ATS forms. The combination of DOM detection, simulated events and AI for open-ended questions reduces application time from 15 minutes to 30 seconds. More time preparing for interviews, less time on forms.