Files
procyon/README.md
2026-10-06 23:43:21 -07:00

37 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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