Help

Everything you need to capture, extract, score, and track job applications with JobHunt. In a hurry? See the frequently asked questions.

On this page

Getting Started

JobHunt is a local-first job tracker. The Chrome extension captures job pages and sends them to the native macOS app over a local connection; the app stores them and helps you extract structured fields, track follow-ups, review data quality, and manage your pipeline.

Typical workflow

  1. Install the Chrome extension (see instructions in the extension's popup).
  2. Open a job posting and click the JobHunt extension button to capture it.
  3. Open the app — the captured job appears in Jobs.
  4. Run AI extraction to fill in structured fields and a fit score.
  5. Use Data Quality to find gaps, Needs Action for follow-ups.

How It Works

Capture → The Chrome extension sends the page text and any selected text to the JobHunt app over a local connection (localhost) on your machine.

Extraction → An AI model (local via LM Studio/Ollama, or a cloud API) reads the captured text and fills structured fields: title, company, location, salary, work arrangement, and more.

Fit Scoring → The model rates each job 0–100 against your resume and breaks the score down by dimension (skills, seniority, location, work arrangement).

Local-first → All data is stored locally on your Mac by the app. When you use a local model (LM Studio, Ollama, or a custom endpoint on localhost), all AI processing stays on-device and nothing leaves your machine. When you use a cloud provider — or a custom endpoint that isn't local — job description text is sent for extraction and, for fit scoring, your resume text is sent along with the job text. These remote providers require your consent before any data is sent.

Extraction & Scoring

Extracted fields include: job title, company name, location, remote/hybrid/onsite arrangement, salary range, required skills, seniority level, application deadline, and a plain-text summary.

Fit dimensions (scored 0–100)

New captures are extracted automatically. To re-process a job, use Re-run AI (on a job's detail pane, or on a selection in Jobs / Data Quality). To recompute fit after updating your resume without re-extracting, use Score against resume on the job's Fit tab.

Sites & Availability

Sites tracks company or job-board pages you want to review periodically — even when no specific posting is captured.

Add a site URL from the Sites screen. New sites inherit the review interval from Settings.

Reviewing a site updates its last-reviewed and next-review dates so recurring prospecting stays in your workflow.

The app periodically checks whether captured job postings are still live and marks unavailable postings as Not Available automatically.

Duplicates

JobHunt detects duplicate captures by comparing title, company, and URL similarity. Likely duplicates are grouped in the Duplicates screen.

Compare a group to decide which record to keep, merge, archive, or ignore. Use duplicate review after large capture sessions or after retry queues flush several saved postings at once.

A job marked Duplicate is hidden from default views but preserved in history.

Troubleshooting

LM Studio not running — Make sure LM Studio is open and a model is loaded before queuing extraction. Use Test connection in Settings → AI Provider to verify.

Extension not connecting — The JobHunt app must be open — it runs the local connection (localhost) the extension talks to. Restart the app if the extension can't reach it.

Extraction fails silently — Check the LLM Queue for error details and attempt history.

Captures not appearing — The extension queues captures if the service is unavailable and retries. Reopen the extension popup to see the queue state.

Fit scores missing — Add your resume in Settings → Resumes and re-run Fit score only mode for existing jobs.

Settings Reference

AI Provider
AI backend: LM Studio, Ollama, OpenAI, Anthropic, Google, or any OpenAI-compatible endpoint.
Model
The model used for extraction and fit scoring. Gemini Flash is a good cost/quality default.
Resume
Plain text of your resume, used to compute fit scores.
Preferred Locations
Your preferred work locations, used in fit scoring.
Work Arrangement
Remote, hybrid, or onsite preference for fit scoring.
Follow-up Interval
Default number of days used to pre-fill a follow-up reminder when you apply. You are offered (not automatically scheduled) a follow-up when you mark a job applied.
Review Interval
Default interval (days) for site review reminders.

Keyboard Shortcuts

⌘KOpen search / jump to Jobs
/ Previous / next job in list
Open selected job detail
Close panel / clear search
⌘NAdd Job
⌘FFind
⌘⇧EExport current list to CSV
⌃⌘18Go to section (Dashboard … Resumes)
⌘,Open Settings
⌘?Open this Help page

Privacy

All data is stored locally on your Mac by the app. When you use a local model (LM Studio, Ollama, or a custom endpoint on localhost), all AI processing stays on-device and nothing leaves your machine. When you use a cloud provider — or a custom endpoint that isn't local — job description text is sent for extraction and, for fit scoring, your resume text is sent along with the job text. These remote providers require your consent before any data is sent.

The Chrome extension only communicates with the local JobHunt service running on your machine (localhost). See the full Privacy Policy.

Still stuck? Open an issue at github.com/brooksc/jobhunt/issues.