Plans namespace

Reference for public board plan information across every purpose, contact-led pricing, and the deprecated sales-led helper.

Read public plan configuration used by board monetization surfaces.

board.plans.list() returns every public catalogue product: job posting, talent access, membership, job seeker, employer service, and job seeker service purposes. Contact-led employer cards are the employer_service plans whose pricingMode is contact; board.plans.salesLed() still returns them but is deprecated. Candidate paywall gating uses board.paywall for lock-screen and preview configuration.

board.plans.list()

Returns public plans, optionally filtered by purpose.

A Plan identifies its purpose, commercial kind, optional billing interval, recommendation and display order, invoice behavior, price, and allowance summary. Talent-access plans can also contain talent allowances.

pricingMode says how a plan is bought. A priced plan carries price and goes through checkout or invoice. A contact plan is quote-only: render its priceText and CTA fields (ctaText, ctaDestination) instead of a price, and send the visitor to the returned destination.

Membership plans (purpose: 'membership') are what a company joins. Their id is the planId that public company objects carry in membership, so a membership pricing page and a member badge can share the same catalogue read. When the board requires membership to post, board.context().posting.requiresMembership is true and gated posting attempts fail with membership_required.

board.plans.salesLed() (deprecated)

Deprecated since 4.20.0 and kept as a compatibility read. Call board.plans.list({ purpose: 'employer_service' }) and keep the rows whose pricingMode is contact instead.

Rendering rules

  • Group plans by purpose; do not mix job-posting and talent-access allowances into one comparison without labels.
  • Branch on pricingMode before reading price; a contact plan has none.
  • Respect displayOrder and isRecommended rather than reproducing the dashboard configuration.
  • Branch on invoiceOnly and publishTiming; not every plan creates an immediate online checkout.
  • For sales-led / contact cards, validate the CTA destination before navigation.

For the anonymous submission wizard’s plan shape, use board.jobPosting.plans. For candidate access, use Paywall.