- UserProfile class drives all personal data - First-run wizard gates app until user.yaml exists - Docker Compose stack: remote/cpu/single-gpu/dual-gpu profiles - Vision service containerized (single-gpu/dual-gpu) - All Alex/Library references removed from app and scripts - Circuit Forge LLC / Peregrine branding throughout Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| app | ||
| config | ||
| data/survey_screenshots | ||
| docker | ||
| docs/plans | ||
| scripts | ||
| tests | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| CLAUDE.md | ||
| compose.yml | ||
| Dockerfile | ||
| environment.yml | ||
| pytest.ini | ||
| README.md | ||
| requirements.txt | ||
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
git clone https://git.circuitforge.io/circuitforge/peregrine
cd peregrine
cp .env.example .env
docker compose --profile remote up -d
Open http://localhost:8501 — the setup wizard will guide you through the rest.
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:
- Hardware Detection — auto-detects NVIDIA GPUs and suggests a profile
- Your Identity — name, email, career summary (used in cover letters and prompts)
- Sensitive Employers — companies masked as "previous employer (NDA)" in research briefs
- Inference & API Keys — Anthropic/OpenAI keys (remote), or Ollama model (local)
- 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