Back
LiveIn use by a career consultant

Shortlist

From resume to ranked shortlist, on the consultant's own machine

Career consultants triage job searches for many clients at once, mostly by hand: reading postings, judging fit, and keeping a spreadsheet per candidate. Shortlist turns that into one workflow. Paste a resume and target roles, and it extracts each posting, scores fit against the candidate with a consistent methodology, asks clarifying questions the postings imply, and produces a ranked shortlist plus a cross-role study plan, exported straight into a Google Sheet. It also searches live job boards and can watch a search weekly, alerting the consultant when new matches appear.

The design constraint drove the architecture: it runs entirely on the consultant's own Windows or Mac, and all AI runs through their Claude Code subscription rather than a hosted API key. No server to run, no per-token billing, no candidate data leaving their machine.

Shortlist splash screen
Runs as a local app, opened with one click.
Have a PIN? Try the full demoThe hosted demo is PIN-gated. Want to try it? Ask me for a PIN.
FastAPINext.jsClaude Code CLIAnthropic ClaudeAdzuna APIGoogle Sheets APIOAuthTask Scheduler / launchdCross-platform25 tests

The tool

fictional candidate data
Shortlist intake: a candidate's resume with details autofilled from it, including licensure, education, and commute limits
Paste a resume and the tool autofills the details postings ask about, licensure, education, work authorization, commute, so nothing has to be re-typed.
Shortlist live job search panel with keyword, location, radius, salary, and date filters
Search live job boards by keyword, location, radius, and recency, no manual link-gathering.
Shortlist results: each role scored 0 to 10 for fit with a detailed rationale on strengths and gaps
Each role is scored for fit with specific reasoning, here a cross-state license risk, a PRN salary artifact, and rusty compounding skills, not a generic keyword match.
Shortlist synthesis: a ranked Top Targets shortlist and a cross-role high-leverage study plan
A batch pass ranks the shortlist and writes a cross-role study plan: the concrete, resume-ready steps that raise fit across several roles at once.
Shortlist weekly alerts: saved searches that re-run weekly and surface new matches
Any search can be saved as a weekly alert that re-runs on a schedule and surfaces only genuinely new matches.

How it works

01
Read and question

Paste a resume and target roles, or search live job boards. The tool fetches and extracts each posting, autofills candidate details from the resume, and generates clarifying questions the postings require but the resume doesn't answer (a specific license, tool depth, commute limit).

02
Score and rank

Each role is scored for fit against the full candidate profile with a consistent methodology (geographic fit, seniority, decisive gaps). A batch pass calibrates scores across the set and produces a ranked shortlist plus a cross-role study plan of what to learn for the highest leverage.

03
Deliver and watch

Results export straight into a Google Sheet in the consultant's Drive, or an Excel file. Any search can be saved as a weekly alert: a scheduled background job re-runs it, scores only genuinely new postings, and raises a desktop notification.

Engineering notes

Subscription auth, not an API key

AI runs through the user's local Claude Code CLI in headless mode, so there is no hosted key and no per-token billing. The server strips any leaked ANTHROPIC_API_KEY from the subprocess environment so it can't silently switch auth modes, a bug that cost real debugging to find.

Two-phase, generate-once pipeline

Postings are fetched and extracted once, clarifying questions are surfaced between reading and scoring, and the run streams NDJSON progress per job. Exports reuse the generated result instead of re-running the AI, so a Sheet and an Excel download cost nothing extra.

Structured job search as a source

Live search hits arrive pre-structured from the Adzuna aggregator and feed the same scoring pipeline as pasted links, with the scorer told the text is a summary so brevity isn't mistaken for a thin posting. Selected hits carry a scoring-ready payload so nothing is fetched twice.

Scheduled work on both platforms

Weekly alerts run headless via Windows Task Scheduler and macOS launchd. A daily trigger plus a per-search due-gate gives a weekly cadence that also catches up a machine that was off. The runner repairs its own PATH so the scheduler context can still find the Claude CLI.

Cross-platform packaging

One-click launchers for Windows (.bat/PowerShell) and macOS (.command), a version-stamped self-update when a new build is extracted over an old folder, and a launcher that de-quarantines and makes its sibling scripts runnable so a Mac user never has to touch Terminal twice.

Local-first data

Saved searches and results live in local JSON on the user's machine, never in git or a shipped zip, because they contain resume text. The Sheet export uses the narrowest Google OAuth scope (drive.file), so the app can only touch files it creates.

Roadmap

Resume and cover-letter tailoring

For a high-scoring role, draft a tailored resume summary and cover letter from the same posting extract and candidate profile the scorer already holds.

Multi-client workspace

A consultant manages many candidates at once. Each gets a saved profile, saved searches, and a running pipeline, so weekly alerts fan out across the whole book of clients.

Alerts into the Sheet

Weekly matches currently surface in-app; the next step writes them into a persistent tab of each candidate's existing Sheet so the consultant's living tracker updates itself.

Hosted option

The local-first design is deliberate, but a hosted tier behind auth would enable daily alerts and email delivery for consultants who don't want to leave a machine on.