Detection Scorecard
Detection accuracy scorecard
Epic Fill measures field-detection quality against a fixed suite of ATS-shaped HTML fixtures — Greenhouse, Workday, Lever, iCIMS, and peers — with hand-labeled canonical field types. The shipped extension classifier is bundled and scored on every labeled field. This is an internal product-quality scorecard, not a competitor comparison.
Aggregate accuracy
99.5%
182 / 183 fields
Micro-F1
99.5%
extension field-scanner
Fixtures
31
ATS-shaped pages
Labeled fields
183
hand-labeled selectors
Generated 2026-07-17 07:50:51 UTC · engine extension field-scanner
| Fixture | Fields | Correct | Accuracy |
|---|---|---|---|
ADP adp | 7 | 7 | 100.0% |
Ashby ashby | 4 | 4 | 100.0% |
BambooHR bamboohr | 7 | 7 | 100.0% |
BreezyHR breezyhr | 6 | 6 | 100.0% |
ClearCompany clearcompany | 7 | 7 | 100.0% |
Dayforce dayforce | 7 | 7 | 100.0% |
Google Forms Intake google-forms-intake | 4 | 4 | 100.0% |
Greenhouse greenhouse | 5 | 4 | 80.0% |
iCIMS icims | 4 | 4 | 100.0% |
iFrame Form iframe-form | 3 | 3 | 100.0% |
JazzHR jazzhr | 6 | 6 | 100.0% |
Jobvite jobvite | 8 | 8 | 100.0% |
Lever lever | 4 | 4 | 100.0% |
Multi-Step Wizard multi-step-wizard | 7 | 7 | 100.0% |
Multilingual (DE) multilingual-de | 4 | 4 | 100.0% |
Multilingual (ES) multilingual-es | 5 | 5 | 100.0% |
Negative Landing Page negative-landing-page | 0 | 0 | 100.0% |
Oracle HCM oracle-hcm | 8 | 8 | 100.0% |
Paylocity paylocity | 6 | 6 | 100.0% |
React Controlled react-controlled | 4 | 4 | 100.0% |
Recruitee recruitee | 6 | 6 | 100.0% |
Repeated Employment repeated-employment | 12 | 12 | 100.0% |
School District school-district | 12 | 12 | 100.0% |
Shadow DOM shadow-dom | 3 | 3 | 100.0% |
SmartRecruiters smartrecruiters | 6 | 6 | 100.0% |
SuccessFactors successfactors | 8 | 8 | 100.0% |
Taleo taleo | 6 | 6 | 100.0% |
UKG ukg | 7 | 7 | 100.0% |
USAJobs Questionnaire usajobs-questionnaire | 4 | 4 | 100.0% |
Workable workable | 6 | 6 | 100.0% |
Workday workday | 7 | 7 | 100.0% |
Per-type F1 (top 12 by support)
Precision, recall, and F1 for the most frequently labeled canonical types in the fixture suite.
| Canonical type | Support | Precision | Recall | F1 |
|---|---|---|---|---|
email | 28 | 100.0% | 100.0% | 100.0% |
phone | 27 | 100.0% | 100.0% | 100.0% |
first_name | 22 | 100.0% | 100.0% | 100.0% |
last_name | 21 | 100.0% | 100.0% | 100.0% |
city | 13 | 100.0% | 100.0% | 100.0% |
street_1 | 9 | 100.0% | 100.0% | 100.0% |
employer | 8 | 100.0% | 100.0% | 100.0% |
postal_code | 8 | 100.0% | 100.0% | 100.0% |
job_title | 6 | 100.0% | 100.0% | 100.0% |
cover_letter | 6 | 100.0% | 83.3% | 90.9% |
full_name | 5 | 100.0% | 100.0% | 100.0% |
start_date | 4 | 100.0% | 100.0% | 100.0% |
Methodology
Each fixture is a captured ATS-shaped HTML page with a sibling label manifest mapping CSS selectors to expected canonical field types. The shipped extension field classifier is esbuild-bundled into a browser IIFE and executed against every labeled field via jsdom (including shadow-root piercing where needed). A field counts as correct when the predicted canonical type matches the label.
Scoring
Aggregate accuracy is correct predictions over labeled fields. Micro-F1 is computed from a multiclass confusion matrix (true positives when predicted equals expected; otherwise a false negative for the expected type and a false positive for the predicted type). Per-type precision, recall, and F1 use the same matrix.
Reproducibility
Regenerate this scorecard from the repository root with node e2e/gold-ext/scripts/emit-detection-scorecard.mjs. Output is written to frontend/lib/detection-scorecard.json and served statically on this page.