Chrome extension · Privacy-first · Local LLM ready

Stop filling the same form twice.

Every application is the same twenty fields, pasted by hand into Workday, Greenhouse, Lever, and a dozen other portals that share nothing between them. Knight parses your resume on your own machine, maps it to each form's fields, and writes nothing until you confirm a diff of every change.

  • Resume parsed locally — no hosted pipeline
  • Review overlay before a single character is written
  • Ollama, OpenAI, Anthropic, Gemini, or OpenRouter
14 Named ATS adapters + generic fallback
5 LLM providers supported
0 Bytes sent to any server without your consent
ResumePDF / DOCX / TXT
ProvidersOllama · OpenAI · Anthropic · Gemini · OpenRouter
TrackingGmail read-only sync
Follow-upDrafted from your application context
Knight abstract visual

Workflow

Built around the actual application loop

1. Parse once

Import your resume as PDF, DOCX, or TXT. The local sidecar uses PyMuPDF, optional Tesseract OCR, and LangExtract to build a reusable structured profile — entirely on your machine.

2. Review before fill

On every supported career page, Knight injects a review overlay so you can inspect or edit every mapped value before a single character is written into any field.

3. Track status drift

Gmail sync runs read-only OAuth and classifies confirmation, interview, rejection, and offer emails — updating your local application timeline automatically.

4. Draft the follow-up

When a role stalls, Knight uses your profile plus application history to prepare a concise follow-up draft with whichever provider you have configured.

Coverage

14 named adapters + a DOM fallback

Workday Greenhouse Lever Naukri iCIMS SmartRecruiters Oracle Taleo SAP SuccessFactors LinkedIn Easy Apply Indeed Wellfound Ashby Rippling Generic fallback

The generic fallback covers employer-hosted portals that expose standard inputs, labels, placeholders, or aria metadata. Every supported ATS is listed in the extension settings with its canonical vendor link and domain coverage.

Install

One command to get started

Run this in your terminal
bash <(curl -fsSL https://raw.githubusercontent.com/sir-ad/knight/main/install.sh)

Clones the repo, sets up the Python sidecar, and builds the extension in one shot. Set KNIGHT_DIR=/your/path to change the install location (default: ~/knight).

What gets built

  • Python venv with PyMuPDF, LangExtract, Tesseract bindings
  • Chrome extension at careerflow/build/chrome-mv3-prod
  • Sidecar start command printed on completion

Load in Chrome

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

Requirements

  • Node.js 20+
  • Python 3.11+
  • Chrome 115+ (MV3)
  • tesseract — optional, for scanned PDFs
  • Ollama — optional, for the local-only path
Manual setup

Sidecar

cd ~/knight/resume-parser-sidecar
./scripts/setup-venv.sh
./scripts/run.sh

Extension

cd ~/knight/careerflow
npm install
npm run build

Ollama (optional)

OLLAMA_ORIGINS=chrome-extension://* \
  ollama serve
ollama pull llama3.2:3b

Shipping

Prepared for CI, Pages, and release packaging

CI

Typecheck, test, build, and package the extension. Python sidecar test suite runs in parallel with Tesseract installed.

Pages

This site deploys from docs/ via GitHub Actions. No extra hosting layer.

Releases

Tagged releases attach the packaged Chrome extension zip as a downloadable artifact ready for side-loading.