Candidate Experience Guide

For Candidates

What to expect

We want every candidate to have a great experience, whether or not they get an offer. Here's how to prepare and what we promise in return.

What to Prepare

Review the job description and think about how your experience maps to the requirements

Prepare specific examples of past work that demonstrate impact and problem-solving

Research our product and come with thoughtful questions about the team and roadmap

Be ready to discuss your career goals and what you're looking for in your next role

Our Commitment to You

You'll hear back from us within 5 business days of every interview stage

Every interviewer has been trained on structured, bias-aware evaluation methods

You'll receive detailed, actionable feedback regardless of the outcome

We respect your time — no process will exceed 3 weeks from first call to decision

Questions? Reach out to [email protected]

About this block

Candidate Experience GuidePRO

Two-column guide with preparation tips and company commitments to candidates. Sets expectations for the hiring process with contact info.

Careers39: Candidate Experience Guide

A centered header (optional badge, <strong>-aware heading, and description) above a two-column card grid where the left card lists preparation tips each prefixed by a CheckCircle icon and the right card lists company commitments each prefixed by a Shield icon, closed by an optional "Questions?" line linking a mailto: contact email.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Upgrade Now

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/careers39?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/careers39?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/careers39.tsx, plus the badge shadcn/ui primitive it uses for the section eyebrow.

Quick start

The installed file exports careers39Demo alongside the block: the exact props behind the preview above. Spread it to get a working candidate-experience section in one line.

tsx
import { Careers39, careers39Demo } from "@/components/beste/block/careers39";

export default function CareersPage() {
  return <Careers39 {...careers39Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Careers39 } from "@/components/beste/block/careers39";

export default function CareersPage() {
  return (
    <Careers39
      badge={{ label: "For Candidates", variant: "secondary" }}
      heading="What to <strong>expect</strong>"
      description="How to prepare and what we promise in return."
      prepareTitle="What to Prepare"
      prepareItems={[
        { text: "Review the job description and map your experience to it" },
        { text: "Bring specific examples that demonstrate impact" },
      ]}
      commitTitle="Our Commitment to You"
      commitItems={[
        { text: "You'll hear back within 5 business days of every stage" },
        { text: "You'll receive detailed feedback regardless of outcome" },
      ]}
      contactEmail="[email protected]"
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; variant?: "default" | "secondary" | "outline" }–Section eyebrow badge, centered above the heading
headingstring–Section heading, supports inline <strong>
descriptionstring–Subheading paragraph under the heading
prepareTitlestring–Title of the left ("prepare") card
prepareItemsCommitmentItem[][]Rows in the left card, each with a CheckCircle icon
commitTitlestring–Title of the right ("commitment") card
commitItemsCommitmentItem[][]Rows in the right card, each with a Shield icon
contactEmailstring–Address for the closing mailto: link
classNamestring–Extra classes for the outer <section>
ts
type CommitmentItem = {
  text: string;
};

Behavior notes

  • The entire header block is conditionally rendered and only appears when at least one of badge, heading, or description is provided.
  • heading is injected via dangerouslySetInnerHTML, so inline <strong> is honored and styled text-primary; passing untrusted strings here is unsafe.
  • badge.variant falls back to "default" when omitted; the badge itself only renders when the badge object is present.
  • The two cards always render their outer bordered container even when their *Items array is empty (default []); only the mapped rows and the optional *Title heading are conditional.
  • Left rows use a CheckCircle icon and right rows use a Shield icon; the icon choice is fixed per column and not configurable per item.
  • Rows are keyed by array index, so reordering prepareItems or commitItems can cause unnecessary re-renders.
  • The contact line, including its mailto: link, renders only when contactEmail is set; there are no click callbacks or internal state anywhere in the component.
  • The layout collapses to a single column below md, where the two cards stack vertically.

More Careers blocks

View all Careers
PRO

careers36

Hiring Manager Profiles

PRO

careers10

Hiring Process Timeline

PRO

careers46

Role Spotlight

Get Pro access