Normalize job titles
How it works
Paste the list
One title per line, or paste whole CSV rows. If the first row has a column called title, position, role or headline, that column is used and every other column is carried through to the export.
Strip the noise
Company names after “at”, pipe-separated taglines, bracketed asides, emoji, and the ex-employer boasting people put in LinkedIn headlines all come off. Abbreviations are expanded and acronyms kept upper case.
Label and score
Each title gets a seniority band, a department and a decision score from 0 to 5. Assistants, interns, former roles and board seats are flagged separately, because a C-level match on “EA to the CEO” is the classic false positive.
Export
Download the CSV with the new columns appended, or copy just the merge titles. Filter to decision makers only if you want the short list.
Why raw titles break sequences
A scraped list carries whatever the person typed into their profile, which is not a job title so much as a small advertisement. “Head of Growth | B2B SaaS | ex-Google | Angel Investor” is one field in your CSV, and if it goes straight into {{title}} your first line reads like a parsing error. Personalisation that is visibly automated is worse than no personalisation, because it tells the reader the message was never meant for them specifically.
The second problem is sorting. You cannot prioritise a list you cannot group. Ten thousand rows of free text contain perhaps forty real seniority levels and a dozen departments, but only after somebody maps “sr. mktg mgr”, “Senior Marketing Manager” and “Marketing Manager (Senior)” onto the same thing. That mapping is what this does.
The bands
Seniority is resolved in priority order so the strongest signal wins: Founder / Owner and C-Level first, then VP, Director, Head, Manager, Lead, Senior IC, Entry, and plain IC for everything left. Order matters more than it looks: “Senior Director” must land on Director and not on Senior IC, and “Chief of Staff” must not land on Manager. Board seats and advisory roles are pulled out into their own band because they are rarely operational buyers and will inflate your C-level count if you let them.
The decision score is a blunt 0 to 5 derived from the band, then knocked down by the flags. An assistant to a C-level drops to 1. A former role drops to 1. An intern drops to 0. That is deliberately harsher than the band alone, because those three patterns are exactly what makes a “C-suite verified” list look impressive and perform badly.
Departments, and where it will be wrong
Department is keyword matching, in a fixed order, which means a title that names two functions gets the first one that matches rather than a judgement call. “VP of Sales & Marketing” is filed under Sales and flagged as carrying two functions. Cross-functional titles, invented titles (“Chief Happiness Officer”), and non-English titles are the weak spots — the first two land in Executive or Other, the third mostly passes through cleaned but unlabelled. Check the Other bucket before you trust the summary; if it is large, your source is not what you think it is.
What to do with the output
Filter to score 3 and above for the first send and keep the rest for a lower-priority sequence rather than deleting them — Managers forward internally more often than VPs reply. Drop the flagged rows entirely; there is no sequence that works on an intern. Map merge_title rather than title_clean into your sending tool, since the merge column is the first function only and reads naturally inside a sentence. Then run the list through the email verifier before the first send, and the list splitter to spread it across your inboxes.
Frequently asked questions
Does anything leave my browser?
No. The parsing, scoring and CSV writing all happen in the page. Nothing is uploaded, stored or logged.
How big a list can it take?
Two thousand rows per run, with the first three hundred shown on screen and all of them in the CSV. For bigger lists, split the file or send it to Rooster4am.
Will it handle non-English titles?
Partly. Accented characters survive and the cleanup still works, but the seniority and department rules are English keyword rules, so a French or German title usually comes back cleaned but labelled Other.
Why did a C-level title score low?
Look at the flags column. “Assistant to the CEO”, “ex-CTO” and “Board Member” all match C-level wording and are all deliberately scored down.
Can I keep my other CSV columns?
Yes. Paste the full rows with a header line. If a column is named title, position, role, designation or headline it is used as the input and every other column is written back out unchanged.
What is the merge title for?
The value to put in {{title}}. It strips the second function, the region qualifier and anything after a slash, so the sentence you wrote around it still reads properly.
Last reviewed
What to run next
The checks that most often follow this one.
More in this category
Guides that go deeper
When the tools tell you something is wrong
The diagnostics here are free and always will be. When the fix is bigger than a DNS record, this is the work I do.
Deliverability rescue
Mail landing in spam, replies gone quiet, or a domain suddenly blocked. I find the actual cause rather than guessing, and fix it.
- Authentication and alignment failures
- Blocklist delistings and reputation repair
- Gateway and filter-level blocks
- A written report on what broke and why
Email & sending infrastructure
Sending domains, inboxes, authentication and warmup, built to survive volume instead of burning down in a month.
- Domain and inbox fleets at any scale
- SPF, DKIM, DMARC and tracking domains
- Google Workspace and Microsoft 365 inboxes
- Handover documentation you actually own
Domain, DNS & migration
Changing registrar, mail provider or host without a day of downtime or a week of mail silently failing.
- Registrar and nameserver moves
- Workspace and Microsoft 365 migrations
- MX, SSL and subdomain cutover
- Staged rollout with rollback at every step
Monitoring & retainer
Infrastructure drifts. Records get edited, certificates expire, domains get listed. Ongoing eyes on the fleet.
- Scheduled checks across every domain
- Alerts before your clients notice
- Monthly reporting
- Priority response when something breaks
Start with a call
Bring a domain and the symptom. I will tell you what is actually wrong and whether you need me at all — plenty of people leave that call able to fix it themselves.
Thirty minutes, no pitch
We will run the checks together on your actual domains, and you will leave knowing what is broken, what it takes to fix, and what it should cost. If that is a job you can do in-house, I will say so.