// Remaining sections: how it works, features, verify, social proof, pricing, footer
function useIsMobile(bp){ bp = bp||768; const [m,setM]=React.useState(window.innerWidth<=bp); React.useEffect(()=>{const h=()=>setM(window.innerWidth<=bp);window.addEventListener("resize",h);return()=>window.removeEventListener("resize",h)},[bp]);return m;}
function HowItWorks({ audience }){
const steps = audience === "company" ? [
{ n:"01", t:"Post your role", p:"Define commission structure, ICP, and territory. Listings go live in under 10 minutes." },
{ n:"02", t:"Meet verified closers", p:"We surface reps who match your vertical, deal size, and cycle length — pre-screened, proof-of-performance attached." },
{ n:"03", t:"Interview & sign", p:"Chat in-platform, schedule interviews, and send offers. Pay a one-time listing fee. No recruiter cut, ever." },
] : [
{ n:"01", t:"Build a proof-of-work profile", p:"Upload closed-won deals, OTE history, verticals. We verify with your former managers — badge goes live in 48h." },
{ n:"02", t:"Get matched, not spammed", p:"Opportunities land in your inbox filtered by commission size, product, and cycle — not job title keywords." },
{ n:"03", t:"Close deals, get paid", p:"Sign direct with the company. Clozer takes 0% of your commission. We're paid by them, not you." },
];
return (
The flow
{audience === "company" ? <>Three steps. Closers in days, not quarters.> : <>Three steps. Paid engagements, not ghosted applications.>}
{audience === "company" ? "No retainers. No salaries. Reps only win when you do — aligned incentives from day one." : "Own your upside. No base-salary ceilings. Top performers take home 3–5× traditional AE comp."}
02
Zero recruiter markup.
We're not a recruiting agency. One flat listing fee, paid by the company. Reps keep 100% of commission.
03
Built-in verification.
Manager reference calls and closed-deal proof — every rep ships with a verified trust score.
{/* Wide cards */}
04 · Match quality
Matched by vertical, not job title.
Our matcher weights ICP overlap, deal-size fit, and sales-cycle pattern — not LinkedIn keywords.
{["SaaS & Dev tools","Fintech","Healthtech","B2B marketplaces","Cybersecurity"].map((v,i)=>(
{v}
))}
05 · In-platform signal
Real-time hiring signal.
See which companies are actively interviewing, which reps are taking meetings this week, and where the market is moving.
);
}
function Verification(){
const isMobile = useIsMobile();
return (
⎯ Verification layerApplies to every profile before listing
We verify every rep before a single interview.
LinkedIn profiles lie. Résumés inflate. Clozer runs a three-step verification so companies hire on actual performance — and reps who earn it stand out.
{[
"Employment history verified against LinkedIn and references",
"Manager reference calls on last 3 companies",
"Closed-won deal proof: contract value, cycle, close rate",
"Ongoing quota attainment tracking",
].map((l,i)=>(
✓{l}
))}
);
}
function VerificationCard({ isMobile }){
return (
);
}
function SocialProof(){
const isMobile = useIsMobile();
const quotes = [
{ q: "We replaced a retained search with two listings on Clozer. Hired both roles in 11 days.", a: "Sarah Chen", r: "VP Sales, Unframe" },
{ q: "The verification is the thing. I stopped getting ghosted by candidates who inflated their numbers.", a: "Marcus Boyd", r: "Founder, Drift Labs" },
{ q: "Closed $340k in commission in my first 6 months. No base, no problem.", a: "Priya Desai", r: "AE, ex-Ramp" },
];
const [i, setI] = React.useState(0);
React.useEffect(()=>{
const t = setInterval(()=>setI(x=>(x+1)%quotes.length), 6000);
return ()=>clearInterval(t);
},[]);
return (
What they're saying
"{quotes[i].q}"
{quotes[i].a}
{quotes[i].r}
{quotes.map((_,j)=>(
);
}
function Marquee(){
const items = ["Linear","Vercel","Ramp","Notion","Datadog","Amplitude","Retool","Brex","Deel","Rippling"];
const all = [...items, ...items, ...items];
return (