Reading the repo
Opening the box…
Reading the repo
Opening the box…
How to install on Linux
Local job-search assistant for the German market, run by Claude Code. Finds jobs (Bundesagentur für Arbeit, Arbeitnow, Indeed, LinkedIn, job-alert emails), scores them against your profile, writes a tailored CV and cover letter (DIN 5008) per job, and tracks applications in a local web UI. You always submit yourself.
Saved setup from 10 min ago
Will it work on Linux?
Heads-upIt also needs 20 settings in .env (4 secret).
The maintainers included run.sh. Run it from the cloned folder after reading it.
bash run.sh
Also: run.ps1, setup-task.ps1
Then run bash setup.sh. It stops at the first error and is safe to run again. Servers and tests aren't started; it lists them at the end. Read it first.
git clone https://github.com/lenoben/jobhunter.git cd jobhunter
Python >=3.12, Node.js
curl -LsSf https://astral.sh/uv/install.sh | sh # https://nodejs.org/en/download (or nvm)
Fill in secrets: LLM_API_KEY, TELEGRAM_BOT_TOKEN, ALERTS_MAIL_APP_PASSWORD, UI_SESSION_SECRET
cp .env.example .env
uv sync
uv run pytest
This takes about 30–45 minutes the first time, and most of it is filling in your profile. You only need a terminal. Every command below is for PowerShell on Windows 10/11; where macOS or Linux differs, it says so.
Windows, not WSL. Run everything on Windows itself. The scheduled task, the Python core and the web UI all share one SQLite file, and SQLite locking is unreliable across the WSL/Windows boundary.
Open PowerShell (Start menu → type PowerShell) and install what's missing:
| Tool | Why | Install | Check |
|---|---|---|---|
| Git | download the project | https://git-scm.com/download/win (the defaults are fine) | git --version |
| uv | installs Python 3.12 and the dependencies for you | powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 \| iex" | uv --version |
| Node.js LTS | the web UI | https://nodejs.org (the LTS button) | node --version |
| Claude Code (recommended) | the AI that runs the search and writes your documents | https://claude.com/claude-code, then run claude once and log in with your Claude subscription | claude --version |
Close and reopen PowerShell after installing, so the new commands are found.
Don't want Claude Code? Skip it and get an API key from an OpenAI-compatible provider instead, for example Google Gemini or Groq (both have a free tier), OpenAI, OpenRouter or Mistral, or run a local model with Ollama. See Your setup, your choices for the trade-offs.
Never set
ANTHROPIC_API_KEY. Claude Code runs on your subscription, and the run scripts remove that variable on purpose.
Pick a folder for it (here D:\projekte), then:
cd D:\projekte
git clone https://github.com/lenoben/jobhunt.git jobhunter
cd jobhunter
Run all later commands inside this jobhunter folder.
uv sync
This creates a private Python environment in .venv\ with everything JobHunter needs, including
Typst for the PDFs. Nothing is installed system-wide. It takes a minute the first time.
The setup wizard in the next step asks for these, so have them at hand. Only Telegram is required; skip whatever else you don't want.
/newbot, pick a name, copy the bot token).uv run python cli.py setup
It asks one question at a time. The value in [brackets] is the default: press Enter to
take it. Passwords and keys are typed hidden and never shown again. What it asks:
| Part | Question | What to answer |
|---|---|---|
| 1. Requirements | — | Shows ✓/✗ for Claude Code, Node, npm and Typst. Install anything marked ✗ that you need |
| 2. Your files | — | Creates .env (your secrets) and profile/profile.yaml (your data) from the examples |
| 3. AI | Provider | 1 for claude-code, or your provider's number |
| | Models | Claude Code: Enter keeps haiku for scoring and sonnet for writing. Other providers: the wizard lists the provider's models; pick a fast, cheap one for searching/scoring and a strong one for writing |
| 4. Countries | Countries | Numbers from the list or names, comma-separated, e.g. 2, 3, remote for USA, UK and remote jobs. Then the optional Himalayas key |
| 5. Email | Save application emails as drafts? | y, then the address and the app password; or n |
| | Read job alerts from | the drafts mailbox, another mailbox, or none |
| 6. Telegram | Bot token | Paste the token from @BotFather. The wi
…
No reports for Linux yet.
GitManual AI Agent reads the 3 key files and writes a step-by-step guide for Linux. Once written, it's saved for everyone.