Staaarter

Tab-Filtered Job Board

A job board with department tabs across the top (All, Engineering, Design, Marketing). Selecting a tab shows that department's job list with title, location, and employment type per role.

By Staaarter Team
Careers
Docs
Live preview

Docs

Installation

A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its tabs, button dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/tab-filtered-job-board.json

Prefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/careers/careers6.tsx instead.

Usage

The file also exports careers6Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.

import { Careers6, careers6Demo } from "@/components/blocks/careers/careers6";

export default function Page() {
  return <Careers6 {...careers6Demo} />;
}

Props

PropTypeDefaultDescription
headingstring"Open roles"Section heading.
descriptionstring"Filter openings by department."Section subheading.
tabsJobTab[]noneDepartment tabs, each with a value, label, and its list of jobs.
defaultTabstringnoneValue of the tab selected by default. Defaults to the first tab.
classNamestringnoneExtra classes for the outer section element.

Types

interface TabJob {
  id: string;
  title: string;
  location: string;
  type: string;
}

interface JobTab {
  value: string;
  label: string;
  jobs: TabJob[];
}

Behavior notes

  • The tab switching is real, uncontrolled interactivity from the base `Tabs` primitive (`defaultValue`): clicking a department tab shows only that department's jobs. This stays a Server Component because it only needs uncontrolled tab-switching, not a read of the active tab value for other logic.
  • The per-row Apply link is a placeholder href, nothing is submitted anywhere.