Skip to content

WorkOS Careers

workos.com
Your app, Enterprise Ready — ship SSO in minutes, not months
workos.com DESKTOP · 1440
WorkOS Careers

AI Breakdown

Design export

# Design brief: the WorkOS Careers design language

Below is a complete design specification measured from a real, published web page. Use it as a design language for the user's product. It is not a page to reproduce.

## Reference images

- Full page: https://cdn.designmunk.com/2026/09/12074640/workos-com-careers-featured.webp
- Above the fold: https://cdn.designmunk.com/2026/09/12074640/workos-com-careers-featured.webp
- On DesignMunk: https://designmunk.com/workos-careers-page/

Study these for hierarchy, rhythm, spacing and density. Where an image and the written spec disagree, the spec wins: the tokens were read from the page's own CSS, the images are one rendering of it.

## Before you start

Ask the user what they are building, who it is for, and what brand assets they already have — name, colours, typefaces. Wait for their answers before writing anything. Everything below is then applied to their product, not to the reference.

## Design specification

# WorkOS Careers: Tabbed Roles and Soft-Purple Pill CTA

## Overview

Developer-first and enterprise-minded. The tone is confident, minimal, and precise rather than emotive. Spacing is generous and copy is succinct, producing a spacious, low-distraction reading experience. Use a quiet neutral surface with purposeful purple accents to signal interactivity and primary actions.

## Colors

