Last active
August 5, 2022 19:58
-
-
Save jrwarwick/54511f9c3e4cf1ae6b77cb0ceffc7055 to your computer and use it in GitHub Desktop.
Trendy Job Title Generator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function pick($hat) { | |
$a = $hat -split "," | |
$a[(get-random -min 0 -max $a.count)] | |
} | |
$altitudeModifier = "chief,head,senior,lead,principal,lord,earl of,vice,total,regional,legendary,imaginary,administrator of,minister of,professor of,master,associate,assistant,supreme,ultimate,proto,star,best,high,uber,arch,bestest,director of,manager of,commissioner of" | |
$subjectModifier = "interpersonal,extrapersonal,blackbelt,intra-,meta-,omni-,hyper-,tele-,eco-,trans-,para-,re-,turbo-,cyber,brand,catalytic,integrated,dynamic,intersectional,initiative,AI,machine learning,agile,communal,pro,team,quantitative,imaginary,holistic,core,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," #this is a trick to reduce frequency of the term appearing at all; lots of blanks will be selected | |
$subject = "data,knowledge,science,administration,infrastructure,sales,impression,ceremony,induction,persuasion,performance,propaganda,collection,cooperation,discovery,distribution,influence,referral,growth,profit,business,solutioning,disaster,reaction,experience,engineering,media,diversity,inclusion,crisis,extraction,visualization,engagement,project,resource,ingredient,community,confidence,conceptual,algorithm,robotic,efficiency,profession,team,value,journey,client,edge,content,systems,big data,alignment,impact,sustainability,logistics,expertise,security,agile,scrum,lab,machine learning,ai,solutions,quantum,management,personnel,intelligence,governance,compliance,direction,navigation,digital,cyber,social,expansion,analytics,convergence,synergy,tech,info,finance,revenue,customer,product" | |
$role = "engineer,hacker,scientist,crafter,storyteller,architect,builder,generator,regent,conductor,concierge,advocate,-oligist,-inator,-ician,performer,elevator,collector,umpire,referee,influencer,observer,ombudsperson,cataloger,minister,explorer,administrator,catalyst,tailor,broker,resolver,rockstar,provider,ambassador,prognosticator,diagnostician,operator,coordinator,harvester,visualizer,planner,artist,author,mechanic,illuminator,emancipator,commissioner,prophet,interventionist,keeper,closer,recruiter,industrialist,digestor,learner,champion,monk,integrator,assassin,herder,gormand,expert,disruptionist,professional,fascist,exorcist,quartermaster,refiner,miner,historian,manager,overlord,guardian,gatekeeper,protector,keymaster,magician,illusionist,specialist,ranger,draftsperson,carpenter,mason,wright,archivist,officer,evangelist,ninja,guru,preacher,pastor,priest,alchemist,counselor,captain,librarian,wrangler,hoarder,director,summoner,conjurer,jurist,beautician,aestheticiain,-jack,consolidator,liberator,cosmonaut,analyst,gardener,medium,oracle,seer,sayer,coaxer,grafter,surgeon,doctor,liar,masticator,presenter,somnambulist,chandler,butcher,baker,fletcher,sawyer,tinker,joiner,brewer,longshoreman,trucker,beater,escort,prostitute,agent,technician,sorcerer,wizard,technomancer,pilot,resourcer" | |
##TODO: also randomize the template/layout of the title? | |
# possible -ing-role sub role: "ninja,specialist,etc." | |
# some things go in subject and subject modifier, but probably want to avoid doubling on those in one gen pass | |
# graceful silent attempt to ingest and add to the lists subjectModifier.json subject.json role.json | |
## | |
<## Super Simple Edition ##> | |
for ($idea = 0; $idea -le 5; $idea += 1) { | |
(Get-Culture).TextInfo.ToTitleCase( | |
( | |
(pick $altitudeModifier), | |
(pick $subjectModifier), | |
(pick $subject), | |
(pick $role) | |
) -join " " | |
) -replace "^ ","" -replace " *"," " -replace " ?- ?","-" | write-output | |
} | |
<## Somewhat More Complex Edition ##> | |
for ($idea = 0; $idea -le 5; $idea += 1) { | |
$altiMod = (pick $altitudeModifier) | |
$subj = (pick $subject) | |
if ((get-random -min 1 -max 100) -lt 12) { | |
$subj += "-$(pick $subject)" | |
} | |
$rollo = (pick $role) | |
if ($altiMod -match " of") { | |
# when there is an "of" in the altitude, then the role should be appended with an -ing (or maybe an ism) | |
#and even sometimes its "ism" or "ure" or "ery"/mabye "s" | |
#but sometimes you replace the er and sometimes you append ing to er... todo... | |
if (("aeiou" -match $rollo[-1]) -or ("ist" -eq $rollo.substring($rollo.length - 3,3)) -OR ((get-random -min 0 -max 100) -lt 25)) { | |
$rollo = "${rollo}s" | |
} elseif ($rollo -match "er$") { | |
if ((get-random -min 1 -max 10) -lt 4) { $suffix = "ism" } | |
else {$suffix = "ing"} | |
$rollo -replace "er$",$suffix | |
} else { | |
$rollo = "${rollo}ing" | |
} | |
} | |
if ($rollo[0] -eq '-'){ #like -ologist of anything | |
if ("aeiouy" -match $rollo[-1]) { | |
$rollo = "${subj}${rollo}" | |
} else { | |
$rollo = "${subj}$($rollo.substring(1))" | |
} | |
$subj = "" | |
} | |
(Get-Culture).TextInfo.ToTitleCase( | |
( | |
$altiMod, | |
(pick $subjectModifier), | |
$subj, | |
$rollo | |
) -join " " | |
) -replace "^ ","" -replace " *"," " -replace " ?- ?","-" | write-output | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment