Chrome extension • Multi-provider • GitHub Pages

Apply faster without handing your resume to a hosted AI.

Knight parses your resume locally, maps it onto common ATS forms, logs applications, reads Gmail updates with a read-only scope, and drafts follow-ups with Ollama, OpenAI, Anthropic, Google Gemini, or OpenRouter.

  • Local-first with optional cloud providers
  • Works across major ATS portals and generic forms
  • Auto-discovers installed Ollama models and tracks Gmail status drift
5 LLM providers supported
9 Portal paths including generic fallback
129 Passing regression tests
ResumePDF / DOCX / TXT
ProvidersOllama / OpenAI / Anthropic / Gemini / OpenRouter
TrackingGmail read-only sync
Follow-upActive provider drafted replies

Workflow

Built around the actual application loop

1. Parse once

Import your resume as PDF, DOCX, or TXT. Knight now uses a local parser service powered by LangExtract, PyMuPDF, and optional Tesseract OCR to build a reusable profile without doing brittle PDF parsing inside the browser.

2. Review before fill

On supported career pages, Knight injects a review overlay so you can inspect or edit mapped values before autofill.

3. Track status drift

Gmail sync classifies confirmation, interview, rejection, and offer emails, then updates the application timeline locally.

4. Draft the follow-up

When a role stalls, Knight uses your profile plus application history to prepare a concise follow-up draft with the currently selected provider.

Coverage

Common job platforms supported first

Workday Greenhouse Lever Naukri iCIMS SmartRecruiters Taleo SuccessFactors Generic fallback

Knight also includes a generic form-mapping fallback for employer-hosted portals that expose standard inputs, labels, placeholders, or aria metadata. In the extension settings, each supported platform is listed with its canonical vendor link and domain coverage.

Install

Local dev, packaged release, and GitHub Pages all included

Local setup

git clone git@github.com:sir-ad/knight.git
cd knight/resume-parser-sidecar
./scripts/setup-venv.sh
./scripts/run.sh

cd ../careerflow
npm install
OLLAMA_ORIGINS=chrome-extension://* ollama serve
ollama pull llama3.2:3b
npm test -- --runInBand
npm run build

Chrome load

  1. Open chrome://extensions
  2. Enable Developer Mode
  3. Click Load unpacked
  4. Select careerflow/build/chrome-mv3-prod

Local requirements

  • Node.js 20+
  • Python 3.11+ for the local parser sidecar
  • Resume parser sidecar on 127.0.0.1:43118
  • Ollama running locally for the default privacy-first path
  • llama3.2:3b or another installed Ollama model
  • tesseract if you want OCR for scanned PDFs
  • Optional API keys for OpenAI, Anthropic, Google Gemini, or OpenRouter
  • Optional Google OAuth client for Gmail sync

Shipping

Prepared for CI, Pages, and release packaging

CI

Typecheck, test, build, and package the extension, then run the Python sidecar test suite with Tesseract installed.

Pages

This site deploys from the repository via GitHub Actions with no extra hosting layer.

Releases

Tagged releases attach the packaged Chrome extension zip as a downloadable artifact.