---
title: How we classify Job Title names into Job Categories
slug: books/agentic-gtm-engineering/how-we-classify-job-title-names-into-job-categories
docTags: 
createdAt: 2024-12-19T13:43:29.995Z
---

![](https://api.archbee.com/api/optimize/K_JWZranXy1tD6qvlG2v6-0jR7b3GO2vRpV15438AHp-20250117-154011.jpg)

Every company calls their developers something different. Their marketers too. And don't get me started on the creative ways people describe leadership roles.

But hidden in this chaos is an opportunity. An opportunity to understand your users better, to segment them more effectively, and to speak their language.

***

Here's how **we turned the mess into a system:**

## Step 1: Start with the Raw Data

During the signup process, you should capture the job titles of all your new users.

Some are clear ("Software Engineer"), others less so ("Ninja Coder Supreme"). The first step is to get them all in one place.

```sql
SELECT 
  CASE
    WHEN title = '' THEN 'unknown'
    ELSE LOWER(title)
  END AS user_title
FROM users
```

## Step 2: Create Your Categories

The magic isn't in collecting titles. It's in grouping them meaningfully. We identified key categories that matter for B2B SaaS:

- dev (developers, engineers)
- devrel (developer relations)
- product (product managers, analysts)
- exec (C-suite, founders)
- marketing
- sales
- design
- support
- academia

## Step 3: Build Your Classification Logic

Here's where it gets interesting. Start with the most common patterns:

```sql
CASE
  WHEN LOWER(title) LIKE '%developer%' THEN 'dev'
  WHEN LOWER(title) LIKE '%engineer%' THEN 'dev'
  WHEN LOWER(title) LIKE '%cto%' THEN 'exec'
  WHEN LOWER(title) LIKE '%marketing%' THEN 'marketing'
```

But don't stop there. Think about variations:

- "dev" could be "developer", "développeur", or just "dev"
- "eng" might mean "engineer" or "engineering"
- Some titles combine multiple keywords

## Step 4: Handle the Edge Cases

This is where most people give up. Don't. Edge cases tell you something:

```sql
WHEN title IS NULL THEN 'unknown'
WHEN title = '' THEN 'unknown'
WHEN title IN ('test', 'asd', 'a', '.') THEN 'unknown'
```

People enter test data. They make typos. They leave fields blank. Plan for it.

## Step 5: Keep It Maintainable

Break your categories into logical groups. We use this order:

1. Technical roles (Dev, DevRel, Security)
2. Product roles (Product, Design)
3. Go-to-market roles (Marketing, Sales)
4. Support roles (Customer Success, Support)
5. Leadership roles (Exec)

```sql
CREATE OR REPLACE TABLE user_categories AS (
  SELECT 
    user_id,
    email,
    title,
    title_category
  FROM user_data
)
```

Because personalization at scale requires structure. Because speaking to a developer differently than a CEO isn't just polite – it's effective. Because understanding who your users are shapes what you build for them.

Start with a small scope. Test your assumptions, and refine your approach as you go. The goal isn’t to categorize every job title, but to understand enough about them to make more informed decisions.

That's how you turn chaos into clarity. One title at a time.
