Repository navigation
Trade-specific badge labels, scan form UX fix, dashboard copy polish #506
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
9a4f49d
[NightlyBuildAgent] Trade-specific badge labels + dashboard copy polish
claude cba52b9
[NightlyBuildAgent] Remove duplicate trade selector — one clear scan …
claude 5630594
[vault] changelog + todo — 2026-08-24 second run
claude bd978d1
Fix P1+P2 from Codex review on scan form
claude ddada15
Fix P2 (Codex): alert copy no longer promises unconditional delivery
claude File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
55 changes: 55 additions & 0 deletions
55
Obsidian_Memory/Obsidian_Vault/JobFilter/Changelog 2026-08-24b.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,55 @@ | ||
| # Changelog 2026-08-24b — NightlyBuildAgent (Second Run) | ||
|
|
||
| ## Build Status | ||
| - npm run build: PASS | ||
| - npx tsc --noEmit: PASS (0 errors) | ||
| - Branch: nightly/2026-08-24-scoring-copy-fix | ||
| - PR: https://github.com/manazoid4/JobFilterV1/pull/506 | ||
|
|
||
| ## Phase 1 — Fix Broken | ||
| - No broken builds or TypeScript errors. | ||
|
|
||
| ## Phase 2 — Feature: Trade-specific scoring UX | ||
|
|
||
| ### FindJobsPage.tsx — parseTradeReasons fallback | ||
| - **Before:** When no reasons were parsed from `lead.reasons[]`, badge showed "Verified signal" (generic, unhelpful) | ||
| - **After:** Falls back to: (1) first matching TITLE_KEYWORDS keyword from lead title (e.g. "REWIRE", "EV CHARGER", "BOILER", "EXTENSION"), (2) trade name + " JOB" (e.g. "ELECTRICAL JOB"), (3) "Verified signal" only if no trade or title match | ||
| - Call site updated: `parseTradeReasons(rawReasons, lead.title, String(lead.trade || lead.tradeMatch || ''))` | ||
| - Electricians now see "REWIRE — YOUR TRADE" or "EV CHARGER" instead of "Verified signal" | ||
|
|
||
| ## Phase 3 — Copy Polish | ||
|
|
||
| ### FindJobsPage.tsx — Scan counter zero-state | ||
| - **Before:** "Buyer and submission context locked. Scanning remains free." | ||
| - **After:** "All 3 free scans used — contact details and job value locked until Monday." | ||
| - Fix: Removed "submission context" jargon, made the consequence (locked info) and reset timing (Monday) explicit | ||
|
|
||
| ### DashboardPage.tsx — Multiple copy fixes | ||
| 1. Alert section headline: "WATCH FOR MATCHING PUBLIC OPPORTUNITIES" → "GET ALERTED WHEN JOBS HIT YOUR AREA" | ||
| 2. Alert description: "Alerts report matching public notices when configured; availability and delivery depend on the current source and account setup." → "Save your trade and area. When matching jobs appear in official sources, you get an alert — before Checkatrade, Bark, or MyBuilder list the same work." | ||
| 3. Chase section: "Not actioned" → "Not called yet", "need review" → "need a call" | ||
| 4. Win-review hint: "decision evidence" → plain English ("why each job was won or lost") | ||
| 5. Empty chase state: "Track an opportunity from Find Opportunities so its decision evidence and next action stay visible here." → "Run a scan on Find Jobs and click TRACK THIS LEAD — it appears here so you can log calls, set reminders, and mark won or lost." | ||
|
|
||
| ## Phase 4 — Site Health | ||
|
|
||
| ### NEEDLE — Top 3 UX issues found | ||
| 1. **DashboardPage:124-125** — "WATCH FOR MATCHING PUBLIC OPPORTUNITIES" jargon — HIGH — FIXED THIS RUN | ||
| 2. **FindJobsPage:493-571** — Duplicate trade selection: dropdown + preset buttons with different interaction models — HIGH — FIXED THIS RUN | ||
| 3. **LeadDetailPage:431+576** — 3 scattered WhatsApp CTAs with no clear primary action — HIGH — NOT FIXED (scope too large for this run) | ||
|
|
||
| ### BUILDER — Scan form UX fix | ||
| - Removed redundant trade `<select>` dropdown from the scan form | ||
| - Trade is now selected exclusively via the visual "PICK YOUR TRADE" preset buttons | ||
| - Preset buttons already auto-submit when a postcode is present | ||
| - Grid layout updated: 4 columns (postcode + trade + radius + button) → 3 columns (postcode + radius + button) | ||
| - Section label: "TAP A TRADE TO SCAN INSTANTLY" → "PICK YOUR TRADE" | ||
|
|
||
| ### CRITIC — Clearer in <3 seconds? | ||
| - YES: Scan form now has one clear path: enter postcode → pick trade → auto-scan. No ambiguity. | ||
|
|
||
| ### REVENUE — Increases likelihood of £39/month? | ||
| - YES: Removing friction from the first scan reduces time-to-value and increases likelihood of seeing enough leads to convert. | ||
|
|
||
| ## Notes on PR Backlog | ||
| - There are 30+ open PRs against older main commits (base: 65508a9 or 9df30ec). These likely conflict with current main (5489192). The user needs to review and close stale ones. This is not something the agent can resolve. |
28 changes: 17 additions & 11 deletions
28
Obsidian_Memory/Obsidian_Vault/JobFilter/Sessions/Daily To-Do.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,32 +1,38 @@ | ||
| # Daily To-Do — JobFilter | ||
|
|
||
| Last updated: 2026-08-24 (NightlyBuildAgent) | ||
| Last updated: 2026-08-24b (NightlyBuildAgent second run) | ||
|
|
||
| ## Completed This Run | ||
| - [x] npm run build — green | ||
| - [x] npx tsc --noEmit — clean | ||
| - [x] FindJobsPage "no scan yet" state — fear hook headline + removed SVG map illustration | ||
| - [x] WinStatsBanner zero-state — show placeholder when wonCount = 0 | ||
| - [x] TrustCenterPage accuracy fix — removed false "exclusive territory lock" claim | ||
| - [x] PR #504 opened — nightly/2026-08-24-copy-ux | ||
| - [x] Trade-specific badge labels: parseTradeReasons fallback now uses title keywords / trade name | ||
| - [x] Scan counter zero-state copy: removed "submission context" jargon | ||
| - [x] DashboardPage: 5 copy fixes (alert headline, description, "Not actioned", win-review hint, empty chase state) | ||
| - [x] NEEDLE: found top 3 UX issues | ||
| - [x] BUILDER: removed duplicate trade dropdown from scan form (clearest fix) | ||
| - [x] PR #506 opened — nightly/2026-08-24-scoring-copy-fix | ||
|
|
||
| ## Completed Previous Runs | ||
| - [x] HomePage hero copy — fear→proof→control, competitor names in ops strip (PR #499) | ||
| - [x] PricingPage CTAs — removed "START AFTER COVERAGE CHECK" friction, clear pricing (PR #499) | ||
| - [x] Scan counter (weekly reset, localStorage-based): DONE — FindJobsPage.tsx | ||
| - [x] Scan counter (weekly reset, Monday midnight): DONE — FindJobsPage.tsx | ||
| - [x] WinStatsBanner with /api/wins/stats endpoint: DONE | ||
| - [x] Google Calendar ICS export: DONE — calendarExport.ts + LeadDetailPage.tsx | ||
| - [x] WhatsApp templates (quick_quote_offer + availability_check): DONE — chaseTemplates.ts | ||
| - [x] FindJobsPage "no scan yet" state — fear hook headline + removed SVG map illustration | ||
| - [x] WinStatsBanner zero-state — show placeholder when wonCount = 0 | ||
| - [x] TrustCenterPage accuracy fix — removed false "exclusive territory lock" claim | ||
|
|
||
| ## In Progress | ||
| - [ ] PR #504 — awaiting CI "check" status | ||
| - [ ] PR #506 — awaiting CI "check" status | ||
|
|
||
| ## Next Run Priorities | ||
| 1. Review PR #504 CI — merge if green | ||
| 2. Copy polish: ForYourTradePage bottom CTA — verify WaitlistForm is wired to /api/waitlist (no fake flows) | ||
| 3. Trade-specific scoring UX: fallback "Verified signal" badge label on lead cards is too vague — improve to show a trade-specific reason even without a parsed tradeMatch reason | ||
| 1. **LeadDetailPage WhatsApp UX** — 3 scattered WhatsApp CTAs (lines 431, 576, 599-605) with no clear primary action. Consolidate to one entry point or add clear hierarchy (primary = sticky ActionBar, secondary = template section). | ||
| 2. **PR backlog review** — 30+ open PRs against stale base commits (65508a9, 9df30ec). Most conflict with current main (5489192). User should review and close stale ones — agent cannot merge PRs without CI passing. | ||
| 3. **DashboardPage "OPPORTUNITY ALERTS" micro-label** — still uses "OPPORTUNITY ALERTS" (line 124). Consider: "JOB ALERTS" — shorter, plain English. | ||
|
|
||
| ## Known Issues | ||
| - node_modules not committed (expected) — fresh install needed each remote session | ||
| - Main branch protected: requires "check" CI status — all agent pushes must go via PR | ||
| - Obsidian vault Product docs absent from this repo clone (roadmap, key problems, design direction files were not found — vault only has Changelog + Sessions) | ||
| - 30+ open PRs piling up — needs manual review/close of stale ones | ||
| - Obsidian vault Product docs absent from this repo clone (roadmap, key problems, design direction files not found — vault only has Changelog + Sessions) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.