AI & Career Tools

JobHunter

Draft-only career system that refuses to invent résumé lines.

11 agents · only QA can pass a packet

01The situation

In 60 seconds

Business problem

A serious job search means reading hundreds of postings, judging real fit, and rewriting materials for every role. The usual shortcuts cost more than they save: invented résumé claims, opaque “ATS scores”, and tools that submit without asking.

Unacceptable failure

A résumé line that claims something the candidate never did.

Design move

Code finds and screens roles. Models analyze and draft against an evidence bank. QA is the only gate that can pass a packet, and the candidate submits.

What it shows

Every résumé line traces to an Evidence ID, or it gets dropped.

The problem

A serious search spans discovery, fit analysis, interview prep, tailoring and follow-up for every role. Doing it by hand doesn’t scale, and the fast tools fabricate.

Who feels it

  • Candidates running a serious search, documented for senior architecture roles
  • Hiring managers and recruiters who read the packet

What’s at stake

  • Wasted applications on roles that were never a fit.
  • Invented résumé claims that fall apart in the interview.
  • “ATS scores” that don’t say what’s actually missing.

Constraints

  • Personal data stays local or in the candidate’s own Drive, with Ollama or LM Studio by default.
  • Draft only: agents never submit, send, or create accounts.
  • Respect source terms: LinkedIn arrives through alert emails only.
  • Numbers and dates come only from the Evidence Bank.

Failures this system must never produce

  1. F1

    A fabricated résumé claim

    Every line must cite the master résumé or an Evidence ID. A missing number shows as [METRIC?], never a guess.

  2. F2

    Anything sent without the candidate

    No agent submits an application, sends a message, or creates an account.

  3. F3

    A fit score nobody can explain

    Screening and analysis have to show why a role scored the way it did.

02The approach

How AI solves it

Each failure gets one mechanism, and each mechanism has proof further down this page.

Failure Mechanism The model’s role Proof
F1
Mechanism

Tailor plans the résumé as Evidence IDs and code assembles the text. QA rejects any line without a verified Evidence ID; after two rejections the packet goes to “needs review”.

The model’s role

The model chooses which evidence to use. Code writes the text and QA checks it.

F2
Mechanism

The pipeline ends at a reviewable packet. The candidate picks roles, answers interview questions, reviews, and submits outside the system.

The model’s role

None at the boundary. Outreach drafts messages but has no way to send them.

F3
Mechanism

Scout and Screener run deterministic rules and show a score breakdown. Analyst’s scorecard cites résumé lines.

The model’s role

Discovery and screening use no model. Analyst output is schema-constrained.

Where the model works, and where it doesn’t

Model-assisted

  • AnalystReads the JD and scores the résumé, schema-constrained, with citations.
  • InterviewerAsks one question at a time to close real evidence gaps.
  • Tailor (plan only)Chooses Evidence IDs. It never writes free text into the résumé.
  • Cover Letter and OutreachDrafts only. Every cover-letter sentence is checked.
  • AssistantAnswers from stored data, verified sentence by sentence.

Rule-bound or human

  • Scout and ScreenerDiscovery and 0–100 Apply / Maybe / Skip scoring by rules.
  • Résumé assemblyCode joins approved lines; the model never writes them.
  • QA gateRule checks plus model checks. The only thing that can pass a packet.
  • ATS coverageDeterministic keyword coverage, not a vendor ATS.
  • CandidateSelects roles, answers questions, reviews, and submits.

Agents and who holds authority

Eleven agents find, analyze and draft. None of them can submit an application or send a message. QA is the only gate that can pass a packet, and the candidate submits.

Click any card for its contract: inputs, outputs, decision authority, and guardrails.

LLM model-assisted Code deterministic Human person in the loop
Finds · Scores

Discovery

Deterministic, so every fit score can be inspected.

Informs

Analysis

Reads the role and the résumé, then asks the candidate about real gaps.

Drafts

Packet build

Models propose; code assembles and checks.

Blocks · Decides

Authority

The only gate that can pass a packet, and the only person who can send it.

