Getting Started
Contents
Prerequisites
| Requirement | Notes |
|---|---|
| Node.js ≥ 20 | Required |
| TeX distribution | MiKTeX (Windows), MacTeX (macOS), texlive (Linux) — needed for PDF compilation |
Playwright Chromium (for LinkedIn/Indeed scrapers) is downloaded to <userData>/ms-playwright/ automatically on first launch if absent.
Installation
npm install
postinstall runs automatically and rebuilds better-sqlite3 against the Electron headers.
Development
npm run dev
Starts the Electron app with Vite HMR. The renderer reloads on save; changes to main-process files require an app restart. DevTools open automatically.
Typecheck
npm run typecheck
Runs tsc --noEmit over both the Node and web tsconfigs. No build artifacts are produced.
Production Build
npm run build:dist
electron-vite build— compiles main, preload, and renderer intoout/electron-builder— packages into a platform installer underdist/
| Platform | Output |
|---|---|
| macOS | dist/*.dmg (requires Apple Developer ID for notarization) |
| Windows | dist/*-Setup.exe (NSIS installer) |
| Linux | dist/*.AppImage, dist/*.deb |
To build without an installer:
npm run build
First Launch
On the first run the app will:
- Create the SQLite database at the platform user-data directory and run all migrations automatically.
- Show all Claude-dependent features as locked until an Anthropic API key is entered in Settings.
- Show resume compilation as locked if
xelatexis not found onPATHor at the path configured in Settings.
Once an API key is saved in Settings, Claude-dependent features unlock immediately — no restart required.
Data Location
| Platform | Path |
|---|---|
| macOS | ~/Library/Application Support/career-index/ |
| Windows | %APPDATA%\career-index\ |
| Linux | ~/.config/career-index/ |
The SQLite database (jobhunt.db), browser contexts, resume files, and logs all live here. Use the one-click backup in Settings to archive the full data directory.
One-Click Backup
Settings → Backup exports the SQLite file, browser contexts, and resume files as a single archive to a user-chosen location. This is distinct from the JSON export available in the Data section, which is a portable structured export for selective migration.