Case study · Ethical job-search extension

Honest Apply reads the post first.

A Manifest V3 Chrome extension that analyzes job postings in-browser, compares them against your real résumé and evidence, and flags missing skills and red flags: built to keep a job search calmer, not more anxious.

STATUSWorking local prototype
ROLEProduct, extension architecture, and scoring design
STACKChrome MV3 · Vanilla JS · Service worker
HONEST APPLY · SNAPSHOT
7CORE SURFACES
0EXTERNAL DEPENDENCIES
MV3CHROME MANIFEST
  • Reads a job posting in-browser and compares it against your real résumé
  • Explainable match & goal-fit scoring instead of a black-box percentage
  • Dashboard, pipeline, gap matrix, and a daily digest for a calmer search
  • Vanilla JS service worker: zero runtime dependencies, local-only data
Problem

Job search tools are optimized for volume, not honesty.

Most job-search tooling helps you apply to more postings faster. That treats the real problem, not knowing whether you are actually a fit, or what a listing is quietly asking for, as someone else's job.

Honest Apply moves the analysis to the moment it is actually useful: on the job page itself, compared directly against your real experience, before you spend an evening writing a cover letter for a role you were never going to get.

PRODUCT LOOP

See the real signal, then decide.

The loop is designed to replace a gut feeling about "fit" with something you can actually see and act on.

01

Land

Open a job posting on LinkedIn or another board with the extension active.

02

Extract

The content script pulls structured requirements from the page: LinkedIn-first, with a generic fallback.

03

Score

Your résumé and evidence are compared against the listing for an explainable match and goal-fit score.

04

Decide

Gaps, red flags, and next actions land in a dashboard, pipeline, and daily digest instead of your memory.

Process

Built with the same operating discipline as my BA work.

DISCOVERY

Watch how people actually job-search

Most candidates keep six tabs open and a mental model of "good fit" that never gets written down. The tool needed to make that mental model visible.

REQUIREMENTS

The score has to explain itself

A single black-box percentage erodes trust immediately. Every score needed a visible reason attached to it.

PROTOTYPE

Ship inside the moment of friction

A browser extension that reads the live job page beats a separate app you have to remember to open.

Current Build

  • Popup, content script, and background service worker.
  • Onboarding/settings, dashboard, and LinkedIn-first extraction with a generic fallback.
  • Résumé/evidence storage with explainable match and goal-fit scoring.
  • Saved-job pipeline, gap matrix, and dependency-free smoke tests.

Next Bets

  • Wider ATS and job-board extraction coverage.
  • Smarter goal-fit scoring as more data comes in.
  • A sharper daily digest and learning plan.
  • Packaging for the Chrome Web Store.
What I learned

Explainability is the trust feature.

It would have been faster to ship a single confidence score. It would also have made the tool feel like every other opaque matching algorithm people already distrust.

Showing the reasoning behind each flag, such as a missing skill, a stretch requirement, or a genuine red flag, turned out to matter more than raw scoring accuracy.

A working local prototype today.

Honest Apply runs as a local Chrome extension prototype with real scoring, a real dashboard, and dependency-free smoke tests. Next: broader extraction coverage and a Chrome Web Store-ready package.

Contact Kevin