JobFinder — Grounded Application Automation
Deterministic-first browser automation with evidence-bound documents and guarded agent fallback.
JobFinder — deterministic first, agent last
Private implementation: application data and account details are intentionally omitted; the architecture diagram shows the deterministic-to-agent escalation path.
JobFinder is a local-first job discovery and application platform that keeps document generation grounded in verified evidence and keeps browser automation deterministic for as long as possible. It owns collection, normalization, fit scoring, immutable tailored resume versions, reviewed cover letters, application state, and browser-safe ATS assistance while preserving user control over sensitive answers and final submission.
01. Grounding starts before generation
Job postings are normalized into canonical jobs and decomposed into requirements before any tailoring occurs. Fit scoring and gap classification are deterministic, and resume proposals must reference explicit evidence IDs rather than inventing unsupported experience. Tailored artifacts are versioned and bound to the job they were created for.
02. Resume and cover-letter artifacts are treated as state
A tailored resume is represented as a structured AST, rendered to PDF, validated, and bound to the exact job/application record. Cover letters are generated from the finalized resume plus verified evidence, then reviewed, edited, regenerated, and explicitly approved before the application can become ready.
03. Deterministic ATS automation is the default path
The browser layer prefers approved deterministic values and provider-specific adapters for Greenhouse, Lever, Ashby, Workday, iCIMS, SmartRecruiters, and generic ATS flows. Searchable comboboxes, month/year pickers, repeaters, and rerender-sensitive fields have deterministic helpers so common UI patterns do not require an agent.
04. Inspect → act → verify on every browser step
Automation does not assume that a click or fill succeeded. Each step inspects the page, performs a bounded action, and verifies the resulting field or state after SPA rerenders. Generation changes are tracked so stale element assumptions do not silently corrupt the packet.
05. Recovery recipes before browser-agent escalation
When a deterministic adapter cannot complete a field, JobFinder can apply reusable RecoveryRecipes learned from previously successful interaction patterns. Only after deterministic values, provider adapters, and recovery recipes fail does the system escalate to a bounded browser agent.
06. User control remains a hard boundary
Final submission and sensitive or legal answers remain blocked for explicit user control. Applicant-count gating is rechecked before application, and artifact binding, tamper checks, and cross-job isolation prevent one application packet from leaking into another.
A job-application platform where fit analysis, resume tailoring, cover-letter generation, PDF rendering, ATS form assistance, verification, and recovery are one coherent state machine rather than a chain of loosely connected prompts and browser macros.