Memberships

Sell or assign company memberships with discounts, posting capacity, featured jobs, and optional members-only posting.

Give a company a membership so member discounts, included posts, and talent directory access apply without handing out coupon codes. Associations, chambers, unions, and similar groups use this when member employers should pay a different rate than the public.

You can assign a membership from the company row, or sell a public membership product so employers join on the board (card checkout or invoice, depending on the product).

To make a reusable membership level, go to SettingsProducts, click Create product, and choose Employer membership. Set the posting capacity (see below), the member discount, talent access, and how it is sold (assign-only, public checkout, or invoice). You can also set benefits manually for one company without creating a level.

When to use memberships

Use memberships when membership is the reason a company gets a better rate or included posts. Typical cases:

  • A professional association that posts at a member rate and a public rate
  • A chamber or union that includes a yearly allowance of job posts in dues
  • A community that wants posting itself to be a member benefit

Use discount codes when the deal is a campaign, a one-off courtesy, or a code you want to share in a newsletter. Memberships do not replace coupons.

Use service products when the offer grants no posting or access entitlements (for example a retainer sold with a contact CTA).

Require membership to post

By default, anyone can post (they still pay if you charge for posts). To restrict posting to companies with an active membership:

  1. Go to Settings → Features
  2. Find Who can post jobs
  3. Choose Members only (the default is Anyone)

With Members only, an employer without an active membership cannot post. Headless boards receive a membership_required error instead of baked-in copy.

This setting gates posting. It does not hide jobs from job seekers, and it does not require membership to view or apply.

What visitors see on the posting page

The posting page stays public on a members-only board. It renders a join gate instead of the form, and what it shows depends on who is looking:

Not signed in. A card headed with your board's name, saying that posting there is for members, with a Become a member button to your employer pricing page and a Sign in button that returns to the posting page after sign-in.

Signed in, no active membership. The same card, with a heading that acknowledges the account and a single Become a member button.

Signed in with an active membership. No gate. The visitor is sent straight to the posting form for their company.

When your board has a contact email, both card states also show a line inviting the visitor to email you if they need access. Keep that email set on sales-led boards, where employers join by talking to you rather than through self-serve checkout.

Sell a membership on the board

  1. Go to SettingsProducts
  2. Click Create productEmployer membership
  3. Set benefits (posting capacity and featured jobs, discount, talent access)
  4. Add a price for self-serve checkout, or configure invoice terms when you sell by invoice
  5. Make the product public so it appears on employer pricing

Signed-in employers with an approved company can join from the public pricing page. After checkout or a paid invoice, the company receives the membership benefits automatically.

Keep a membership private when you only assign it from Companies → Manage membership.

Assign a membership to a company

  1. Open Companies
  2. Open the row menu on the company
  3. Choose Manage membership

You can set benefits in two ways:

Assign a membership level: choose a membership product you created with Create productEmployer membership. The company gets that product's benefits.

Set benefits manually: posting capacity, member discount, and talent access for this company only, using the same controls as a membership product.

Benefits are copied when you assign. Editing the level later does not change existing memberships.

Both kinds of membership can include:

  • An optional expiry date
  • An optional note (why the membership exists)

A company can hold more than one membership. Included posts add together, and the highest member discount is the one applied at checkout.

To take benefits away, open Manage membership and Revoke the membership. The company loses the remaining included posts and discount from that membership. Memberships are recorded in the audit log when assigned, revoked, or expired.

Member discounts at checkout

When a company has an active membership with a member discount, that percent applies automatically at checkout. Employers do not enter a code.

The discount shows as a line at checkout. The discounted price is what Stripe charges, on card checkout and invoice checkout alike.

How member prices look on plan cards

A member does not have to reach checkout to see their rate. When a member discount lowers a plan's price, the plan card shows the member rate as the headline number, the public list price struck through beside it, and a Member price caption underneath.

A few details worth knowing:

  • Cards only take this treatment when the discount actually changes the number. A percent small enough to round back to the list price shows one price, not two identical ones
  • A 100% member discount reads as zero in the plan's currency, with no billing cadence, because nothing is charged
  • Prices and the caption follow the board's language

Visitors who are not signed in see public list prices. The member rate appears once the board knows who is posting, which is the posting form a signed-in member reaches from their company.

Posting capacity

