Skip to main content

AI-powered job search platform. Self-hosted, open-source, privacy-first.

Project description

Kestrel

Kestrel

Stop spray-and-praying. Start running your job search like a system.
Kestrel scrapes job boards, scores every posting against your profile, and tracks your pipeline — all on your machine.

CI Latest Release PyPI AGPL-3.0 License

Open in GitHub Codespaces


Pipeline — drag applications across stages

Kanban board showing job applications across pipeline stages

Discovery — AI-scored job matches

Discovery page showing scored job listings from multiple boards


What it does

You tell Kestrel what you're looking for. It does the rest.

  • Scrapes job boards — Indeed, LinkedIn, Glassdoor, Arbeitsagentur. Runs daily. You wake up to new matches.
  • Scores every posting — AI reads the job, compares it to your profile, and gives you a fit score (0-10) and a desire score (0-10). Two numbers, because "can you do it?" and "do you want it?" are different questions.
  • Tracks your pipeline — Kanban board. Drag jobs between stages. See where everything stands.
  • Preps you for interviews — Company research, mock questions, a STAR story library you build over time.
  • Runs on your machine — Your data stays on your disk. No account, no cloud, no tracking. Unless you choose otherwise.

Demo Mode works offline, for free, right now. Real AI scoring costs $1-5/month with the built-in optimizations (prompt caching, model routing, response caching — 8 techniques stacked).

Why Kestrel

Job search tools fall into two camps. The SaaS apps (Huntr, Teal, Simplify) want $30/month and your data on their servers. The open-source tools are either abandoned or developer-only CLI scripts.

Kestrel is neither. It's a full app — web dashboard, REST API, mobile app (in progress) — that runs locally. You own the data, pick your own AI provider (or use none), and pay nothing for the software itself.

Full comparison →

Install

Pick one. They all give you the same app.

# One command (detects OS, installs, opens browser)
curl -fsSL https://raw.githubusercontent.com/pleasedodisturb/kestrel/main/install.sh | bash

# Or with pip
pip install kestrel-app && kestrel start

# Or with Node.js
npx kestrel-app

# Or with Homebrew
brew install pleasedodisturb/kestrel/kestrel && kestrel start

# Or with Docker (nothing touches your system)
git clone https://github.com/pleasedodisturb/kestrel.git && cd kestrel && bash setup.sh

Zero install option: Open in GitHub Codespaces — your own instance in 2 minutes, free with a GitHub account.

Need hand-holding? The step-by-step guide assumes you've never used a terminal.

Add AI (optional)

Kestrel works without AI. Demo Mode gives you the full UI with simulated scores — enough to explore everything and decide if it's for you.

When you're ready for real scoring: go to Settings, click "Connect to OpenRouter," log in. Done. Free-tier models (Llama 3.3 70B) score jobs at zero cost.

Want more control? Kestrel supports 6 providers — from free local models to the best commercial APIs. You can even run multiple at once.

Provider Cost Privacy Good for
Demo Mode Free Perfect Trying it out
OpenRouter $0-10/mo Good Most people — one account, 300+ models
Anthropic $1-10/mo Excellent (7-day retention) Best quality, prompt caching
Together AI $1-5/mo Good (ZDR available) Bulk scoring on a budget
Ollama Free Perfect Nothing leaves your machine
OpenAI $1-10/mo Good GPT models direct

Full guide with the electricity analogy → · Technical comparison + API keys → · Privacy deep dive →

Docs

Quickstart First-time setup, zero assumptions
FAQ Common questions answered
Help Something broke? Start here
How Scoring Works What "fit score" means, how Kestrel decides
How Testing Works 2,800+ automated checks explained
Comparison Kestrel vs Huntr, Teal, Simplify, and others
All docs → Full index of 40+ documents

Contributing

Contributing guide · Deployment · API Reference

License

AGPL-3.0 — free and open source. If you modify Kestrel and offer it as a service, share your changes under the same license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kestrel_app-0.12.0.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kestrel_app-0.12.0-py3-none-any.whl (1.0 MB view details)

Uploaded Python 3

File details

Details for the file kestrel_app-0.12.0.tar.gz.

File metadata

  • Download URL: kestrel_app-0.12.0.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for kestrel_app-0.12.0.tar.gz
Algorithm Hash digest
SHA256 5fd1cb5991712f2edbdb9604085283fe108bcb09aeb263a1a731fa4162694f71
MD5 ca8d91bf5349ae7cf57a7c5fd833b0f2
BLAKE2b-256 a49df21727cfb3cb82584e66cdd759f35c6cacd0d0f387177023af0873d961aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for kestrel_app-0.12.0.tar.gz:

Publisher: publish.yml on pleasedodisturb/kestrel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kestrel_app-0.12.0-py3-none-any.whl.

File metadata

  • Download URL: kestrel_app-0.12.0-py3-none-any.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for kestrel_app-0.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b307e5b67bc0100c9824836fa79d9b473553f0520a7217071472ae9772bfe148
MD5 68db061c5b97dc9ea087f4da4a6a0e86
BLAKE2b-256 8edbae510cb5bb3405810c3da536c93f3899c33f14091e2e56484d0814b1e4c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for kestrel_app-0.12.0-py3-none-any.whl:

Publisher: publish.yml on pleasedodisturb/kestrel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page