Decouple form filler from LinkedIn modal selector

Form filler now defaults to page root instead of scoping to
[role="dialog"]. LinkedIn Easy Apply passes its modal selector
explicitly. Fixes external ATS forms being scoped to wrong
container. Also improved Greenhouse handler with targeted
resume upload and form detection.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-06 20:58:51 -08:00
parent a17886e58b
commit f586c6d091
3 changed files with 21 additions and 5 deletions

View File

@@ -212,7 +212,7 @@ export async function apply(page, job, formFiller) {
}
// Fill form fields — page.$() in form_filler pierces shadow DOM
const unknowns = await formFiller.fill(page, formFiller.profile.resume_path);
const unknowns = await formFiller.fill(page, formFiller.profile.resume_path, { modalSelector: MODAL });
if (unknowns.length > 0) console.log(` [step ${step}] unknown fields: ${JSON.stringify(unknowns.map(u => u.label || u))}`);
if (unknowns[0]?.honeypot) {