Normalizing the seniority of job titles

I would like to use something like Taggers to normalize the seniority of job titles, e.g. CRO, CEO, CMO in $Title would all automatically be tagged NLSeniority as CXO or Executive Leadership. Is this possible? My understanding is that Taggers only looks at $Name and $Text.

This seems a good task for an agent. Put the senior titles in a set attribute, and test for inclusion in the set.

Sounds good, thanks. Actually, how exactly would you do this? What if there are partial matches? e.g., Head of Identity, who could I do it so that it will match on Head? Is there a way to do .asString match? Could you give me an example?

Well, I can think of lots of possible queries.

if($Title.beginsWith("C")) { $Seniority="Executive Leadership";}

Or, we could be more cautious.

if ($Title="CEO" | $Title=="CFO" | $Title="CMO") {$Seniority="Executive Leadership";}

If this gets too long, we could write

if($MySet(/config/titles).contains($Title)) {$Seniority="Executive Leadership";}

where $MySet(/config/titles) contains the set “CEO;CFO;CMO;CTO;”.

We could also wrap the test up in a function:

if(isExecutive($Title)){$Seniority="Executive Leadership";}

where isExecutive is something like

function isExecutive(title:string) {
     if( $MySet(/config/titles) contains the set "CEO;CFO;CMO;CTO;) {return true;}
     return false;
1 Like

Another approach, now that I think of it, is a dictionary:

{CEO: "Executive leadership";CFO: :"C-suite"; .....}