---
title: "Create Pricing Plans"
label: "Pricing plans"
description: "Set up job posting prices and create different pricing tiers for employers."
publishedAt: 2025-12-31
updatedAt: 2026-10-21
order: 2
status: "published"
faqs:
  - question: Can employers submit jobs without Stripe Checkout while I invoice them manually?
    answer: "Yes. Create a temporary Free job-posting plan in Settings → Products and handle invoicing and payment outside Cavuno. Optionally require approval for free submissions in Settings → Features, then publish jobs manually after payment. Cavuno does not track external payments, and paid plans have no payment-bypass toggle. Keep existing paid plans private and make them public again when you return to Stripe Checkout. A free plan cannot be converted into a paid plan. See the Invoice billing guide for the full external-invoicing workflow."
  - question: How much should I charge for job postings?
    answer: "Research comparable boards, interview employers, and price from the audience and results you can demonstrate. Cavuno does not prescribe a market price. Start with a clear hypothesis, then revise it from conversion, repeat purchase, and employer feedback."
  - question: Can I change pricing after employers have purchased?
    answer: "Yes. Changing a plan's price only affects future purchases. Existing subscriptions continue at their original rate until renewal."
  - question: What currencies are supported?
    answer: "Cavuno supports all currencies available through your Stripe account. Zero-decimal currencies like JPY and KRW require whole numbers."
  - question: How do I edit or delete a product on Settings → Products?
    answer: "Go to Settings → Products. Click the product name or row to open the editor, or open the three-dot menu on the right of that row and choose Edit (it is the first item). There is no delete. Archive hides the product from new purchases; anyone who already bought it keeps it until the current period ends. Filter the table by Archived and choose Restore on the same menu if you archived by mistake."
  - question: The product row is not clickable and the three-dot menu has no Edit option. How do I change Employer Membership?
    answer: "Employer membership products live in the same Settings → Products table as job posting plans. Click the product name, or open the three-dot menu on the far right of the row and choose Edit. Archive (not delete) if you want to stop selling it. That is different from revoking one company's membership under Companies → Manage membership."
---

Pricing plans define what employers pay to post jobs on your board. You need a [connected Stripe account](/docs/monetization/connect-stripe) before creating paid plans.

## Prerequisites

Complete Stripe onboarding for paid plans. Decide what the employer receives (active-job slots, duration, featured slots, and billing interval) before entering a price. Prepare a 100% discount code for the plan so you can test checkout without being charged.

## Start charging employers

