# Flow 5 — Match · Quick Match → Job Exchange · ~12 min · Oli=Chrome · Oscar=Firefox > Score your résumé against a job (Quick Match) and against the whole board (the Exchange). Match score is the price; the gap matrix shows what's missing; the Exchange must stay clean and easy to slice. **▶ Start here** - **Link:** `…/?startflow=exchange` — the landing's **Match → "Live Job Exchange"** card. - **Lands on:** the **Trading Desk** (live jobs, each scored to your résumé). **Quick Match** (score one pasted JD) is reached **inside the app** via the Quick Match button — there's no direct link. - **Voice:** none for testers. 🎥 **Founder recording:** add `&demo=1&voice=premium` for the narrated Exchange walkthrough. ## Preconditions - [ ] **P1.** Logged in with a **résumé loaded** (built or uploaded). - [ ] **P2.** A **job description** you can paste. - [ ] **P3.** DevTools → Console open. ## Stage 1 — Quick Match (one job) ⭐ (P0) | # | Action | Expected result | |---|--------|-----------------| | 1 | Open **Quick Match**, paste a JD, run it. | A **match % score** and a **gap matrix** appear (skills you have = green/checked; gaps = red; hard credentials like CFA/degree = greyed, no checkbox). | | 2 ⭐ | Check / uncheck a few gaps. | The header **% climbs live** (Weak→Moderate→Strong) and a "Projected: X%" hint updates. | | 3 | Watch the Practice-Interview price as you add gaps. | Price updates by gap count (1–3 → $5, 4–6 → $10, 7+ → $15). | | | | **RED FLAG** | score doesn't compute, gaps don't toggle, or % doesn't move. | ## Stage 2 — The Job Exchange opens clean ⭐ (P0) | # | Action | Expected result | |---|--------|-----------------| | 4 ⭐ | Open the **Job Exchange**. | Scored job cards in a clean grid; **one row (4 cards)** then a single **"Show 4 more · N more"** button; a flashing live-roles counter on top. No clutter. | | 5 | Read a card. | Title · company · location · **match %**, with **Grab** and **Limit order** actions. | ## Stage 3 — Slice it (tabs + filters) ⭐ (P0) | # | Action | Expected result | |---|--------|-----------------| | 6 ⭐ | Use the **By source / By role** toggle and click a tab. | The grid shows **only** that tab's jobs (e.g. only "Software engineer", or only "RemoteOK"). "All jobs" shows everything. | | 7 | In the green **filters** box, open **Location** (one dropdown: Anywhere / Remote / country → city) + try Industry, Min match. | The grid narrows to match; counts update; nothing breaks. | | 8 | Click **Show 4 more**. | The next 4 cards load (batch), not a wall of 60. | | | | **RED FLAG** | tabs don't filter, the merged Location dropdown is empty, or the board dumps everything at once. | ## Stage 4 — Act on a job | # | Action | Expected result | |---|--------|-----------------| | 9 | Click **Grab** on a job. | It moves you toward acting on that role (e.g. customize/apply path). | | 10 | Click **Place a Limit Order** (top-left of the filter box), set targets (match %, remote, salary). | The order is saved; you'll be alerted when a job clears it. | ## Report 🐞 **Found a bug?** any screen — or **Submit a run**: step # · browser · expected · actual · screenshot. ⭐ = P0. ## 🎥 Video (what to record · ≤3 min) Record: paste a JD → match % + gap matrix → check gaps and show the % climb + price change → open the Exchange → toggle By source/By role + a Location filter → Show 4 more → place a limit order. Narrate "match is the price, gaps are what to close."