A membership's posting benefit is one sentence: how many posts, in which unit, and how many of those can be featured. The control reads it back under the fields, for example "10 one-time posts. 3 of them can be featured." or "5 jobs live at once. All of them can be featured."

  • Credits: a number of posts per billing period. A credit is spent when the member posts a job and does not come back when the job closes. Credits reset at the membership's anniversary. A membership you assigned by hand or granted for free has no billing period, so its credits do not reset.
  • Slots: a number of jobs live at once. A slot frees up when the job closes, and never resets. Choose slots for a "five open roles at a time" benefit.
  • Unlimited: no number.

Featured jobs are a share of those posts: none, a number, or all. The unit follows the posts, so credits posts grant featured credits and slots posts grant featured slots. Only unlimited posts ask whether a featured number applies at a time or per period. A membership cannot include more featured jobs than posts; the form refuses to save that.

Bundle and subscription job posting plans use the same control, so every product that sells posts is configured the same way.

Included member posts

When a company's membership includes posts, the posting flow offers Member post first, preselected, at $0, while the company still has a credit to spend and a free slot to fill. The employer's card counts the allowance down, for example "9 of 10 member posts left", and says "featured" when the membership features that post.

After the allowance is used, or every included slot is occupied, paid options apply. If the membership also includes a member discount, that discount still applies to the paid purchase. A full slot cap never blocks a member from posting; it only withdraws the free option.

Unused included posts from a membership stop applying when that membership expires or is revoked.

Membership that includes talent access

A membership can include talent directory access, so membership covers resume and talent access without a separate talent access purchase. Turn this on when you set benefits manually, or assign a membership level whose features already include it.

Show membership on company profiles

Membership is also public identity. Every public company object carries the membership the company holds, as the membership plan's id and its current display name, or nothing when the company holds none you have published. Two things this is for:

  • A badge on the company. Show "Member" or the level's own name ("Gold member", "Chamber member") on company cards, company profiles, and the job detail page, so job seekers can see which employers have joined
  • A member roster. List every company on one membership level, for a members directory page or a logo wall

Companies can be filtered by membership level, and the filter is exact: ask for one membership level and the members become the whole result set, so counts and paging describe the roster rather than the full company list. You can combine it with a market filter to get the members in one sector.

What appears in public, and what does not

Only the plan's id and name are public. Included posts, the discount percent, talent access, expiry dates, notes, and billing state are not on the public wire. They stay on your dashboard and on the employer's own authenticated screens.

Whether a membership is named in public follows one rule you already control: the membership product has to be public.

  • A membership on a public product is named. This is the same switch that puts the product on employer pricing
  • A membership on a private, assign-only product reads as no membership at all. The level's name is yours to use internally, and it never leaks through a company profile
  • Benefits you set manually on a single company name no membership, because there is no level to name. Create a membership product when you want the badge
  • Only memberships are named. Job post packs, talent access, and services never appear here, so buying a product is not the same as joining

A membership that expires or is revoked stops being named. Expiries are processed daily, so a lapsed membership can stay badged for up to a day after its expiry date.

How memberships interact with discount codes and subscriptions

Memberships and discount codes work together. The member discount is automatic for a company with a membership. A promotion code is still entered at checkout when you are running a campaign.

Employer subscriptions remain a way for any employer to buy recurring posting capacity at the public rate. A membership is the standing benefit tied to the company, whether you assigned it or they purchased it.

Headless boards

Headless and SDK boards get the same behavior through the API. The billing-options endpoint returns a structured capability object with canPost, reason, discountPercent, freePostsRemaining, and memberPlanName. Gated posting attempts return the typed error code membership_required.

Your application owns the copy. Render those fields and codes in any language. Cavuno does not ship gate prose for templates to display.

Three additional fields cover the gate and the badge, and all three are readable without signing anyone in:

  • posting.requiresMembership on the board context says whether posting is members-only, so a template can render its own join gate in place of the post form
  • membership on every public company object is { planId, planName } or null. planId is the stable key, because you can rename a level at any time. Join it against the board's plans when you want the level's own description or price
  • membershipPlanId on the companies list scopes the list to one membership roster

See companies in the SDK for the read patterns, and job posting and checkout for the posting flow.

Next steps

Create a membership product from SettingsProducts (Create productEmployer membership), publish it for self-serve join or assign it to a test company from Companies → Manage membership. If you also run promotions, keep discount codes for those campaigns.

Frequently asked questions