Maintains

Operations

Keeps the funnel tidy and answers from stored data only.

Guardrails & trust

  • QA rejects claims without a verified Evidence ID.
  • Draft only—agents never submit applications or send messages.
  • Numbers and dates come only from the Evidence Bank.
  • Tailor ↔ QA limited rejection loop, then “needs review”.
  • Employment type stated vs inferred—never silently assume permanent.

03See it work

See it run

A 30-second walkthrough from posting to draft packet, and a live demo with a synthetic candidate profile.

Live demo · cloud

Coming soon

Tailor a résumé without inventing anything

  • Paste a sample job description and run the Analyst scorecard
  • Answer one Interviewer question to close a gap
  • Watch Tailor build a résumé from Evidence IDs
  • See QA reject a line with no evidence
  • Review the draft packet; nothing is sent
Open live demo · soon Book a walkthrough
  1. 0:00–0:06 Discover

    New roles arrive and Screener scores them Apply, Maybe or Skip, with the breakdown.

  2. 0:06–0:14 Analyze

    Analyst scores the résumé against the JD and cites résumé lines.

  3. 0:14–0:22 Tailor

    Tailor picks Evidence IDs and code assembles the draft.

  4. 0:22–0:30 QA

    QA drops an invented metric. The packet waits for the candidate.

Interactive architecture

Walk a real request through agents, services, stores, and human gates. Click any node for its contract.

Proof on synthetic data

One synthetic job description turned into cited résumé lines, including the line QA refused.

From JD excerpt to cited résumé lines

Before

JD snippet (synthetic)

Illustrative posting

Staff AI Engineer — healthcare
Must: agent orchestration, RAG, auditability
Nice: FastAPI, OpenSearch, payer domain
“Ship production LLM features with human review gates.”

After

Tailored lines (Evidence IDs)

Every line cited — or dropped

  • E-041 Designed multi-agent claims orchestration with denial gate + human review (not auto-deny on low confidence). Evidence Bank
  • E-118 Built local-first JobHunter QA that rejects résumé claims without verified Evidence IDs. Evidence Bank
  • QA Dropped invented “40% latency win” — no Evidence ID → packet fails QA. Gate

Illustrative synthetic contrast—no patient, claimant, or personal data shown.

04The result

What changes for the candidate

Less repeated prep

Evidence and answers carry over across similar roles.

Fewer fabricated claims reach a hiring manager

QA rejects any line without a verified Evidence ID (F1).

The candidate owns every submission

Agents stop at a draft packet (F2).

How I check it behaves

Each check has a definition and a target. Results appear only from real runs, with the set size and date.

Check What it counts Target Last run
Unsupported résumé lines F1 Lines in passed packets without a verified Evidence ID 0 Run pending
Invented numbers F1 Numbers or dates not found in the Evidence Bank 0 Run pending
Autonomous sends F2 Applications or messages sent by an agent 0 Run pending
Explained scores F3 Screened roles that show a full score breakdown All Run pending

05Looking back

Architecture decisions

  • Deterministic discovery and screening F3

    So fit scores stay inspectable.

    Cost acceptedRules miss some roles a model might have judged a fit.

  • Models propose; code assembles and verifies F1

    So no model can write a résumé line on its own.

    Cost acceptedWording is less fluent than free-form generation.

  • Local model by default

    So candidate data stays under the candidate’s control.

    Cost acceptedSmaller local models need stricter schemas and more checks.

  • Draft-only boundary F2

    So the candidate owns every submission.

    Cost acceptedNo time saved on the final submit step.

Known limits and next step

Scope · disclosed

JobHunter runs locally today. The AWS deployment (Phase 2) is designed but deferred.

A hosted demo needs either that deployment or a sandboxed copy with a synthetic profile and evidence bank.

Next step

  1. Stand up a demo instance with a synthetic candidate profile.
  2. Keep auto-apply out of scope; the demo stops at the draft packet.

Also disclosed

  • The optional Career Context Engine runs behind a feature flag (CAREER_CONTEXT).

Project demo