Job Listings

Career openings list with job title, department badge, location, and employment type. Perfect for company career pages with clickable job postings.

FREE

Saas31: Job Listings

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.

Installation

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/saas31"

Base UI flavor

bash
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.

Quick start

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.

tsx
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:

tsx
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",
        },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; icon?: React.ReactNode; variant?: "default" | "secondary" | "outline" }Optional badge above the section heading
headingstringSection heading
descriptionstringSection intro text
positionsJobPosition[][]List of job rows, rendered in order
classNamestringExtra classes for the outer <section>
ts
type JobPosition = {
  title: string;
  badge?: { label: string; variant?: "default" | "secondary" | "outline" };
  meta?: MetaItem[];
  href: string;
};

type MetaItem = { label: string; icon?: React.ReactNode };

Behavior notes

More SaaS blocks

View all SaaS
PRO

saas34

Press Coverage

Media mentions list with publication source badges, headlines, and dates. Perfect for showcasing company press coverage and news articles.

PRO

saas87

Analytics Dashboard

Metric cards grid showing key stats (users, revenue, conversion, sessions) with trend indicators and time range selector. Perfect for admin dashboards and analytics overviews.

FREE

saas16

Changelog Timeline

Version history cards with version badges, dates, and update type labels (Feature, Improvement, Fix). Perfect for product update pages and release notes.

PRO

saas13

Plan Comparison Table

Comparison table showing features across Starter, Pro, and Enterprise tiers with checkmarks. Perfect for pricing pages that need clear feature differentiation.

PRO

saas15

Team Members Grid

Team member cards with circular photos, names, roles, and social media links (Twitter, LinkedIn, GitHub). Perfect for about pages showcasing company leadership.

PRO

saas104

Plan Comparison Table

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.