Peregrine by Circuit Forge LLC — LLM-powered job discovery and application pipeline https://circuitforge.tech/software/peregrine
Find a file
pyr0ball dc4a08c063 feat: wire fine-tune UI end-to-end + harden setup.sh
- setup.sh: replace docker-image-based NVIDIA test with nvidia-ctk validate
  (faster, no 100MB pull, no daemon required); add check_docker_running()
  to auto-start the Docker service on Linux or warn on macOS
- prepare_training_data.py: also scan training_data/uploads/*.{md,txt}
  so web-uploaded letters are included in training data
- task_runner.py: add prepare_training task type (calls build_records +
  write_jsonl inline; reports pair count in task result)
- Settings fine-tune tab: Step 1 accepts .md/.txt uploads; Step 2 Extract
  button submits prepare_training background task + shows status; Step 3
  shows make finetune command + live Ollama model status poller
2026-02-25 16:31:53 -08:00
app feat: wire fine-tune UI end-to-end + harden setup.sh 2026-02-25 16:31:53 -08:00
config fix: repair beta installer path for Docker-first deployment 2026-02-25 16:03:10 -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 feat: Podman support — auto-detect COMPOSE, CDI GPU override, podman-compose in setup.sh 2026-02-25 15:36:36 -08:00
scrapers fix: repair beta installer path for Docker-first deployment 2026-02-25 16:03:10 -08:00
scripts feat: wire fine-tune UI end-to-end + harden setup.sh 2026-02-25 16:31:53 -08:00
tests feat: cover letter iterative refinement — feedback UI + backend params 2026-02-25 14:44:20 -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 fix: repair beta installer path for Docker-first deployment 2026-02-25 16:03:10 -08:00
CHANGELOG.md docs: mark cover letter refinement complete in backlog + changelog 2026-02-25 14:44:50 -08:00
CLAUDE.md chore: seed Peregrine from personal job-seeker (pre-generalization) 2026-02-24 18:25:39 -08:00
compose.podman-gpu.yml feat: containerize fine-tune pipeline (Dockerfile.finetune + make finetune) 2026-02-25 16:22:48 -08:00
compose.yml feat: containerize fine-tune pipeline (Dockerfile.finetune + make finetune) 2026-02-25 16:22:48 -08:00
CONTRIBUTING.md docs: mkdocs wiki — installation, user guide, developer guide, reference 2026-02-25 12:05:49 -08:00
Dockerfile feat: add Docker Compose stack with remote/cpu/single-gpu/dual-gpu profiles 2026-02-24 19:31:57 -08:00
Dockerfile.finetune feat: containerize fine-tune pipeline (Dockerfile.finetune + make finetune) 2026-02-25 16:22:48 -08:00
environment.yml chore: mkdocs deps, CHANGELOG, remove dead Resume Editor page, backlog gap items 2026-02-25 13:51:13 -08:00
LICENSE-BSL docs: LICENSE-MIT + LICENSE-BSL + updated README for 7-step wizard and current feature set 2026-02-25 12:06:28 -08:00
LICENSE-MIT docs: LICENSE-MIT + LICENSE-BSL + updated README for 7-step wizard and current feature set 2026-02-25 12:06:28 -08:00
Makefile feat: containerize fine-tune pipeline (Dockerfile.finetune + make finetune) 2026-02-25 16:22:48 -08:00
mkdocs.yml docs: mkdocs wiki — installation, user guide, developer guide, reference 2026-02-25 12:05:49 -08:00
pytest.ini chore: seed Peregrine from personal job-seeker (pre-generalization) 2026-02-24 18:25:39 -08:00
README.md fix: repair beta installer path for Docker-first deployment 2026-02-25 16:03:10 -08:00
requirements.txt chore: mkdocs deps, CHANGELOG, remove dead Resume Editor page, backlog gap items 2026-02-25 13:51:13 -08:00
setup.sh feat: wire fine-tune UI end-to-end + harden setup.sh 2026-02-25 16:31:53 -08:00

Peregrine

AI-powered job search pipeline — by Circuit Forge LLC

"Don't be evil, for real and forever."

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, NVIDIA toolkit if needed):

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

2. Start Peregrine:

make start                        # remote profile (API-only, no GPU)
make start PROFILE=single-gpu     # with one GPU
make start PROFILE=dual-gpu       # dual GPU (Ollama + vLLM)

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 started 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: cover letters, research, vision
dual-gpu app + ollama + vllm + vision + searxng GPU 0 = Ollama, GPU 1 = vLLM

First-Run Wizard

On first launch the setup wizard walks through seven steps:

  1. Hardware — detects NVIDIA GPUs and recommends a profile
  2. Tier — choose free, paid, or premium (or use dev_tier_override for local testing)
  3. Identity — name, email, phone, LinkedIn, career summary
  4. Resume — upload a PDF/DOCX for LLM parsing, or use the guided form builder
  5. Inference — configure LLM backends and API keys
  6. Search — job titles, locations, boards, keywords, blocklist
  7. Integrations — optional cloud storage, calendar, and notification services

Wizard state is saved after each step — a crash or browser close resumes where you left off. Re-enter the wizard any time via Settings → Developer → Reset wizard.


Features

Feature Tier
Job discovery (JobSpy + custom boards) Free
Resume keyword matching Free
Cover letter generation Paid
Company research briefs Paid
Interview prep & practice Q&A Paid
Email sync & auto-classification Paid
Survey assistant (culture-fit Q&A) Paid
Integration connectors (Notion, Airtable, Google Sheets, etc.) Paid
Calendar sync (Google, Apple) Paid
Cover letter model fine-tuning Premium
Multi-user support Premium

Email Sync

Monitors your inbox for job-related emails and automatically updates job stages (interview requests, rejections, survey links, offers).

Configure in Settings → Email. Requires IMAP access and, for Gmail, an App Password.


Integrations

Connect external services in Settings → Integrations:

  • Job tracking: Notion, Airtable, Google Sheets
  • Document storage: Google Drive, Dropbox, OneDrive, MEGA, Nextcloud
  • Calendar: Google Calendar, Apple Calendar (CalDAV)
  • Notifications: Slack, Discord (webhook), Home Assistant

Developer Docs

Full documentation at: https://docs.circuitforge.io/peregrine


License

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

© 2026 Circuit Forge LLC