Skip to content

Commit d638fec

Browse files
Revise README with visual tour and content updates
Updated the README to include a visual tour section and reorganized content for clarity.
1 parent 3fd79c5 commit d638fec

1 file changed

Lines changed: 14 additions & 37 deletions

File tree

README.md

Lines changed: 14 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,22 @@
88

99
**Live:** [job-application-copilot.xyz](https://job-application-copilot.xyz) · **Workspace:** [app.job-application-copilot.xyz](https://app.job-application-copilot.xyz)
1010

11+
![Architecture overview](docs/job-agent-architecture.svg)
12+
13+
---
14+
15+
## Visual tour
16+
1117
![Job Search step with 12 live matches and saved jobs drawer](docs/images/landing_jobsearch.png)
1218

19+
| Step 01 — Resume builder (chat one into existence) | Step 03 — Job Detail (parsed JD with match score + skill chips) |
20+
|---|---|
21+
| ![](docs/images/landing_resumebuilder.png) | ![](docs/images/landing_jd.png) |
22+
23+
| Output — `classic_ats` theme | Output — Cover letter |
24+
|---|---|---|
25+
| ![](docs/images/classic_resume_render.jpg) | ![](docs/images/cover_letter_render.jpg) |
26+
1327
---
1428

1529
## What's actually inside
@@ -26,18 +40,6 @@
2640

2741
---
2842

29-
## Visual tour
30-
31-
| Step 03 — Job Detail (parsed JD with match score + skill chips) | Step 01 — Resume builder (chat one into existence) |
32-
|---|---|
33-
| ![](docs/images/landing_jd.png) | ![](docs/images/landing_resumebuilder.png) |
34-
35-
| Output — `classic_ats` theme | Output — `professional_neutral` theme | Output — Cover letter |
36-
|---|---|---|
37-
| ![](docs/images/classic_resume_render.jpg) | ![](docs/images/modern_resume_render.jpg) | ![](docs/images/cover_letter_render.jpg) |
38-
39-
---
40-
4143
## How job discovery works
4244

4345
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
6163

6264
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).
6365

64-
![Architecture overview](docs/job-agent-architecture.svg)
65-
6666
## How grounding works
6767

6868
- 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
7171
- Cover-letter generation is gated on review approval.
7272
- The fallback review path checks whether the output references missing hard skills that aren't evidenced in the source profile.
7373

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-
9674
## Engineering notes
9775

9876
- **44 Python test files** cover parsing, normalization, fitting, tailoring, orchestration, builders, exports, auth, quotas, persistence, error handling, and the four ATS adapters.
9977
- **Quality runners** in `tests/quality/` produce evidence for each LLM-driven stage (parser, tailoring, review, resume gen, cover letter, assistant, JD parser, latency baseline).
10078
- **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).
10179
- **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.
10380

10481
## Deployment
10582

0 commit comments

Comments
 (0)