# Careers Listings

> Open roles by department — locations and types in mono.

A shadcn/ui block from the [@blockforge](https://blockforge.terravidhal.me) registry, listed on [shadcn.exchange](https://shadcn.exchange/r/blockforge/careers-listings).

- Page, with a live preview: https://shadcn.exchange/r/blockforge/careers-listings
- Screenshot: https://abzjhwgwpdpz7ua5.public.blob.vercel-storage.com/shots/blockforge/careers-listings-light-96fa2ec82cf73951.png
- Registry item: https://blockforge.terravidhal.me/r/careers-listings.json
- Categories: careers
- Listed: 2026-10-13, source last changed 2026-10-13

## Install

```bash
npx shadcn@latest add https://blockforge.terravidhal.me/r/careers-listings.json
```

Run it in a project that has shadcn/ui set up. It adds the files below and installs what they depend on.

## Dependencies

- npm packages: `lucide-react`

## Files

### `registry/blocks/careers-listings.tsx`

```tsx
import Link from "next/link";
import { ArrowUpRight } from "lucide-react";

const departments = [
  {
    name: "Engineering",
    roles: [
      { title: "Senior product engineer", location: "Remote · EU", type: "Full-time" },
      { title: "Infrastructure engineer", location: "Remote · Worldwide", type: "Full-time" },
      { title: "Design engineer", location: "Paris or remote", type: "Full-time" },
    ],
  },
  {
    name: "Product & Design",
    roles: [
      { title: "Product designer", location: "Remote · EU", type: "Full-time" },
    ],
  },
  {
    name: "Go-to-market",
    roles: [
      { title: "Developer advocate", location: "Remote · Americas", type: "Full-time" },
      { title: "Technical writer", location: "Remote · EU", type: "Part-time" },
    ],
  },
];

export default function CareersListings() {
  const total = departments.reduce((sum, d) => sum + d.roles.length, 0);

  return (
    <section className="bg-background">
      <div className="mx-auto w-full max-w-4xl px-6 py-20 sm:py-24">
        <div className="mb-12 flex flex-col gap-2 sm:flex-row sm:items-end sm:justify-between">
          <div>
            <h2 className="text-2xl font-semibold tracking-tight text-balance sm:text-3xl">
              Open positions
            </h2>
            <p className="mt-2 max-w-md text-muted-foreground">
              Small team, real ownership. Every role is remote-friendly and
              salary-transparent.
            </p>
          </div>
          <p className="font-mono text-xs text-muted-foreground tabular-nums">
            {String(total).padStart(2, "0")} roles open
          </p>
        </div>

        {departments.map((department) => (
          <div key={department.name} className="mb-8 last:mb-0">
            <h3 className="border-b border-border/60 pb-2.5 font-mono text-xs tracking-wide text-muted-foreground uppercase">
              {department.name}
            </h3>
            <ul>
              {department.roles.map((role) => (
                <li key={role.title} className="border-b border-border/60">
                  <Link
                    href="#"
                    className="group flex items-center justify-between gap-4 py-4 transition-colors hover:bg-accent/40 sm:px-3 sm:-mx-3"
                  >
                    <div>
                      <p className="text-sm font-medium group-hover:underline group-hover:underline-offset-4">
                        {role.title}
                      </p>
                      <p className="mt-0.5 font-mono text-xs text-muted-foreground">
                        {role.location} · {role.type}
                      </p>
                    </div>
                    <ArrowUpRight className="size-4 shrink-0 text-muted-foreground transition-transform group-hover:translate-x-0.5 group-hover:-translate-y-0.5 motion-reduce:transition-none" />
                  </Link>
                </li>
              ))}
            </ul>
          </div>
        ))}

        <p className="mt-8 text-sm text-muted-foreground">
          Nothing fits?{" "}
          <Link href="#" className="font-medium text-foreground underline-offset-4 hover:underline">
            Send a spontaneous application
          </Link>{" "}
          — we read every one.
        </p>
      </div>
    </section>
  );
}
```
