[NightlyBuildAgent] Trade-specific scoring badges + pricing copy polish - #474
[NightlyBuildAgent] Trade-specific scoring badges + pricing copy polish#474manazoid4 wants to merge 3 commits into
Conversation
- Add TRADE_SPECIFIC_SIGNALS map (electrical/plumbing/roofing/building/ painting/hvac/landscaping/carpentry) so lead card badges show relevant keywords (EV CHARGER, BOILER, FLAT ROOF, etc.) when backend reasons are generic — electrician scans see EV charger / rewire badges, plumber scans see boiler / bathroom badges - Pass activeTrade prop through LeadResultCard to parseTradeReasons - PricingPage: swap vague "FOUNDER-ASSISTED PILOT" label for "£39/MO — NO SHARED AUCTION, NO FIVE-TRADE BLAST" and name Checkatrade / MyBuilder explicitly in hero copy - PricingPage: change confusing "START AFTER COVERAGE CHECK →" CTA to "START PILOT — £39/MO →" with "No credit card required to browse. Cancel any month." underneath - All TypeScript clean, build passes
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
✅ Meticulous spotted 0 visual differences across 169 screens tested: view results. Meticulous evaluated ~4 hours of user flows against your PR. Expected differences? Click here. Last updated for commit |
Pin nanoid to >=3.3.18 (GHSA-2v37-7h3g-55p8) and postcss to >=8.5.23 (GHSA-fxqj-rqcc-2cmp) via package.json overrides. npm audit now reports 0 vulnerabilities. Build confirmed green.
Problem
Lead card badges on the find-jobs page showed "Verified signal" as a generic fallback for all trades, regardless of what the lead title actually described. An electrician scanning for electrical jobs would see the same badge as a plumber — no trade-specific context.
Pricing page had two friction points: (1) the featured plan CTA said "START AFTER COVERAGE CHECK →" which sounds like a gatekeeping process, reducing click-through; (2) the hero micro-label said "FOUNDER-ASSISTED PILOT" which is meaningless to a tradesman scanning quickly. Competitors (Checkatrade, MyBuilder) were not named.
User impact
Scope
Changed:
src/pages/FindJobsPage.tsx— AddedTRADE_SPECIFIC_SIGNALSmap (8 trades × ~10 keywords each). UpdatedparseTradeReasonsto acceptactiveTradeandleadTitleparams and inject trade-specific fallback badges when backend reasons are generic. AddedactiveTradeprop toLeadResultCardand wired it through both call sites.src/pages/PricingPage.tsx— Updated hero micro-label, hero body copy (names Checkatrade/MyBuilder), CTA label, free-scan CTA label, and featured plan supporting text.Left out:
Verification
npm run lint(TypeScript clean — no errors)npm run build(passes, all routes generated)lead.titleonly triggers when backend provides no parsed reasons — existing leads with specific backend reasons are unaffectedRemaining risk
Trade-specific badge keywords are matched against lead titles — if a title is very short or uses abbreviations, no keywords may match and the badge falls back to "Verified signal" (same as before). No regression.
Generated by Claude Code