How we classify Job Title names into Job Categories

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.
SELECT
CASE
WHEN title = '' THEN 'unknown'
ELSE LOWER(title)
END AS user_title
FROM usersStep 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:
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:
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:
- Technical roles (Dev, DevRel, Security)
- Product roles (Product, Design)
- Go-to-market roles (Marketing, Sales)
- Support roles (Customer Success, Support)
- Leadership roles (Exec)
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.