diff --git a/job-tracker-ui/src/pages/LandingPage.tsx b/job-tracker-ui/src/pages/LandingPage.tsx index 64050f9..ce326c4 100644 --- a/job-tracker-ui/src/pages/LandingPage.tsx +++ b/job-tracker-ui/src/pages/LandingPage.tsx @@ -34,6 +34,12 @@ const STEPS: { n: number; title: string; body: string }[] = [ { n: 6, title: "Analyze", body: "See what's working — response rate, funnel and time-in-stage — and focus your effort." }, ]; +const PRICING: { name: string; price: string; cadence: string; highlight: boolean; features: string[]; cta: string }[] = [ + { name: "Free", price: "£0", cadence: "forever", highlight: false, cta: "Get started", features: ["Unlimited job tracking & pipeline", "One-click capture (bookmarklet + PWA)", "Deterministic CV↔job match score", "3 AI CV tailors / month"] }, + { name: "Pro", price: "£9", cadence: "/ month · billed monthly or yearly", highlight: true, cta: "Start Pro", features: ["Everything in Free", "Unlimited AI CV & cover-letter tailoring", "CV versions + factuality guardrail", "Gmail correspondence CRM", "Analytics drill-downs"] }, + { name: "Bring your own key", price: "£3", cadence: "/ month + your AI key", highlight: false, cta: "Get started", features: ["Everything in Pro", "Use your own Gemini / Groq key", "Unlimited AI at provider cost", "Privacy-first & self-host friendly"] }, +]; + export default function LandingPage() { const navigate = useNavigate(); const [checking, setChecking] = useState(true); @@ -147,6 +153,63 @@ export default function LandingPage() { + {/* Pricing */} + + + PRICING + Honest, simple pricing + + Billed monthly or yearly — never by the week. Cancel anytime. + + + + {PRICING.map((tier) => ( + + {tier.highlight && ( + + Most popular + + )} + {tier.name} + + {tier.price} + {tier.cadence} + + + {tier.features.map((f) => ( + + + {f} + + ))} + + + + ))} + + + Prices indicative — assistive, never autonomous: you always review and send. No auto-apply spam. + + + {/* CTA */}