Evaluating job postings was slow and inconsistent — the same posting felt different on different days, no framework, no record. Scout fixes that. Paste a posting, get role fit and workplace fit scored separately in three seconds.
See the highlights
Approach
The original plan: live scraping across Jobindex and LinkedIn, AI scoring across two dimensions, history and application management — all local, no backend.
CORS blocked the scraping. ES modules fail silently over file://. Multi-turn web search hit rate limits. Claude hallucinated job URLs.
Each failure asked the same question: what does AI actually do well here?
One feature survived: paste a real posting, get a scored verdict. One API call. Three seconds.
The scope reduction wasn't a failure. It was the answer.
One HTML file — the full tool, no app wrapper.
Design decisions
The first version showed Save and Hide on every result. Strong match or clear skip — the tool had decided. The interface asked you to decide again.
The fix branches on job.label:
"Generate application →" as primary, "Save" as secondary"Save to pipeline" as primaryMuted label, "Save anyway" as escape hatchThree labels, three different interfaces. The scoring output becomes the UI state.
Design decisions
Most progress trackers punish you for stopping — miss a day, lose your streak. Scout uses milestones instead. Eight of them, earned permanently. Pausing costs nothing. You just pick up where you left off.
Technical decisions
Single HTML file, no build step, no install. ES modules fail over file://, so both scripts load as plain tags — profile.js sets globals, main.js reads them. The constraint became the feature.
Haiku for scoring: one completion, one JSON response, same quality as Sonnet at a much higher rate limit. All state in localStorage — no backend, no auth, no sync.
Where design met code
Two score rings — Profile and Workplace — give the verdict at a glance. The dimension table holds the evidence.
Each dimension returns { status: match|partial|miss, value: string } — value capped at four words. "Design+code hybrid". "Startup pace". The visual rendering comes entirely from the schema. Change it, the UI updates everywhere.
Scout feeds into a CV generator using the same profile and voice guide. The handoff is a clipboard paste. Both run entirely on the machine.
Scoring a posting against a structured profile — AI handles that well. Writing a cover letter in my voice — that needed me. The tone, the emphasis, what to put first, what to leave out. AI gave me a draft. I made it honest.
That boundary — between what benefits from automation and what requires taste — is what the build was really teaching me. The patterns I found became the AI Product Starter Kit.
master-profile.md
experience · skills · voice · values
Scout
score → label → CTA
CV + cover letter
profile → adapt → export
saved · applied · interview · offer