Plans namespace

Reference for public board plan information and sales-led plan details.

Read public plan configuration used by board monetization surfaces.

These plans describe employer-facing job-posting and talent-access products. Candidate-access offers live under board.paywall.

board.plans.list()

ts
list(query?: {
purpose?: 'job_posting' | 'talent_access';
}, options?: FetchOptions): Promise<ListEnvelope<Plan>>

Returns public plans, optionally filtered by purpose.

ts
const { data: postingPlans } = await board.plans.list({
purpose: 'job_posting',
});
const ordered = postingPlans.toSorted(
(left, right) => left.displayOrder - right.displayOrder,
);

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.

board.plans.salesLed()

ts
salesLed(options?: FetchOptions): Promise<ListEnvelope<SalesLedPlan>>

Returns custom “contact us” tiers with a CTA destination instead of a programmatic checkout price.

ts
const { data: salesLedPlans } = await board.plans.salesLed();
for (const plan of salesLedPlans) {
console.log(plan.name, plan.ctaDestination);
}

Rendering rules

  • Group normal plans by purpose; do not mix job-posting and talent-access allowances into one comparison without labels.
  • Respect displayOrder and isRecommended rather than reproducing the dashboard configuration.
  • Branch on invoiceOnly and publishTiming; not every plan creates an immediate online checkout.
  • Validate a sales-led CTA before navigation if it is externally configurable.

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