- Primary (#29363d): Deep ink for headlines and core text.
- Secondary (#6464f4): Accent purple for links, active states, and primary CTAs.
- Tertiary (#23f0c3): Limited highlight for success or supportive UI states.
- Neutral (#ffffff): Base canvas for pages and cards.
- Border (#e5e7eb): Subtle dividers, card outlines, and tab underlines.
- Brand-shy-moment (#acacf5): Soft tint for gentle emphasis or icon fills.
- Surface ({colors.neutral}): Default surfaces; pair with border for separation.
- On-surface ({colors.primary}): Text and icon color on light backgrounds.

## Typography

All typographic roles use Untitled Sans: a neutral, modern grotesk with tight letter-spacing at display sizes and relaxed line height for body copy. It is provided as a custom, self-hosted font and is not guaranteed available to agents.
- Substitutes to use when Untitled Sans cannot be loaded: Inter (Google), IBM Plex Sans (Google), Source Sans 3 (Google). Choose Inter first for x-height and spacing similarity.
- Headline-lg 52px/1.07, weight 500, letter-spacing -0.05em: hero and key section titles.
- Headline-md 40px/1.2, weight 500, -0.032em: secondary section titles.
- Headline-sm 31px/1.19, weight 500, -0.006em: tertiary headings and card titles.
- Headline-xs 24px/1.21, weight 400: small section headers and list headings.
- Body-md 19px/1.6, weight 400, -0.01em: long-form copy and job details.

## Layout

Spacing is 8-based with deliberate jumps for rhythm: xs 8, sm 16, md 24 handle component padding and gaps; lg 56 and xl 80 create generous section spacing. Center-aligned hero content with narrow measure improves scannability. Use sm or md gaps within cards and grids; reserve lg/xl for section breaks and above-the-fold breathing room.

## Elevation & Depth

Depth is subtle. Small and medium multi-layer shadows are available for lifted elements (menus, hoverable buttons, or modals). Large and extra-large shadows are intentionally none, keeping the page flat. Where shadows are avoided, rely on Border (#e5e7eb) and tonal contrast (Neutral vs On-surface) to create separation.

## Shapes

Two radii define the shape language: sm 8px for structural elements like cards and inputs, and full 9999px for highly interactive pills (buttons, badges). Use full radius to signal primary actions; keep containers at 8px to maintain a crisp, businesslike tone.

## Components

Buttons
- Primary and Secondary: textColor #6363f1, pill shape (rounded.full), 50px height, padding 9.5px 20px. Use secondary for emphasis and hover states; pair with sm or md shadow when a lifted feel is needed.
- Link button: textColor uses Primary (#29363d), no radius, for inline calls to action.
- Card: white background on Neutral, text in Primary, 8px radius, 16px padding; add Border (#e5e7eb) when grouping content.

### Careers Hero
Centered stack using headline-lg for "Careers at WorkOS," body-md for supporting copy, and a single pill CTA. Section spacing uses xl around the hero to keep the entry uncluttered.

### Benefits Grid
A grid of benefit cards using the Card component. Headings set in headline-xs, descriptions in body-md. Use Border (#e5e7eb) and sm spacing internally; accent icons can use Secondary (#6464f4) or Brand-shy-moment (#acacf5).

### Department Tabs
Horizontal tab list for categories (All, Design, Engineering, etc.). Use Body-md for labels, underline or bottom border in Border (#e5e7eb), and highlight the active tab with Secondary (#6464f4).

### Job Listing Row
Each role appears as a compact card: title in headline-sm, meta (location/time zone) in body-md, and an Apply action using the link button. Use md vertical padding and Border for separation.

### Site Header Navigation
A minimal top bar on Neutral with links in On-surface. Primary link hovers use Secondary. Keep internal paddings at sm or md.

### Footer Link Matrix
Multi-column list with small headings (headline-xs) and body links (body-md). Maintain generous top spacing (lg) from the preceding section and use Border to delineate the footer from content.

### Cookie Consent Banner
Neutral surface with Border, body-md text, and two actions (Accept/Reject) using pill buttons. Keep internal padding at md and space buttons with sm.

## Do's and Don'ts

Do
- Use Secondary (#6464f4) for primary interactive states and the most important CTA.
- Keep hero and section headings at their specified sizes (52/40/31/24px) with the provided letter-spacing.
- Apply rounded.full for action pills and rounded.sm for containers to preserve visual hierarchy.
- Use lg/xl spacing between sections; keep internal card padding to 16px (spacing.sm).

Don't
- Introduce heavy drop shadows beyond the provided sm/md levels.
- Overuse Tertiary (#23f0c3); reserve it for success or supportive highlights.
- Mix multiple button shapes; avoid square corners on actions.
- Tighten body copy below 19px or reduce line height—legibility is part of the brand tone.

## Agent Prompt Guide

Quick color reference — Text: #29363d, Background: #ffffff, Border: #e5e7eb, Accent: #6464f4.

1) Build a centered careers hero
- Container: background #ffffff; vertical padding 80px.
- H1: font-family 'Untitled Sans', Inter, system-ui, -apple-system, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif; size 52px; weight 500; line-height 1.07; letter-spacing -0.05em; color #29363d.
- Supporting copy: size 19px; weight 400; line-height 1.6; letter-spacing -0.01em; color #29363d; max-width comfortable for reading.
- Primary CTA: 50px height; padding 9.5px 20px; border-radius 9999px; text color #6363f1; background #ffffff; border 1px solid #e5e7eb.

2) Benefits grid using cards
- Grid: gap 24px horizontally and vertically; outer section gap 56px from neighbors.
- Card: background #ffffff; text #29363d; padding 16px; border-radius 8px; border 1px solid #e5e7eb; optional shadow sm.
- Card heading: 24px/1.21 weight 400; body: 19px/1.6.
- Accent icons: color #6464f4 or #acacf5.

3) Department tabs with active accent
- Tabs container: bottom border 1px solid #e5e7eb; padding-bottom 16px; gap 16px.
- Tab label: font 19px/1.6; color #29363d; hover color #6464f4.
- Active tab: text color #6464f4; add 1px bottom border in #6464f4.
- Content area spacing: top margin 24px.

4) Job listing rows
- Each row is a card: background #ffffff; text #29363d; padding 16px; border-radius 8px; border 1px solid #e5e7eb.
- Title: 31px/1.19 weight 500; meta: 19px/1.6.
- Apply action: style as button-link; text color #29363d; no radius; underline on hover.

## Similar Brands

Stripe — similarly spare with generous spacing and a purple/indigo accent; Stripe leans more into gradient tints and richer illustration.
Linear — monochrome UI with precise type and pill actions; Linear is denser and more product-UI forward.
Vercel — minimal, developer-first with restrained color; Vercel uses darker themes and more dramatic contrast.
Auth0 — identity/security focus with structured docs and careers; Auth0 employs brighter gradients and more marketing illustration than WorkOS.

## Tokens

### CSS custom properties

```css
:root {
  /* Colors */
  --color-primary: #29363d;
  --color-secondary: #6464f4;
  --color-tertiary: #23f0c3;
  --color-neutral: #ffffff;
  --color-border: #e5e7eb;
  --color-brand-shy-moment: #acacf5;
  --color-surface: var(--color-neutral);
  --color-on-surface: var(--color-primary);

  /* Typography */
  --text-headline-lg-size: 52px;
  --text-headline-lg-weight: 500;
  --text-headline-lg-leading: 1.07;
  --text-headline-lg-tracking: -0.05em;
  --text-headline-md-size: 40px;
  --text-headline-md-weight: 500;
  --text-headline-md-leading: 1.2;
  --text-headline-md-tracking: -0.032em;
  --text-headline-sm-size: 31px;
  --text-headline-sm-weight: 500;
  --text-headline-sm-leading: 1.19;
  --text-headline-sm-tracking: -0.006em;
  --text-headline-xs-size: 24px;
  --text-headline-xs-weight: 400;
  --text-headline-xs-leading: 1.21;
  --text-body-md-size: 19px;
  --text-body-md-weight: 400;
  --text-body-md-leading: 1.6;
  --text-body-md-tracking: -0.01em;
  --font-untitled-sans: "Untitled Sans";

  /* Rounded */
  --radius-sm: 8px;
  --radius-full: 9999px;

  /* Spacing */
  --spacing-xs: 8px;
  --spacing-sm: 16px;
  --spacing-md: 24px;
  --spacing-lg: 56px;
  --spacing-xl: 80px;

  /* Components */
  --button-primary-text-color: #6363f1;
  --button-primary-rounded: var(--radius-full);
  --button-primary-padding: 9.5px 20px;
  --button-primary-height: 50px;
  --button-secondary-text-color: #6363f1;
  --button-secondary-rounded: var(--radius-full);
  --button-secondary-padding: 9.5px 20px;
  --button-secondary-height: 50px;
  --button-link-text-color: var(--color-primary);
  --button-link-rounded: 0px;
  --card-background-color: var(--color-neutral);
  --card-text-color: var(--color-primary);
  --card-rounded: var(--radius-sm);
  --card-padding: 16px;
}
```

### Tailwind theme

```css
@theme {
  --color-primary: #29363d;
  --color-secondary: #6464f4;
  --color-tertiary: #23f0c3;
  --color-neutral: #ffffff;
  --color-border: #e5e7eb;
  --color-brand-shy-moment: #acacf5;
  --color-surface: #ffffff;
  --color-on-surface: #29363d;
  --font-headline-lg: "Untitled Sans";
  --font-headline-md: "Untitled Sans";
  --font-headline-sm: "Untitled Sans";
  --font-headline-xs: "Untitled Sans";
  --font-body-md: "Untitled Sans";
  --text-headline-lg: 52px;
  --text-headline-md: 40px;
  --text-headline-sm: 31px;
  --text-headline-xs: 24px;
  --text-body-md: 19px;
  --tracking-headline-lg: -0.05em;
  --tracking-headline-md: -0.032em;
  --tracking-headline-sm: -0.006em;
  --tracking-body-md: -0.01em;
  --font-weight-headline-lg: 500;
  --font-weight-headline-md: 500;
  --font-weight-headline-sm: 500;
  --font-weight-headline-xs: 400;
  --font-weight-body-md: 400;
  --radius-sm: 8px;
  --radius-full: 9999px;
  --spacing-xs: 8px;
  --spacing-sm: 16px;
  --spacing-md: 24px;
  --spacing-lg: 56px;
  --spacing-xl: 80px;
}
```

### Design tokens (DTCG)

```json
{
    "$schema": "https://www.designtokens.org/schemas/2025.10/format.json",
    "color": {
        "$type": "color",
        "primary": {
            "$value": {
                "colorSpace": "srgb",
                "components": [
                    0.161,
                    0.212,
                    0.239
                ],
                "hex": "#29363d"
            }
        },
        "secondary": {
            "$value": {
                "colorSpace": "srgb",
                "components": [
                    0.392,
                    0.392,
                    0.957
                ],
                "hex": "#6464f4"
            }
        },
        "tertiary": {
            "$value": {
                "colorSpace": "srgb",
                "components": [
                    0.137,
                    0.941,
                    0.765
                ],
                "hex": "#23f0c3"
            }
        },
        "neutral": {
            "$value": {
                "colorSpace": "srgb",
                "components": [
                    1,
                    1,
                    1
                ],
                "hex": "#ffffff"
            }
        },
        "border": {
            "$value": {
                "colorSpace": "srgb",
                "components": [
                    0.898,
                    0.906,
                    0.922
                ],
                "hex": "#e5e7eb"
            }
        },
        "brand-shy-moment": {
            "$value": {
                "colorSpace": "srgb",
                "components": [
                    0.675,
                    0.675,
                    0.961
                ],
                "hex": "#acacf5"
            }
        },
        "surface": {
            "$value": {
                "colorSpace": "srgb",
                "components": [
                    1,
                    1,
                    1
                ],
                "hex": "#ffffff"
            }
        },
        "on-surface": {
            "$value": {
                "colorSpace": "srgb",
                "components": [
                    0.161,
                    0.212,
                    0.239
                ],
                "hex": "#29363d"
            }
        }
    },
    "spacing": {
        "$type": "dimension",
        "xs": {
            "$value": {
                "value": 8,
                "unit": "px"
            }
        },
        "sm": {
            "$value": {
                "value": 16,
                "unit": "px"
            }
        },
        "md": {
            "$value": {
                "value": 24,
                "unit": "px"
            }
        },
        "lg": {
            "$value": {
                "value": 56,
                "unit": "px"
            }
        },
        "xl": {
            "$value": {
                "value": 80,
                "unit": "px"
            }
        }
    },
    "rounded": {
        "$type": "dimension",
        "sm": {
            "$value": {
                "value": 8,
                "unit": "px"
            }
        },
        "full": {
            "$value": {
                "value": 9999,
                "unit": "px"
            }
        }
    },
    "typography": {
        "headline-lg": {
            "$type": "typography",
            "$value": {
                "fontFamily": "Untitled Sans",
                "fontSize": {
                    "value": 52,
                    "unit": "px"
                },
                "fontWeight": 500,
                "letterSpacing": {
                    "value": -0.05,
                    "unit": "em"
                }
            }
        },
        "headline-md": {
            "$type": "typography",
            "$value": {
                "fontFamily": "Untitled Sans",
                "fontSize": {
                    "value": 40,
                    "unit": "px"
                },
                "fontWeight": 500,
                "letterSpacing": {
                    "value": -0.032,
                    "unit": "em"
                }
            }
        },
        "headline-sm": {
            "$type": "typography",
            "$value": {
                "fontFamily": "Untitled Sans",
                "fontSize": {
                    "value": 31,
                    "unit": "px"
                },
                "fontWeight": 500,
                "letterSpacing": {
                    "value": -0.006,
                    "unit": "em"
                }
            }
        },
        "headline-xs": {
            "$type": "typography",
            "$value": {
                "fontFamily": "Untitled Sans",
                "fontSize": {
                    "value": 24,
                    "unit": "px"
                },
                "fontWeight": 400
            }
        },
        "body-md": {
            "$type": "typography",
            "$value": {
                "fontFamily": "Untitled Sans",
                "fontSize": {
                    "value": 19,
                    "unit": "px"
                },
                "fontWeight": 400,
                "letterSpacing": {
                    "value": -0.01,
                    "unit": "em"
                }
            }
        }
    }
}
```

## Rules

- **Fonts.** If the specification names a custom or self-hosted family, use one of the substitutes it names. Never reference a typeface you cannot actually load — it will fall back to a system font and undo the typography.
- **Colour.** Derive the palette from the user's brand. Use the token values as a guide to *relationships* — contrast, tint, how many accents carry the page — not as hex codes to paste.
- **Never reproduce** the wordmark, mascot, logo, brand name, illustrations, icon set, screenshots or any copy from the reference.
- **Never present the result as WorkOS Careers**, or imply any connection to it.
- If something is unspecified, choose clarity and legibility over decoration.