Payments and balance

JobEmber uses a deposit model, not a monthly subscription. You buy credit; each agent run decrements your balance; when it reaches zero, your plan auto-switches to Free until you top up again.

Why deposits, not monthly billing

Pay-as-you-go matches the actual usage pattern. Job seekers come in bursts (active search for 2 months, then nothing for 8). With a flat monthly fee, half your payments would be for months when you didn’t use the service. The deposit model means you pay only for runs you actually trigger.

A monthly subscription would also force you to pre-commit to a tier — and the right tier depends on whether you’re searching at high-stakes (executive roles, confidential career moves → High) or just polishing your existing CV (→ Low). Deposit + per-tier multiplier lets you switch tiers mid-search.

How a run gets charged

When you click Generate, Rewrite, AI-Detect, or Create Voice Profile, the agent runs and reports its actual provider cost (input tokens × $X/MTok + output tokens × $Y/MTok). JobEmber:

  1. Records the raw provider cost in your usage ledger (agent_usage_events.cost_cents).
  2. Multiplies it by your tier’s service margin (Low: 1.4×, Medium: 1.3×, High: 1.25×).
  3. Decrements your balance by the result.

So a $0.05 raw Claude Sonnet call on Medium charges your balance $0.065 (5 × 1.3 = 6.5¢, rounded up). On Low (no Anthropic for sensitive ops, but if you did use it) the same call would charge $0.07. On High, $0.0625.

What the service margin covers

The margin (25–40% depending on tier) covers:

  • Infrastructure: hosting, observability, sidecar runtime costs.
  • Taxes: EU VAT and equivalent, applied to all paid-tier revenue.
  • Support: response to questions, manual top-ups, refund processing.
  • Refund risk: pro-rated refunds eat into the margin pool, not the per-run revenue.
  • Provider price volatility: model providers raise prices periodically; the margin absorbs small changes without forcing immediate tier-price updates.
  • Service maintenance and development: ongoing engineering work — bug fixes, feature additions, security patches.

The margin is bundled into the per-run charge — your statement shows one figure per run, not two. The bundle is intentional: separating “model cost” from “service fee” creates anchor pricing that makes us look more expensive than competitors who bundle.

Topping up

Open Profile → Plan & Billing → Deposit. Pick a preset ($5 / $10 / $25 / $50) or a custom amount. Confirm.

Confirm redirects you to Stripe’s secure hosted checkout. When the payment succeeds, Stripe notifies JobEmber and the amount lands in your balance — you don’t re-enter card details in JobEmber, and we never see your full card number.

When the balance hits zero

If a run’s cost exceeds your remaining balance, JobEmber:

  • Clamps the balance at $0 (never negative, even on a slightly-over-budget run — the difference is absorbed).
  • Auto-switches your plan to Free (plan_tier = "free").
  • Marks your account as past_due so the Plan & Billing UI can show a “top up to restore” banner.

Your in-flight run completes either way. The next run after the downgrade uses Free-tier behavior (template-verbatim CV/CL, blocked voice/rewrite). Top up your balance and pick a paid tier again to restore.

The downgrade is intentional UX, not punishment. Most users hit zero balance unexpectedly and would rather a sudden tier change than a payment failure mid-generation. If you’d prefer a different policy (e.g., “block the next run instead of downgrading”), let us know — the behavior is configurable.

Refunds

Refunds are governed by the 14-day rule + 4-lifetime cap detailed in Account deletion and refund. The button lives in Plan & Billing → Danger zone. Eligibility is computed server-side; the button is disabled with an explanation when you’re not eligible.

Refund amount is pro-rated by credits used: if you bought $50 of credit, used $10 of it, and ask for a refund on day 5, the refund is approximately $40 (50 × (1 − 10/50)). The exact formula and the 14-day clock are documented in that help doc.

Statistics

Settings → Statistics shows your per-agent run counts, token totals, and per-run costs. Use it to project how long your current balance will last at your current usage rate.

The “Estimated runs left” figure on Plan & Billing is a cheap heuristic — it divides your balance by a fixed per-tier per-CV cost. Real costs vary by document length and model output, so the figure is approximate. Statistics is the source of truth for what you’ve actually spent.