Department Overview Grid

Our Teams

Explore our departments

Get to know the teams that make it all happen. Find where your skills and passions align, and discover your next career move.

Engineering

Build and scale our core platform, APIs, and infrastructure. We ship fast, iterate often, and take ownership of what we build.

James Kim|45 people8 open roles
View open roles

Design

Craft intuitive, beautiful experiences across web and mobile. From research to pixels, we own the entire design process.

Emily Chen|18 people3 open roles
View open roles

Product

Define what we build and why. Work closely with engineering and design to deliver features that users love.

Sarah Martinez|12 people2 open roles
View open roles

Marketing

Tell our story and grow our audience. From content to campaigns, we drive awareness and pipeline.

Alex Turner|15 people4 open roles
View open roles

Sales

Connect with customers and close deals. We focus on consultative selling and long-term partnerships.

David Park|22 people5 open roles
View open roles

Operations

Keep the business running smoothly. Finance, HR, legal, and everything in between.

Lisa Nakamura|10 people1 open role
View open roles
About this block

Department Overview GridPRO

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

Careers18: Department Overview Grid

A centered header block (optional badge, <strong>-aware heading, and description) above a two-column grid of department cards, each rendering a title, description, team lead, headcount, an open-roles badge, and a "View open roles" 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.

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

Base UI flavor

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

This installs the block to components/beste/block/careers18.tsx, plus the badge shadcn/ui primitive it uses for the eyebrow badge and the per-card open-roles count.

Quick start

The installed file exports careers18Demo alongside the block: the exact props behind the preview above. Spread it to get a working department grid in one line.

tsx
import { Careers18, careers18Demo } from "@/components/beste/block/careers18";

export default function Page() {
  return <Careers18 {...careers18Demo} />;
}

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

tsx
import { Careers18 } from "@/components/beste/block/careers18";

export default function Page() {
  return (
    <Careers18
      badge={{ label: "Our Teams", variant: "secondary" }}
      heading="Explore our <strong>departments</strong>"
      description="Find where your skills align and discover your next career move."
      items={[
        {
          title: "Engineering",
          description: "Build and scale our core platform, APIs, and infrastructure.",
          lead: "James Kim",
          teamSize: "45 people",
          openRoles: 8,
          href: "/careers/engineering",
        },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; variant?: "default" | "secondary" | "outline" }Optional eyebrow badge above the heading
headingstringCentered heading, supports inline <strong>
descriptionstringSub-heading paragraph under the heading
itemsDepartmentItem[][]Department cards rendered in the grid
classNamestringExtra classes for the outer <section>
ts
type DepartmentItem = {
  title: string;
  description?: string;
  lead?: string;
  teamSize?: string;
  openRoles?: number;
  href?: string;
};

Behavior notes

  • The entire header block is conditionally rendered: the centered container only mounts when at least one of badge, heading, or description is provided, so an items-only grid has no top margin gap from an empty header.
  • heading is injected via dangerouslySetInnerHTML, and any inline <strong> inside it is recolored to text-primary through the [&>strong] selector, so pass trusted markup only.
  • The grid is fixed at one column on mobile and two columns from the sm breakpoint up (sm:grid-cols-2); there is no prop to change the column count.
  • Within each card, the lead and team-size row only shows the | divider when both lead and teamSize are present, and the open-roles Badge renders only when openRoles is non-null and greater than 0.
  • The open-roles label is auto-pluralized: it prints "role" when openRoles is exactly 1 and "roles" otherwise.
  • The "View open roles" link only renders when item.href is set; it is a real next/link navigation (not a decorative or console.log handler), and its trailing ArrowRight nudges right on card hover via the group-hover/careers18 group.

More Careers blocks

View all Careers
PRO

careers2

Job Openings Grid

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

PRO

careers36

Hiring Manager Profiles

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

PRO

careers14

Meet the Team Gallery

Team member photo grid with names and roles. Square portrait layout for showcasing leadership and team composition.

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

careers3

Department-Grouped Positions

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

PRO

careers5

Featured Role with Positions

Highlighted featured position card with a compact list of additional openings below. Great for showcasing priority roles.