// FIELD NOTE
Why we capped Pro at $5 and refused to add quotas
· 6 min read · Aayush Baniya
We're a job-search tool. Our users are people whose income just disappeared, or is about to. The last thing I want them looking at, in week three, is a paywall that says “you've used 47 of your 50 monthly tailorings.”
The math of metered pricing
Every job-search SaaS in our reference set runs a quota model. LazyApply sells “750 applications per month.” Sonara sells tiers by “applications submitted.” Teal sells by saved jobs and tailored résumés. The reasons are obvious: it caps cost exposure when a power user blows through your inference budget, and it makes upsell easy.
The reasons it's wrong are quieter. Job search is bursty — you do nothing for two weeks because of a family emergency, then run 80 applications in a Tuesday because a layoff hit. A monthly quota fits neither rhythm. And the conversion event the quota forces — “upgrade or stop” — happens at the worst possible psychological moment, because the user is already burnt out from rejection.
What $5 has to defend against
Flat $5 unlimited only works if four things hold:
- Cheap inference, by default.We default to Gemini 2.5 Flash Lite and GPT-4o Mini. Both deliver tailoring quality close to the frontier models at <10% of the cost. We have a hard whitelist (
LLM_TIER_WHITELIST) that refuses to start the API if a more expensive model is configured without an explicit override flag. - Caching where it counts.Anthropic prompt caching is wired into our tailoring path; Vertex context caching keeps a per-user résumé cache so we don't re-tokenise it across 30 tailorings a day. Cache hit ratios on a typical Pro user run 60-80%.
- Concurrency limits.A user can't fire 200 parallel tailorings; we serialise per-user and rate-limit. This costs us nothing and prevents the worst-case bills.
- Account aging. Most abuse is signups in the first 24 hours. Conservative limits in week one flatten that curve without affecting real users, who barely notice them.
The result: our blended cost per Pro user is well under a dollar a month, even for power users firing 30 tailorings a day. Five dollars works.
What we give up
Two things. First, we don't have an obvious upsell path. There's nothing to upgrade to. That's a feature, not a bug — pricing pages with five tiers and a comparison matrix are a tax on the user's decision time. We have one button: $5/month. Decide in three seconds.
Second, we forfeit the high-ARPU power users who would happily pay $30 for unlimited everything. Some competitors will outprice us at the top. That's fine — we'd rather have ten thousand users at $5 than a thousand at $50. The bigger pool is harder for a competitor to dislodge, and it's where the product gets the most signal for improvement.
Refunds are part of the price
The auto-apply category has a chargeback rate roughly 5x the SaaS norm — between 1.5% and 2.5%. Most of those chargebacks come from users who can't figure out how to cancel, or who tried the product, didn't click with it, and used their bank as a complaint channel.
We ship a one-click refund button inside the app. No support ticket, no screening questions. Click, full refund, subscription cancelled. The cost of refunding a fraction of users cleanly is a hundred times lower than the cost of one chargeback — Stripe charges $15 in dispute fees alone, and chargeback rates above 1% threaten your processor relationship.
If you're building a similar product
The pricing question gets framed as “what will the market bear?” That's the wrong question. Ask instead: “at what price do my users tell their friends about me?” For a product whose users share the same Slack channels and Reddit threads, word-of-mouth is the only acquisition channel that compounds. Five dollars is a recommendation. Forty-nine dollars is a complaint.
— Aayush
// READY?
Apply faster. Review everything.
Open Applier auto-fills Workday, Greenhouse, Lever, and Ashby with AI-tailored resumes. Every application is reviewed before it sends.