Scout — A job-posting evaluator built for precision

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.

Scout — a job search tool built for myself

See the highlights

Start with everything. Let failures answer the real question.

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.

The label is the interface.

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:

Stærkt match"Generate application →" as primary, "Save" as secondary
Muligt"Save to pipeline" as primary
Spring overMuted label, "Save anyway" as escape hatch

Three labels, three different interfaces. The scoring output becomes the UI state.

Progress without pressure.

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.

No build step. No server. Haiku, not Sonnet.

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.

Personal ToolClaude APIVanilla JSBrowser SPAAI-assistedDesign System

Where design met code

The scoring schema as design system.

Design

Two score rings — Profile and Workplace — give the verdict at a glance. The dimension table holds the evidence.

Code

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.

Single source of truth

master-profile.md

experience · skills · voice · values

Evaluator

Scout

score → label → CTA

Generator

CV + cover letter

profile → adapt → export

Applications pipeline

saved · applied · interview · offer