Peregrine by Circuit Forge LLC — LLM-powered job discovery and application pipeline https://circuitforge.tech/software/peregrine
Find a file
pyr0ball 450bfe1913 feat: wizard fields in UserProfile + params column in background_tasks
- Add tier, dev_tier_override, wizard_complete, wizard_step, dismissed_banners
  fields to UserProfile with defaults and effective_tier property
- Add params TEXT column to background_tasks table (CREATE + migration)
- Update insert_task() to accept params with params-aware dedup logic
- Update submit_task() and _run_task() to thread params through
- Add test_wizard_defaults, test_effective_tier_override,
  test_effective_tier_no_override, and test_insert_task_with_params
2026-02-25 07:27:14 -08:00
app feat: LGBTQIA+ focus + Phase 2/3 audit fixes 2026-02-24 20:02:03 -08:00
config feat: wizard fields in UserProfile + params column in background_tasks 2026-02-25 07:27:14 -08:00
data/survey_screenshots chore: seed Peregrine from personal job-seeker (pre-generalization) 2026-02-24 18:25:39 -08:00
docker feat: add Docker Compose stack with remote/cpu/single-gpu/dual-gpu profiles 2026-02-24 19:31:57 -08:00
docs chore: add backlog.md + gitignore config/.backup-* dirs 2026-02-24 20:54:12 -08:00
scripts feat: wizard fields in UserProfile + params column in background_tasks 2026-02-25 07:27:14 -08:00
tests feat: wizard fields in UserProfile + params column in background_tasks 2026-02-25 07:27:14 -08:00
.dockerignore feat: add Docker Compose stack with remote/cpu/single-gpu/dual-gpu profiles 2026-02-24 19:31:57 -08:00
.env.example feat: add vision service to compose stack and fine-tune wizard tab to Settings 2026-02-24 19:37:55 -08:00
.gitignore chore: add backlog.md + gitignore config/.backup-* dirs 2026-02-24 20:54:12 -08:00
compose.yml feat: startup preflight — port collision avoidance + resource checks 2026-02-24 20:36:16 -08:00
Dockerfile feat: add Docker Compose stack with remote/cpu/single-gpu/dual-gpu profiles 2026-02-24 19:31:57 -08:00
environment.yml chore: seed Peregrine from personal job-seeker (pre-generalization) 2026-02-24 18:25:39 -08:00
Makefile feat: startup preflight — port collision avoidance + resource checks 2026-02-24 20:36:16 -08:00
pytest.ini chore: seed Peregrine from personal job-seeker (pre-generalization) 2026-02-24 18:25:39 -08:00
README.md feat: add cross-platform dependency installer and Makefile for Linux/macOS 2026-02-24 19:47:06 -08:00
requirements.txt feat: add Docker Compose stack with remote/cpu/single-gpu/dual-gpu profiles 2026-02-24 19:31:57 -08:00
setup.sh feat: add cross-platform dependency installer and Makefile for Linux/macOS 2026-02-24 19:47:06 -08:00

Peregrine

AI-powered job search pipeline — by Circuit Forge LLC

Automates the full job search lifecycle: discovery → matching → cover letters → applications → interview prep. Privacy-first, local-first. Your data never leaves your machine.


Quick Start

1. Install dependencies (Docker, Docker Compose, NVIDIA toolkit if needed):

git clone https://git.circuitforge.io/circuitforge/peregrine
cd peregrine
bash setup.sh

2. Start Peregrine:

make start               # remote profile (no GPU)
make start PROFILE=single-gpu  # with GPU

3. Open http://localhost:8501 — the setup wizard guides you through the rest.

macOS: Docker Desktop must be running before make start. Windows: Not supported — use WSL2 with Ubuntu.


Inference Profiles

Profile Services Use case
remote app + searxng No GPU; LLM calls go to Anthropic/OpenAI
cpu app + ollama + searxng No GPU; local models on CPU (slow)
single-gpu app + ollama + vision + searxng One GPU for cover letters + research + vision
dual-gpu app + ollama + vllm + vision + searxng GPU 0 = Ollama, GPU 1 = vLLM

Set the profile in .env:

# .env
DOCKER_COMPOSE_PROFILES=single-gpu

Or select it during the setup wizard.


First-Run Wizard

On first launch, the app shows a 5-step setup wizard:

  1. Hardware Detection — auto-detects NVIDIA GPUs and suggests a profile
  2. Your Identity — name, email, career summary (used in cover letters and prompts)
  3. Sensitive Employers — companies masked as "previous employer (NDA)" in research briefs
  4. Inference & API Keys — Anthropic/OpenAI keys (remote), or Ollama model (local)
  5. Notion Sync — optional; syncs jobs to a Notion database

Wizard writes config/user.yaml. Re-run by deleting that file.


Email Sync (Optional)

Peregrine can monitor your inbox for job-related emails (interview requests, rejections, survey links) and automatically update job stages.

Configure via Settings → Email after setup. Requires:

  • IMAP access to your email account
  • For Gmail: enable IMAP + create an App Password

License

Core discovery pipeline: MIT AI features (cover letter generation, company research, interview prep): BSL 1.1

© 2026 Circuit Forge LLC