Career openings list with job title, department badge, location, and employment type. Perfect for company career pages with clickable job postings.
Career-page list of open roles, each rendered as one full-width clickable row: a title, an optional department badge, a row of icon-plus-label meta facts (location, employment type), and a trailing arrow that slides right on hover.
Free block
This block is free. No license or account is required: install it with the CLI and use it in unlimited projects.
Radix flavor
npx shadcn add "https://ui.beste.co/r/saas31"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/saas31"This installs the block to components/beste/block/saas31.tsx and the badge and button shadcn/ui primitives it depends on.
The installed file exports saas31Demo alongside the block: the exact props behind the preview above. Spread it to get a working job list in one line.
import { Saas31, saas31Demo } from "@/components/beste/block/saas31";
export default function CareersPage() {
return <Saas31 {...saas31Demo} />;
}Then replace the demo with your own props. Written out, the same setup looks like this:
import { MapPin, Clock } from "lucide-react";
import { Saas31 } from "@/components/beste/block/saas31";
export default function CareersPage() {
return (
<Saas31
heading="Join our team"
description="We're building something special and looking for talented people."
positions={[
{
title: "Senior Frontend Engineer",
badge: { label: "Engineering", variant: "secondary" },
meta: [
{ label: "San Francisco, CA", icon: <MapPin className="size-4" /> },
{ label: "Full-time", icon: <Clock className="size-4" /> },
],
href: "https://beste.co",
},
{
title: "Product Designer",
badge: { label: "Design", variant: "secondary" },
meta: [{ label: "Remote", icon: <MapPin className="size-4" /> }],
href: "https://beste.co",
},
]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string; icon?: React.ReactNode; variant?: "default" | "secondary" | "outline" } | – | Optional badge above the section heading |
heading | string | – | Section heading |
description | string | – | Section intro text |
positions | JobPosition[] | [] | List of job rows, rendered in order |
className | string | – | Extra classes for the outer <section> |
type JobPosition = {
title: string;
badge?: { label: string; variant?: "default" | "secondary" | "outline" };
meta?: MetaItem[];
href: string;
};
type MetaItem = { label: string; icon?: React.ReactNode };<Link> spanning the whole card (title, badge, meta row, and arrow are all inside a single clickable area), not just the title text.MetaItem.icon is a raw React.ReactNode, so callers pass a rendered icon element directly in the data (as the demo does with <MapPin className="size-4" />), rather than an icon name resolved internally.border-primary, the title text and the arrow both turn primary-colored, and the arrow icon translates right, all scoped to the named group group/saas31.position.badge is independent per row and defaults to the secondary variant when its own variant is omitted, distinct from the section-level badge.saas34
Media mentions list with publication source badges, headlines, and dates. Perfect for showcasing company press coverage and news articles.
saas87
Metric cards grid showing key stats (users, revenue, conversion, sessions) with trend indicators and time range selector. Perfect for admin dashboards and analytics overviews.
saas16
Version history cards with version badges, dates, and update type labels (Feature, Improvement, Fix). Perfect for product update pages and release notes.
saas13
Comparison table showing features across Starter, Pro, and Enterprise tiers with checkmarks. Perfect for pricing pages that need clear feature differentiation.
saas15
Team member cards with circular photos, names, roles, and social media links (Twitter, LinkedIn, GitHub). Perfect for about pages showcasing company leadership.
saas104
A comparison section with an eyebrow over a hairline rule, a two-column heading, and a scrollable three-plan feature table with check, dash, and text cells and a highlighted plan column.