diff --git a/backend/main.py b/backend/main.py index b34a7fc..1f1110b 100644 --- a/backend/main.py +++ b/backend/main.py @@ -19,10 +19,10 @@ router = APIRouter(prefix="/autojobs/api") # --- Plans & Pricing --- # Private User Plans (job seekers) PRIVATE_PLANS = { - "free": {"name": "Free", "applications": 5, "ai_customize": 5, "price": 0}, - "starter": {"name": "Starter", "applications": 50, "ai_customize": 50, "price": 9}, - "pro": {"name": "Pro", "applications": 100, "ai_customize": 100, "price": 39}, - "ultra": {"name": "Ultra", "applications": 200, "ai_customize": 200, "price": 69}, + "free": {"name": "Free", "applications": 5, "ai_customize": 5, "cover_letters": 5, "price": 0}, + "pro": {"name": "Pro", "applications": 100, "ai_customize": 100, "cover_letters": 100, "price": 39}, + "ultra": {"name": "Ultra", "applications": 200, "ai_customize": 200, "cover_letters": 200, "price": 69}, + "unlimited": {"name": "Unlimited", "applications": 99999, "ai_customize": 99999, "cover_letters": 99999, "price": 99}, } # Alias for backwards compatibility diff --git a/frontend/app/page.tsx b/frontend/app/page.tsx index df0d525..47c9252 100644 --- a/frontend/app/page.tsx +++ b/frontend/app/page.tsx @@ -1,3 +1,5 @@ +"use client" +import { useState } from "react" import Link from "next/link" const privatePlans = [ @@ -6,27 +8,20 @@ const privatePlans = [ price: "$0", period: "forever", apps: "5", - features: ["5 job applications/month", "5 AI resume customizations", "Basic application tracker"], + coverLetters: "5", + features: ["5 AI job applications/month", "5 AI resume customizations", "5 AI cover letters/month", "Application tracker"], cta: "Get Started", ctaStyle: "bg-white/10 hover:bg-white/20" }, - { - name: "Starter", - price: "$9", - period: "/mo", - apps: "50", - features: ["50 job applications/month", "50 AI resume customizations", "Add your own API keys", "Email support"], - cta: "Start Now", - ctaStyle: "bg-blue-500 hover:bg-blue-600" - }, { name: "Pro", price: "$39", period: "/mo", apps: "100", + coverLetters: "100", badge: "Most Popular", highlight: true, - features: ["100 job applications/month", "100 AI resume customizations", "Add your own API keys", "LinkedIn resume import", "Priority support"], + features: ["100 AI job applications/month", "100 AI resume customizations", "100 AI cover letters/month", "LinkedIn resume import", "Add your own API keys", "Priority support"], cta: "Go Pro", ctaStyle: "bg-blue-500 hover:bg-blue-600" }, @@ -35,10 +30,23 @@ const privatePlans = [ price: "$69", period: "/mo", apps: "200", - features: ["200 job applications/month", "200 AI resume customizations", "Add your own API keys", "LinkedIn resume import", "SMS notifications"], + coverLetters: "200", + features: ["200 AI job applications/month", "200 AI resume customizations", "200 AI cover letters/month", "LinkedIn resume import", "Add your own API keys", "SMS notifications"], cta: "Go Ultra", ctaStyle: "bg-slate-600 hover:bg-slate-500" }, + { + name: "Unlimited", + price: "$99", + period: "/mo", + apps: "Unlimited", + coverLetters: "Unlimited", + badge: "Best Value", + highlight: false, + features: ["Unlimited AI job applications", "Unlimited AI resume customizations", "Unlimited AI cover letters", "LinkedIn resume import", "Add your own API keys", "24/7 priority support"], + cta: "Go Unlimited", + ctaStyle: "bg-green-600 hover:bg-green-500" + }, ] const agencyPlans = [ @@ -48,9 +56,8 @@ const agencyPlans = [ period: "/mo", submissions: "1,000", clients: "10", - badge: "", highlight: false, - features: ["1,000 submissions/month", "10 client profiles", "White-label dashboard", "API access"], + features: ["1,000 job submissions/month", "Up to 10 client profiles", "AI resume tailoring", "White-label dashboard", "API access"], cta: "Start Agency", ctaStyle: "bg-purple-600 hover:bg-purple-500" }, @@ -60,10 +67,10 @@ const agencyPlans = [ period: "/mo", submissions: "3,000", clients: "50", - badge: "", + badge: "Most Popular", highlight: true, - features: ["3,000 submissions/month", "50 client profiles", "White-label dashboard", "Priority support"], - cta: "Grow", + features: ["3,000 job submissions/month", "Up to 50 client profiles", "AI resume tailoring", "White-label dashboard", "Priority support"], + cta: "Grow Agency", ctaStyle: "bg-purple-600 hover:bg-purple-500" }, { @@ -72,10 +79,9 @@ const agencyPlans = [ period: "/mo", submissions: "5,000", clients: "150", - badge: "", highlight: false, - features: ["5,000 submissions/month", "150 client profiles", "White-label dashboard", "Dedicated account manager"], - cta: "Scale", + features: ["5,000 job submissions/month", "Up to 150 client profiles", "AI resume tailoring", "White-label dashboard", "Dedicated account manager"], + cta: "Scale Up", ctaStyle: "bg-slate-600 hover:bg-slate-500" }, { @@ -84,15 +90,60 @@ const agencyPlans = [ period: "/mo", submissions: "10,000", clients: "500", - badge: "", + badge: "Max Cap", highlight: false, - features: ["10,000 submissions/month", "500 client profiles", "White-label dashboard", "Dedicated account manager", "Custom integrations"], - cta: "Enterprise", + features: ["10,000 job submissions/month", "Up to 500 client profiles", "AI resume tailoring", "White-label dashboard", "Dedicated account manager", "Custom integrations"], + cta: "Get Enterprise", ctaStyle: "bg-slate-600 hover:bg-slate-500" }, ] +function PlanCard({ plan, type, color }: { plan: any, type: string, color: string }) { + const highlightBg = type === "private" + ? "bg-gradient-to-br from-blue-600/30 to-purple-600/30 border-blue-500/50" + : "bg-gradient-to-br from-purple-600/30 to-pink-600/30 border-purple-500/50" + + const checkColor = type === "private" ? "text-green-400" : "text-purple-400" + const badgeColor = type === "private" ? "bg-blue-500" : "bg-purple-500" + + return ( +
- Upload your resume once. Set your preferences. AI finds matching jobs, rewrites your resume for each one, and applies — while you sleep. +
+ Upload your resume. Connect LinkedIn. AI finds matching jobs, rewrites your resume + cover letter for each one, and applies automatically.
-{item.desc}
+Every plan includes AI resume tailoring + AI cover letter generation
+Manage multiple clients. Hard caps — no unlimited.
+All plans have hard submission caps. No unlimited access for agencies.
+{item.desc}
+ { icon: "🎯", title: "AI Resume Tailoring", desc: "Every resume rewritten to match job description keywords" }, + { icon: "✉️", title: "AI Cover Letters", desc: "Personalized cover letter for each company" }, + { icon: "🔍", title: "Multi-Source Search", desc: "Jooble, JSearch aggregated and deduplicated" }, + { icon: "📊", title: "Application Tracker", desc: "Dashboard tracks status from applied to offer" }, + { icon: "🔑", title: "Your Own API Keys", desc: "You control your data and spending" }, + { icon: "💼", title: "LinkedIn Import", desc: "Import your saved LinkedIn resumes automatically" }, + ].map((f) => ( +{f.desc}
Choose your monthly application limit
- -Manage multiple clients. Each plan has a hard submission cap — no unlimited.
- -