Findings & roadmap
All findings in one table
Severity is about user impact, not code size. "Plane" tells you how deep the fix goes — surface fixes are safe to ship alone; scope items need a product decision first (see the method page for why).
| # | Finding | Screen | Plane | Severity | Fix shape |
|---|---|---|---|---|---|
| 1 | Char counter never turns red over the limit (jodapp-web#1315) | Form | Skeleton | High | One-line class fix |
| 2 | Checkbox validation message never displays (jodapp-web#1316) | Form | Skeleton | High | d-block on feedback, per RadioGroupField |
| 3 | One-sided pay renders $NaN (jodapp-web#1317) | Detail | Skeleton | High | convertCurrency contract fix |
| 4 | Preview pay period prints undefined (jodapp-web#1314) | Form | Skeleton | Medium | Align pay_type/pay_types key |
| 5 | Double bullets and raw dashes in requirements/benefits | Detail | Skeleton | High | Strip list markers at render in BulletedListFromText |
| 6 | Outlet addresses concatenate into one line | Detail | Skeleton | Medium | One address per line |
| 7 | Ad unit sits directly above the only Apply button | Detail | Strategy/Structure | High | Move ad below content or below the fold of the action |
| 8 | One Apply chance per page, no sticky action | Detail | Structure | High | Prototype sticky bar / repeated Apply |
| 9 | Pay section last in the form | Form | Structure | Medium | Prototype Pay after Overview |
| 10 | Submit button non-sticky; failure behaviour unverified | Form | Skeleton | Medium | Verify, then sticky bar or error summary |
| 11 | Form microcopy grammar ("it's own", "btm right corner") | Form | Skeleton | Medium | One editing pass |
| 12 | No draft save / no duplicate-from-existing | Form | Scope | Medium | Product decision, then feature |
| 13 | No map link for addresses | Detail | Scope | Medium | Cheap link, high decision value |
| 14 | No related-jobs module (only articles) | Detail | Scope | Medium | Product decision, then module |
| 15 | Closing date renderable but never collected | Form | Scope | Low | Confirm intent |
| 16 | Section headings same weight as labels | Form | Surface | Low | Heading scale from the design system |
| 17 | Description body text small/dense on mobile | Detail | Surface | Low | Type scale adjustment |
| 18 | Trial banner outshouts the posting task | Form | Surface | Low | Quieter persistent state |
Things we explicitly reviewed and decided not to change: the essentials-first hierarchy on the detail page, the live preview panes on the form, and the fully-visible category picker. They are correct by the model; the roadmap builds on them instead of replacing them.
Roadmap
Phase 0 — restore the feedback layer (this sprint, no design needed). Findings 1–4, tracked under the umbrella issue jodapp-web#1318. Each fix updates its design-system preview cell so the fixed state stays screenshot-verified on every future sync.
Phase 1 — stop showing raw input to seekers (render-side, no employer behaviour change).
Findings 5, 6, 11. All three are contained in BulletedListFromText, the address block, and one microcopy pass. Ship together; the detail page immediately looks professionally edited.
Phase 2 — structure experiments in Claude Design (the design system earns its keep). Findings 7–10, prototyped with real components in the Jod Design System before any frontend work: sticky Apply bar, ad placement, Pay-after-Overview, sticky submit with validation summary, plus the form's unaudited mobile layout. Output: one prototype per experiment, reviewed against the screenshots in this folder, then sized as frontend issues.
Phase 3 — scope decisions (product first, then build). Findings 12–15. Each needs an owner to say yes/no before design: duplicate-from-existing (biggest employer time-saver), map links, related jobs, closing date. Data tasks to inform them:
- How many live jobs have a one-sided pay range? (sizes finding 3's visible impact)
- How many employers post ≥3 near-identical jobs per month? (sizes duplicate-from-existing)
- Scroll depth and Apply-click position on the detail page, if GA4 can tell us. (sizes the sticky-Apply win)
Phase 4 — surface polish (rides along with any of the above). Findings 16–18. Small, safe, and all expressible with existing design-system tokens.
Definition of done for this review
- Phase 0 issues closed (#1314–#1317, tracked by #1318)
- Phase 1 shipped and the Cafe Crew page re-screenshotted for this folder
- Phase 2 prototypes reviewed and converted into sized issues
- Phase 3 decisions recorded (yes or no, both fine — recorded)
- This folder updated with outcomes, so the next reviewer starts from results, not from scratch