You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The cached jobs layer lives in Postgres (`cached_jobs` table) and is refreshed by a scheduled worker that fans out across all four sources. Highlights:
@@ -61,8 +63,6 @@ See [ADR-013](docs/adr/ADR-013-cached-jobs-cache-layer-with-scheduled-refresh.md
61
63
62
64
Each agent follows the same operating shape: deterministic baseline first, LLM-assisted refinement second, structured JSON output, and a deterministic fallback when assisted execution is unavailable. **Per-agent fallback isolation** means a single failing agent falls back independently — the other three keep their LLM-quality output. See [ADR-018](docs/adr/ADR-018-three-layer-llm-retry-and-per-agent-fallback-isolation.md) for the three-layer retry stack (SDK retry × 2 + app-level retry + per-agent retry).
- Deterministic services build the candidate profile, JD summary, fit analysis, and first-pass tailored draft before the agent layer runs.
@@ -71,35 +71,12 @@ Each agent follows the same operating shape: deterministic baseline first, LLM-a
71
71
- Cover-letter generation is gated on review approval.
72
72
- The fallback review path checks whether the output references missing hard skills that aren't evidenced in the source profile.
73
73
74
-
## Workspace assistant
75
-
76
-
A floating chat surface that's grounded in your live workspace state. Answers are streamed token-by-token via Server-Sent Events. The model sees:
77
-
78
-
-`current_step` (which step you're standing on)
79
-
-`has_resume` / `has_jd` / `has_analysis` flags
80
-
- Compact resume + JD summaries (counts and identity, no raw text)
81
-
- Saved jobs count + last search query
82
-
83
-
So "what should I do next?" returns three different correct answers across the cold-start / mid-flow / ready-to-run personas. See [ADR-017](docs/adr/ADR-017-workspace-assistant-state-aware-context.md).
84
-
85
-
## Product surface
86
-
87
-
1. Sign in with Google through Supabase-backed auth
88
-
2. Upload a resume or build one through the conversational assistant
89
-
3. Search the cached job index, paste a posting URL, or open a saved bookmark
90
-
4. Review the parsed JD with hard / soft / must-have skill chips
91
-
5. Run the supervised pipeline; watch agent stages stream in real time
92
-
6. Review the tailored resume + cover letter side-by-side
93
-
7. Ask grounded follow-up questions in the workspace assistant
94
-
8. Export DOCX or PDF in either theme
95
-
96
74
## Engineering notes
97
75
98
76
-**44 Python test files** cover parsing, normalization, fitting, tailoring, orchestration, builders, exports, auth, quotas, persistence, error handling, and the four ATS adapters.
99
77
-**Quality runners** in `tests/quality/` produce evidence for each LLM-driven stage (parser, tailoring, review, resume gen, cover letter, assistant, JD parser, latency baseline).
100
78
-**19 ADRs** in `docs/adr/` record the architectural decisions, including the Streamlit-first → Next.js + FastAPI transition (ADR-012), DOCX-first export (ADR-015), conversational builder (ADR-016), state-aware assistant (ADR-017), and three-layer retry stack (ADR-018).
101
79
-**Architecture details** live in [docs/architecture.md](docs/architecture.md).
102
-
-**Design system reference** lives in [`design_system/`](design_system/) — the shipped Direction-B handoff prototype, per-screen specs (chrome + 4 steps), and the landing page spec set.
0 commit comments