@RoverStorm Wow that was very helpful. Thank you for looking into the game files for me. I would've done it myself if I knew how. And you are right, my main species did have weak. Although I don't understand what it has to do with enforcer job aside of making sense in real world.
Stellaris file-rummaging Primer:
If you have Stellaris on steam, right click on it in your Libary, click Properties, first or secon tab should have a button called "Browse local files" click that. That gets you to the Stellaris folder on you computer.
"Common" is all the values and modifiers the game uses. Sub-folders include techs (further divide by branch, includes both effects and odds of showing up) jobs, civics, Ascension perks and traditions, anomalies, special projects, and more.
"Events" are all the events the game has. Normally divided by subject and/or DLC. This also includes end-game crisises and the events for anomalies and special projects(i.e. the part that triggers after the investigation/project is done)
Localizations are all the translations for the in-game text, divided by language. Those are the big 3 files that 99% of the questions you might have are stored in.
The code pretty much follows the classic programming IF THEN AND OR NOT NOR XOR language, contained in brackets. (Though I don't think I've ever seen the last two; NOR is typically done as NOT with an OR in the brackets and XOR as an OR with a NOT in the brackets.) Pretty much any aspect you can think of can influence an event; ethics, techs, civics, pop and leader traits, and more... and that's just what the devs use.
"Weight," depending on the context, is either the odds of that outcome/choice happening, or, such as the case with jobs, the order in which things are done/filled. When it is a roll it is between 1 and the total amount of weight for all options (i.e. if there is one outcome with a weight of 80, and another with a weight of 20, first outcome has a 4 in 5 chance of occurring, but if there is a third outcome with a weight of 20, then it has a 2 in 3 chance instead) "Factor" is a multiplier to weight, which I *think* is multiplicative; a outcome with a condition that gives it a factor of 0 will never happen if that condition is met.
The AI uses the same commands, weights and factors to decide what it does. Rather than a separate AI file/folder, the decision-making code is usually embedded into the event or feature in question. This is for moddablity, since it makes it super easy to set the AI's response to whatever it is the modder added and makes it unlikely that mods will cancel each other out... but as you might have noticed, it can sometimes cause trouble for people that don't go by the moniker of Glavius in trying to figure out why the AI is doing stupid things, as the reason might be lodged in a file about something that on the surface seems to have nothing to do with the problem in question. There *is* an AI personalities folder for AI-run empires, but it is a list of modifiers mostly for deciding Diplomatic actions, policies and when to declare war, not what building to build or how to fight that war they just declared.