Snapshot: full project state

This commit is contained in:
2026-10-06 23:43:21 -07:00
commit 1551408fc5
37 changed files with 2827 additions and 0 deletions

36
README.md Normal file
View File

@@ -0,0 +1,36 @@
# Procyon — Job Hunt Workflow Engine
Multi-step job-hunt pipeline with a web GUI, running on a Proxmox LXC (never on the MacBook).
## Pipeline
1. **Discover** — pull jobs from RemoteOK + Indeed RSS (+ optional extra feeds), store in SQLite.
2. **Score** — fit score (0–1) + a one-line "why" opinion, LLM-first, keyword fallback.
3. **Tailor** — clone the master resume and reorder/re-emphasize for the role (honest-only:
no fabricated employers/dates/skills). Draft a tailored cover email.
4. **Self-Audit** — automatic checklist (employer name, no placeholders, contact info, subject,
resume targets the job). Every item must PASS.
5. **Approve (human gate)** — you review and click Approve. Nothing sends without this.
6. **Send** — SMTP email with tailored resume attached. Send is BLOCKED unless approved AND
the audit passed AND SMTP is configured.
7. **Track** — log outcomes (response/interview/offer) and surface response-rate insights.
## Design rules
- Inference runs on the LAN Ollama host (`llm_base_url`), NEVER on this CT (drjones rule).
- Graceful degradation: if the model is saturated, scoring/tailoring falls back to
deterministic keyword matching — the pipeline never blocks on inference.
- Honest resumes only. The LLM system prompt forbids fabricating credentials.
- Optional outbound proxy (his own Nord proxy CT) for discovery fetches — not an evasion rig.
## Setup
- `systemctl restart procyon` after deploy.
- Configure SMTP (iCloud app-specific password) in Settings before sending.
## Files
- `app.py` — Flask routes + pipeline orchestration
- `db.py` — SQLite schema + helpers
- `scraper.py` — discovery (RSS/JSON + proxy)
- `llm.py` — Ollama client + keyword fallback
- `tailor.py` — scoring + resume tailoring + email drafting
- `audit.py` — pre-send self-audit
- `emailer.py` — SMTP send
- `improve.py` — outcome tracking + insights