1. Go to **Settings** → **Products** and connect Stripe
2. Click **Create product** → **Job posting**, choose the **Type**, enter the **Amount**, and set **Post duration (days)**
3. Edit the plan, turn on **Visibility** → **List publicly**, and save again
4. [Verify its checkout and entitlements](#verify-the-plan) with a 100% discount code before announcing it to employers
5. Go to **Settings** → **Features** and leave **Who can post jobs** set to **Anyone** for public posting without signup. The **Post a job** page is live once a plan is listed publicly

Choose **Members only** in the last step only when employers should need an account and active [membership](/docs/monetization/memberships) before posting.

## Open the products table

1. Go to **Settings** → **Products**
2. Every product lives in one table: job posting, candidate database access, job seeker plans, employer memberships, and employer or job seeker services
3. The **Type** column is what the product entitles, not a page section

Filter by type or status (Active, Archived). Search by name. Private products stay off the public pricing page and out of employer checkout, but remain usable for operator assignments.

This guide covers **Job posting** products. For memberships, see [memberships](/docs/monetization/memberships). For candidate access, see the [job seeker paywall](/docs/monetization/job-seeker-paywall). For contact-led or sold services with no posting entitlements, see [service products](/docs/monetization/service-products).

## Create a product

1. Click **Create product** and choose **Job posting**
2. Fill in the plan details:
   - **Name:** what employers see (e.g. "Standard Job Post"), max 100 characters
   - **Type:** Free, One-time, Bundle, or Subscription
   - **Currency:** any currency your Stripe account supports
   - **Amount:** the amount to charge (minimum 1 for paid plans)
   - **Description:** what's included, max 500 characters
   - **Billing interval:** Monthly or Yearly (subscriptions only)
3. Configure plan features (see below)
4. Under **Visibility**, turn on **List publicly** when the product is ready to appear on your public pricing page
5. Save the plan

**Create product** is a dropdown of types. Choose **Candidate database access**, **Job seeker plan**, **Employer membership**, **Employer service**, or **Job seeker service** when that is the product you want; each type opens its own create form.

## Plan types

**Free:** lets employers post without payment. Useful for launch promotions or community boards. You can also use a temporary free plan to [accept submissions while invoicing outside Cavuno](/docs/monetization/invoice-billing#handle-payments-outside-cavuno).

**One-time:** a flat fee for a single job posting. Each purchase gives the employer one active job slot.

**Bundle:** a discounted package of one-time posts. Set how many posts the bundle includes. Bundles work well for companies hiring for several roles at once.

**Subscription:** recurring monthly or yearly billing for a set number of jobs live at once, or for unlimited posting. When a job expires or closes, its slot frees up for a new posting. Subscriptions suit staffing agencies and fast-growing companies with ongoing hiring needs.

One-time and bundle plans can be set to [invoice billing](/docs/monetization/invoice-billing), so employers receive an emailed Stripe invoice on net terms instead of paying by card at checkout.

## Plan features

Bundle and subscription plans state their capacity as one sentence, the same control [memberships](/docs/monetization/memberships) use: how many posts the plan sells, and how many of those can be featured.

- **Job posts:** a number and its unit. The unit follows the plan kind. A bundle sells a number of one-time posts, shown as **credits**. Publishing a job spends a credit, and the credit does not come back when the job expires, closes, or is unpublished. Credits from repeat purchases of the same bundle add up. A subscription sells a number of jobs live at once, shown as **slots**, or **unlimited** posts. A slot frees up when the job expires or closes.
- **Featured:** "of which **none**, **some**, or **all** can be featured". Pick a number to feature that many of the plan's posts at a time, or **all** to feature every post the plan sells. Featured posts get [featured placement](/docs/monetization/featured-jobs). The number cannot exceed the plan's job posts; the form refuses to save if it does.
- **Post duration (days):** how many days each job stays active before expiring. Default is 30. Common values are 30, 45, or 60 days.
- **Feature selection:** shown once the plan includes featured jobs. **Automatic** features each new post while the plan still has featured capacity; **Manual** waits for the employer to choose which jobs to feature. Default is automatic.

The help text under the control reads the plan back, for example "5 jobs live at once. 2 of them can be featured at a time." or "10 one-time posts. All of them are featured."

Free and one-time plans cover a single post, so they show a **Featured job** checkbox instead of the sentence.

## Manage plans

Every product in the table uses the same actions, including **Employer membership**.

- **Edit:** click the product name or anywhere on the row. You can also open the three-dot menu on the right of the row and choose **Edit** (the first item).
- **Archive:** there is no delete. Open the three-dot menu and choose **Archive**. That stops new purchases. Employers or members who already bought it keep it until the current period ends. Filter the table by **Archived** and choose **Restore** on the same menu if you need it back.
- **Reorder:** **Move up** and **Move down** in the three-dot menu.

Use **Visibility** → **List publicly** to control whether a plan appears on public pages. A private plan remains active for existing subscribers and for operator assignment, and employers keep using the credits they already bought from it.

## Pricing guidance

The right price depends on employer demand, audience relevance, measured results, included service, and alternatives in your niche. Document a pricing hypothesis, test it with real employers, and review conversion and repeat purchase after enough comparable sales. Use example prices only as your own test inputs, not as an industry benchmark.

## Verify the plan

Cavuno has no test mode: every checkout runs on your live connected Stripe account, and employers can only buy plans that are listed publicly. To test without being charged:

1. Create a [coupon](/docs/monetization/discount-codes) for 100% off, restricted to the plans you are testing, with **Duration** set to **Once**
2. Add a promotion code to it with **Limit redemptions** set to the number of test purchases you plan to make
3. List the plan publicly, open the public employer posting flow, and complete checkout with the code
4. Confirm the order, job-slot limit, duration, featured behavior, and subscription interval match the values you saved. For a bundle, post the remaining jobs and confirm they draw from the same order
5. For a subscription, cancel the test subscription in Stripe afterwards; a **Once** coupon only covers the first period, so the next renewal would charge in full
6. Archive the promotion code, and set the plan back to private if you are not launching it yet

Use a partial discount instead when you also need to check tax, because a fully discounted order has nothing to tax. See [tax collection](/docs/monetization/tax-collection).

## If a plan is missing or cannot be saved

Confirm Stripe onboarding is complete, every required field has a valid value, and the featured number does not exceed the plan's job posts. A private plan is intentionally absent from the public page. If a plan has active subscribers, archive it rather than expecting a delete control.

## Next steps

After the test passes, keep the plan listed publicly (or list it again if you set it back to private). The **Post a job** page stays live while a plan is listed publicly. Under **Settings** → **Features**, leave **Who can post jobs** set to **Anyone** for ordinary public posting without signup. Choose **Members only** only when an active [membership](/docs/monetization/memberships) should be required. Read [Posting a job](/docs/your-job-board/posting-a-job) to verify the full employer journey. Beyond testing, add a [discount code](/docs/monetization/discount-codes) only when a specific campaign needs one.
