First 90 days onboarding timeline with phase cards and activity checklists. Shows new hires what to expect from orientation to ownership.
A centered header (optional badge, <strong>-aware heading, and description) above a three-column grid of phase cards, each card leading with an outline phase badge, a title, an optional description, and a checklist of activities marked by primary-colored check icons.
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.
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
npx shadcn add "https://ui.beste.co/r/careers24?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/careers24?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/careers24.tsx, plus the badge shadcn/ui primitive it uses for the section eyebrow, the per-card phase labels, and the header badge.
The installed file exports careers24Demo alongside the block: the exact props behind the preview above. Spread it to get a working onboarding timeline in one line.
import { Careers24, careers24Demo } from "@/components/beste/block/careers24";
export default function OnboardingPage() {
return <Careers24 {...careers24Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Careers24 } from "@/components/beste/block/careers24";
export default function OnboardingPage() {
return (
<Careers24
badge={{ label: "Your First 90 Days", variant: "secondary" }}
heading="Your first <strong>90 days</strong>"
description="A structured program so you feel at home from day one."
items={[
{
phase: "Week 1–2",
title: "Learn & Explore",
activities: [
"Meet your team and onboarding buddy",
"Set up your dev environment and tools",
],
},
]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string; variant?: "default" | "secondary" | "outline" } | – | Header eyebrow badge above the heading |
heading | string | – | Section heading, supports inline <strong> |
description | string | – | Muted paragraph rendered below the heading |
items | PhaseItem[] | [] | Phase cards rendered in the grid |
className | string | – | Extra classes for the outer <section> |
type PhaseItem = {
phase: string;
title: string;
description?: string;
activities?: string[];
};badge, heading, or description is truthy.heading is injected via dangerouslySetInnerHTML, and any inline <strong> is styled to text-primary with font-semibold, so pass trusted markup only.badge.variant falls back to "default" when omitted, while each card's own phase badge is always hardcoded to variant="outline" and is not configurable.sm:grid-cols-3 layout, so more than three items wrap onto additional rows rather than scrolling, and fewer than three leave the remaining columns empty.description renders only when present, and the activity list maps over item.activities ?? [], so a card with no activities simply shows an empty list under its title.useState, so there is nothing to wire up beyond the props.careers10
Step-by-step hiring process timeline with numbered stages. Shows candidates the interview journey from application to onboarding.
careers22
Featured employee profile with portrait photo, personal quote, and career milestone timeline. Showcases real growth stories.
careers46
A full featured-role posting with responsibilities, requirements and a sticky apply card.
careers1
Job listings section with role cards showing department, location, and employment type. Clean list layout with hover effects and apply buttons.
careers15
A typical workday timeline with time stamps, activity icons, and descriptions. Shows candidates what daily life looks like at the company.
careers37
Email subscription form for job alerts with trust indicators. Captures candidate interest for future openings with clean card layout.