diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm
index 706ae935cb8..c5cb2b21ac2 100644
--- a/code/game/jobs/job/captain.dm
+++ b/code/game/jobs/job/captain.dm
@@ -22,6 +22,8 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
outfit = /datum/outfit/job/captain
+ blacklisted_species = list("Off-Worlder Human", "Tajara", "M'sai Tajara", "Zhan-Khazan Tajara", "Unathi", "Aut'akh Unathi", "Diona", "Baseline Frame", "Hephaestus G1 Industrial Frame", "Hephaestus G2 Industrial Frame", "Xion Industrial Frame", "Zeng-Hu Mobility Frame", "Bishop Accessory Frame", "Shell Frame", "Vaurca Worker", "Vaurca Warrior")
+
/datum/outfit/job/captain
name = "Captain"
jobtype = /datum/job/captain
@@ -93,6 +95,8 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
access_chapel_office, access_library, access_research, access_mining, access_mining_station, access_janitor,
access_hop, access_RC_announce, access_keycard_auth, access_gateway, access_weapons, access_journalist)
+ blacklisted_species = list("M'sai Tajara", "Zhan-Khazan Tajara", "Aut'akh Unathi", "Diona", "Vaurca Worker", "Vaurca Warrior")
+
/datum/outfit/job/hop
name = "Head of Personnel"
jobtype = /datum/job/hop
diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm
index 18bff355094..b4e4b863224 100644
--- a/code/game/jobs/job/engineering.dm
+++ b/code/game/jobs/job/engineering.dm
@@ -27,6 +27,8 @@
minimal_player_age = 7
outfit = /datum/outfit/job/chief_engineer
+ blacklisted_species = list("Off-Worlder Human", "M'sai Tajara", "Zhan-Khazan Tajara", "Aut'akh Unathi", "Vaurca Worker", "Vaurca Warrior")
+
/datum/outfit/job/chief_engineer
name = "Chief Engineer"
jobtype = /datum/job/chief_engineer
diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm
index d92fe8cb154..95b3ff9e387 100644
--- a/code/game/jobs/job/job.dm
+++ b/code/game/jobs/job/job.dm
@@ -30,6 +30,7 @@
var/datum/outfit/outfit = null
var/list/alt_outfits = null // A list of special outfits for the alt titles list("alttitle" = /datum/outfit)
+ var/list/blacklisted_species = null // A blacklist of species that can't be this job
//Only override this proc
/datum/job/proc/after_spawn(mob/living/carbon/human/H)
diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm
index af25750f381..df162cfa278 100644
--- a/code/game/jobs/job/medical.dm
+++ b/code/game/jobs/job/medical.dm
@@ -26,6 +26,8 @@
ideal_character_age = 50
outfit = /datum/outfit/job/cmo
+ blacklisted_species = list("M'sai Tajara", "Zhan-Khazan Tajara", "Aut'akh Unathi", "Vaurca Worker", "Vaurca Warrior")
+
/datum/outfit/job/cmo
name = "Chief Medical Officer"
jobtype = /datum/job/cmo
@@ -224,6 +226,8 @@
outfit = /datum/outfit/job/paramedic
alt_outfits = list("Emergency Medical Technician"=/datum/outfit/job/paramedic/emt)
+ blacklisted_species = list("Diona")
+
/datum/outfit/job/paramedic
name = "Paramedic"
base_name = "Paramedic"
diff --git a/code/game/jobs/job/outsider/representative.dm b/code/game/jobs/job/outsider/representative.dm
index 45032ec4f7e..412d406d508 100644
--- a/code/game/jobs/job/outsider/representative.dm
+++ b/code/game/jobs/job/outsider/representative.dm
@@ -18,6 +18,8 @@
outfit = /datum/outfit/job/representative
alt_titles = list("Consular Officer")
+ blacklisted_species = list("M'sai Tajara", "Zhan-Khazan Tajara", "Aut'akh Unathi")
+
/datum/job/representative/get_outfit(mob/living/carbon/human/H, alt_title = null)
if(H.mind?.role_alt_title == "Consular Officer" || alt_title == "Consular Officer")
var/datum/citizenship/citizenship = SSrecords.citizenships[H.citizenship]
diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm
index cf2f2ff3f70..6e3076122f5 100644
--- a/code/game/jobs/job/science.dm
+++ b/code/game/jobs/job/science.dm
@@ -25,6 +25,8 @@
ideal_character_age = 50
outfit = /datum/outfit/job/rd
+ blacklisted_species = list("M'sai Tajara", "Zhan-Khazan Tajara", "Aut'akh Unathi", "Vaurca Worker", "Vaurca Warrior")
+
/datum/outfit/job/rd
name = "Research Director"
jobtype = /datum/job/rd
diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm
index 26539fd5e7c..2f5a5b4e2d2 100644
--- a/code/game/jobs/job/security.dm
+++ b/code/game/jobs/job/security.dm
@@ -26,6 +26,8 @@
minimal_player_age = 14
outfit = /datum/outfit/job/hos
+ blacklisted_species = list("Off-Worlder Human", "Zhan-Khazan Tajara", "Aut'akh Unathi", "Diona", "Hephaestus G2 Industrial Frame", "Vaurca Worker", "Vaurca Warrior")
+
/datum/outfit/job/hos
name = "Head of Security"
jobtype = /datum/job/hos
diff --git a/code/modules/client/preference_setup/occupation/occupation.dm b/code/modules/client/preference_setup/occupation/occupation.dm
index e1b95d92625..3a79ccb38dd 100644
--- a/code/modules/client/preference_setup/occupation/occupation.dm
+++ b/code/modules/client/preference_setup/occupation/occupation.dm
@@ -179,6 +179,11 @@
if(ban_reason == "WHITELISTED")
dat += "[dispRank]