Department-Grouped Positions

Department-grouped job listings with minimal row layout. Jobs organized by team with location and type indicators.

PRO

Careers3: Department-Grouped Positions

A centered careers section that renders an optional badge, heading, and description above a vertical stack of departments, each showing its title over a bordered, divided list of job rows that surface an optional location (pin icon) and type (clock icon) and, when a job has an href, a ghost "Apply" button linking out via next/link.

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.

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/careers3?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

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

This installs the block to components/beste/block/careers3.tsx, plus the badge and button shadcn/ui primitives it uses for the section eyebrow and the per-job "Apply" action.

Quick start

The installed file exports careers3Demo alongside the block: the exact props behind the preview above. Spread it to get a working department-grouped job board in one line.

tsx
import { Careers3, careers3Demo } from "@/components/beste/block/careers3";

export default function CareersPage() {
  return <Careers3 {...careers3Demo} />;
}

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

tsx
import { Careers3 } from "@/components/beste/block/careers3";

export default function CareersPage() {
  return (
    <Careers3
      badge={{ label: "Open Positions", variant: "secondary" }}
      heading="Find your place on <strong>our team</strong>"
      description="Browse open roles by department and apply today."
      departments={[
        {
          title: "Engineering",
          jobs: [
            { title: "Senior Frontend Engineer", location: "Remote", type: "Full-time", href: "/jobs/frontend" },
            { title: "Backend Engineer", location: "San Francisco, CA", type: "Full-time", href: "/jobs/backend" },
          ],
        },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; variant?: "default" | "secondary" | "outline" }Section eyebrow badge above the heading
headingstringSection heading, supports inline <strong>
descriptionstringSupporting paragraph under the heading
departmentsDepartment[][]Groups of job rows, each with its own title
classNamestringExtra classes for the outer <section>
ts
type JobItem = {
  title: string;
  location?: string;
  type?: string;
  href?: string;
};

type Department = {
  title: string;
  jobs?: JobItem[];
};

Behavior notes

More Careers blocks

View all Careers
PRO

careers1

Job Listings List

Job listings section with role cards showing department, location, and employment type. Clean list layout with hover effects and apply buttons.

PRO

careers2

Job Openings Grid

Job openings grid with department badges, location tags, and apply buttons. Card-based layout for career pages.

PRO

careers18

Department Overview Grid

Department cards with team lead, headcount, open roles badge, and links. Helps candidates explore teams before applying.

PRO

careers6

Tab-Filtered Job Board

Tabbed job board with department filters using shadcn Tabs component. Browse positions by team with location and type details.

PRO

careers36

Hiring Manager Profiles

Team lead profiles with photos, bios, and department badges. Introduces future managers to candidates with detailed backgrounds.

PRO

careers31

Role Comparison Table

Side-by-side role comparison grid showing team, skills, experience, and salary for different positions. Responsive table-to-card layout.