diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js
index e075a84aa86ce7e57b0138c7e721900e8115c15a..9eb388d893e9a6f812e799e6d64fe43589c397bf 100644
--- a/src/js/slaveSummaryWidgets.js
+++ b/src/js/slaveSummaryWidgets.js
@@ -4824,10 +4824,18 @@ window.SlaveSummaryUncached = (function () {
 App.UI.PassageSlaveFilers = {
 	"Main": s => (s.assignmentVisible === 1),
 	"Personal Attention Select": s => (s.assignmentVisible === 1 && s.fuckdoll <= 0),
-	"Agent Select": s => (s.fuckdoll === 0 && s.devotion > 20 && s.intelligence + s.intelligenceImplant > 15 && s.intelligenceImplant >= 15 && canWalk(s) && canSee(s) && canHear(s) && canTalk(s) && s.broodmother < 2 && (s.breedingMark !== 1 || State.variables.propOutcome === 0)),
-	"BG Select": s => (s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && s.assignment !== "guard you" && canWalk(s) && canSee(s) && canHear(s) && (s.breedingMark !== 1 || State.variables.propOutcome === 0)),
-	"Recruiter Select": s => (s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && s.assignment !== "recruit girls" && canWalk(s) && canSee(s) && canTalk(s)),
-	"HG Select": s => (s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && s.assignment !== "be your Head Girl" && canWalk(s) && canHear(s) && canSee(s) && canTalk(s)),
+	"Agent Select": s => ((s.fuckdoll === 0 && s.devotion > 20 && s.intelligence + s.intelligenceImplant > 15 && s.intelligenceImplant >= 15 && canWalk(s) && canSee(s) && canHear(s) && canTalk(s) && s.broodmother < 2 && (s.breedingMark !== 1 || State.variables.propOutcome === 0)) &&
+		((State.variables.SlaveSummaryFiler !== "experienced") ||
+		(State.variables.SlaveSummaryFiler === "experienced" && (s.skill[App.Data.Facilities.arcologyAgent.manager.skill] >= State.variables.masteredXP) || (typeof s.career === 'string' && App.Data.Facilities.arcologyAgent.manager.careers.includes(s.career))))),
+	"BG Select": s => ((s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && s.assignment !== "guard you" && canWalk(s) && canSee(s) && canHear(s) && (s.breedingMark !== 1 || State.variables.propOutcome === 0)) &&
+		((State.variables.SlaveSummaryFiler !== "experienced") ||
+		(State.variables.SlaveSummaryFiler === "experienced" && (s.skill[App.Data.Facilities.armory.manager.skill] >= State.variables.masteredXP) || (typeof s.career === 'string' && App.Data.Facilities.armory.manager.careers.includes(s.career))))),
+	"Recruiter Select": s => ((s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && s.assignment !== "recruit girls" && canWalk(s) && canSee(s) && canTalk(s)) &&
+		((State.variables.SlaveSummaryFiler !== "experienced") ||
+		(State.variables.SlaveSummaryFiler === "experienced" && (s.skill[App.Data.Facilities.penthouse.manager.skill] >= State.variables.masteredXP) || (typeof s.career === 'string' && App.Data.Facilities.penthouse.manager.careers.includes(s.career))))),
+	"HG Select": s => ((s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && s.assignment !== "be your Head Girl" && canWalk(s) && canHear(s) && canSee(s) && canTalk(s)) &&
+		((State.variables.SlaveSummaryFiler !== "experienced") ||
+		(State.variables.SlaveSummaryFiler === "experienced" && (s.skill[App.Data.Facilities.headGirlSuite.manager.skill] >= State.variables.masteredXP) || (typeof s.career === 'string' && App.Data.Facilities.headGirlSuite.manager.careers.includes(s.career))))),
 	"Head Girl Suite": s => (s.assignmentVisible === 1 && s.fuckdoll <= 0 && (
 		(State.variables.SlaveSummaryFiler === "assignable" && s.assignment !== "be your Head Girl" && s.indentureRestrictions <= 0 && (s.breedingMark !== 1 || State.variables.propOutcome === 0)) ||
 		(State.variables.SlaveSummaryFiler !== "assignable" && s.assignment === "live with your Head Girl"))),
@@ -4838,22 +4846,30 @@ App.UI.PassageSlaveFilers = {
 		(State.variables.SlaveSummaryFiler === "leading" && s.ID === State.variables.Attendant.ID))) || 
 		(s.assignmentVisible === 0 && s.fuckdoll <= 0 && (
 		(State.variables.SlaveSummaryFiler === "transferable" && s.assignment !== "rest in the spa")))),
-	"Attendant Select": s => (s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && canWalk(s) && canHear(s)),
+	"Attendant Select": s => ((s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && canWalk(s) && canHear(s)) &&
+		((State.variables.SlaveSummaryFiler !== "experienced") ||
+		(State.variables.SlaveSummaryFiler === "experienced" && (s.skill[App.Data.Facilities.spa.manager.skill] >= State.variables.masteredXP) || (typeof s.career === 'string' && App.Data.Facilities.spa.manager.careers.includes(s.career))))),
 	"Nursery": s => (s.assignmentVisible === 1 && s.fuckdoll <= 0 && (s.devotion > 20 || s.trust > 20) && (
 		(State.variables.SlaveSummaryFiler === "assignable" && s.assignment !== "work as a nanny") ||
 		(State.variables.SlaveSummaryFiler === "occupying" && s.assignment === "work as a nanny") ||
 		(State.variables.SlaveSummaryFiler === "leading" && s.ID === State.variables.Matron.ID))),
-	"Matron Select": s => (s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && canWalk(s) && canHear(s)),
+	"Matron Select": s => ((s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && canWalk(s) && canHear(s)) &&
+		((State.variables.SlaveSummaryFiler !== "experienced") ||
+		(State.variables.SlaveSummaryFiler === "experienced" && (s.skill[App.Data.Facilities.nursery.manager.skill] >= State.variables.masteredXP) || (typeof s.career === 'string' && App.Data.Facilities.nursery.manager.careers.includes(s.career))))),
 	"Brothel": s => (s.assignmentVisible === 1 && s.fuckdoll <= 0 && (
 		(State.variables.SlaveSummaryFiler === "assignable" && s.assignment !== "work in the brothel") ||
 		(State.variables.SlaveSummaryFiler === "occupying" && s.assignment === "work in the brothel") ||
 		(State.variables.SlaveSummaryFiler === "leading" && s.ID === State.variables.Madam.ID))),
-	"Madam Select": s => (s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && s.intelligence + s.intelligenceImplant >= -50 && canWalk(s) && canSee(s) && canHear(s) && (s.breedingMark !== 1 || State.variables.propOutcome === 0)),
+	"Madam Select": s => ((s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && s.intelligence + s.intelligenceImplant >= -50 && canWalk(s) && canSee(s) && canHear(s) && (s.breedingMark !== 1 || State.variables.propOutcome === 0)) &&
+		((State.variables.SlaveSummaryFiler !== "experienced") ||
+		(State.variables.SlaveSummaryFiler === "experienced" && (s.skill[App.Data.Facilities.brothel.manager.skill] >= State.variables.masteredXP) || (typeof s.career === 'string' && App.Data.Facilities.brothel.manager.careers.includes(s.career))))),
 	"Club": s => (s.assignmentVisible === 1 && s.fuckdoll <= 0 && (
 		(State.variables.SlaveSummaryFiler === "assignable" && s.assignment !== "serve in the club") ||
 		(State.variables.SlaveSummaryFiler === "occupying" && s.assignment === "serve in the club") ||
 		(State.variables.SlaveSummaryFiler === "leading" && s.ID === State.variables.DJ.ID))),
-	"DJ Select": s => (s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && s.intelligence + s.intelligenceImplant >= -50 && canTalk(s) && canHear(s) && canWalk(s) && (s.breedingMark !== 1 || State.variables.propOutcome === 0)),
+	"DJ Select": s => ((s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && s.intelligence + s.intelligenceImplant >= -50 && canTalk(s) && canHear(s) && canWalk(s) && (s.breedingMark !== 1 || State.variables.propOutcome === 0)) &&
+		((State.variables.SlaveSummaryFiler !== "experienced") ||
+		(State.variables.SlaveSummaryFiler === "experienced" && (s.skill[App.Data.Facilities.club.manager.skill] >= State.variables.masteredXP) || (typeof s.career === 'string' && App.Data.Facilities.club.manager.careers.includes(s.career))))),
 	"Clinic": s => ((s.assignmentVisible === 1 && s.fuckdoll <= 0 && (
 		(State.variables.SlaveSummaryFiler === "assignable" && s.assignment !== "get treatment in the clinic") ||
 		(State.variables.SlaveSummaryFiler === "occupying" && s.assignment === "get treatment in the clinic") ||
@@ -4867,32 +4883,44 @@ App.UI.PassageSlaveFilers = {
 		(State.variables.SlaveSummaryFiler === "assignable" && s.fetish !== "mindbroken" && s.assignment !== "learn in the schoolroom") ||
 		(State.variables.SlaveSummaryFiler === "occupying" && s.assignment === "learn in the schoolroom") ||
 		(State.variables.SlaveSummaryFiler === "leading" && s.ID === State.variables.Schoolteacher.ID))),
-	"Schoolteacher Select": s => (s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && canTalk(s) && canHear(s) && canSee(s)),
+	"Schoolteacher Select": s => ((s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && canTalk(s) && canHear(s) && canSee(s)) &&
+		((State.variables.SlaveSummaryFiler !== "experienced") ||
+		(State.variables.SlaveSummaryFiler === "experienced" && (s.skill[App.Data.Facilities.schoolroom.manager.skill] >= State.variables.masteredXP) || (typeof s.career === 'string' && App.Data.Facilities.schoolroom.manager.careers.includes(s.career))))),
 	"Dairy": s => (s.assignmentVisible === 1 && s.fuckdoll <= 0 && (
 		(State.variables.SlaveSummaryFiler === "assignable" && s.assignment !== "work in the dairy") ||
 		(State.variables.SlaveSummaryFiler === "occupying" && s.assignment === "work in the dairy") ||
 		(State.variables.SlaveSummaryFiler === "leading" && s.ID === State.variables.Milkmaid.ID))),
-	"Milkmaid Select": s => (s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 20 && canWalk(s) && canSee(s) && canHear(s)),
+	"Milkmaid Select": s => ((s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 20 && canWalk(s) && canSee(s) && canHear(s)) &&
+		((State.variables.SlaveSummaryFiler !== "experienced") ||
+		(State.variables.SlaveSummaryFiler === "experienced" && (s.skill[App.Data.Facilities.dairy.manager.skill] >= State.variables.masteredXP) || (typeof s.career === 'string' && App.Data.Facilities.dairy.manager.careers.includes(s.career))))),
 	"Farmyard": s => (s.assignmentVisible === 1 && s.fuckdoll <= 0 && (
 		(State.variables.SlaveSummaryFiler === "assignable" && s.assignment !== "work as a farmhand") ||
 		(State.variables.SlaveSummaryFiler === "occupying" && s.assignment === "work as a farmhand") ||
 		(State.variables.SlaveSummaryFiler === "leading" && s.ID === State.variables.Farmer.ID))),
-	"Farmer Select": s => (s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && canWalk(s) && canSee(s) && canHear(s)),
+	"Farmer Select": s => ((s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && canWalk(s) && canSee(s) && canHear(s)) &&
+		((State.variables.SlaveSummaryFiler !== "experienced") ||
+		(State.variables.SlaveSummaryFiler === "experienced" && (s.skill[App.Data.Facilities.farm.manager.skill] >= State.variables.masteredXP) || (typeof s.career === 'string' && App.Data.Facilities.farm.manager.careers.includes(s.career))))),
 	"Servants' Quarters": s => (s.assignmentVisible === 1 && s.fuckdoll <= 0 && (
 		(State.variables.SlaveSummaryFiler === "assignable" && s.assignment !== "work as a servant") ||
 		(State.variables.SlaveSummaryFiler === "occupying" && s.assignment === "work as a servant") ||
 		(State.variables.SlaveSummaryFiler === "leading" && s.ID === State.variables.Stewardess.ID))),
-	"Stewardess Select": s => (s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && s.intelligence + s.intelligenceImplant >= -50 && canWalk(s) && canSee(s) && canHear(s)),
+	"Stewardess Select": s => ((s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && s.intelligence + s.intelligenceImplant >= -50 && canWalk(s) && canSee(s) && canHear(s)) &&
+		((State.variables.SlaveSummaryFiler !== "experienced") ||
+		(State.variables.SlaveSummaryFiler === "experienced" && (s.skill[App.Data.Facilities.servantsQuarters.manager.skill] >= State.variables.masteredXP) || (typeof s.career === 'string' && App.Data.Facilities.servantsQuarters.manager.careers.includes(s.career))))),
 	"Master Suite": s => (s.assignmentVisible === 1 && s.fuckdoll <= 0 && (
 		(State.variables.SlaveSummaryFiler === "assignable" && s.assignment !== "serve in the master suite") ||
 		(State.variables.SlaveSummaryFiler === "occupying" && s.assignment === "serve in the master suite") ||
 		(State.variables.SlaveSummaryFiler === "leading" && s.ID === State.variables.Concubine.ID))),
-	"Concubine Select": s => (s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && s.amp !== 1),
+	"Concubine Select": s => ((s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && s.amp !== 1) &&
+		((State.variables.SlaveSummaryFiler !== "experienced") ||
+		(State.variables.SlaveSummaryFiler === "experienced" && (s.skill[App.Data.Facilities.masterSuite.manager.skill] >= State.variables.masteredXP) || (typeof s.career === 'string' && App.Data.Facilities.masterSuite.manager.careers.includes(s.career))))),
 	"Cellblock": s => (s.assignmentVisible === 1 && s.fuckdoll <= 0 && s.fetish !== "mindbroken" && (
 		(State.variables.SlaveSummaryFiler === "assignable" && s.assignment !== "be confined in the cellblock") ||
 		(State.variables.SlaveSummaryFiler === "occupying" && s.assignment === "be confined in the cellblock") ||
 		(State.variables.SlaveSummaryFiler === "leading" && s.ID === State.variables.Wardeness.ID))),
-	"Wardeness Select": s => (s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && canWalk(s) && canSee(s) && canHear(s)),
+	"Wardeness Select": s => ((s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 50 && canWalk(s) && canSee(s) && canHear(s)) &&
+		((State.variables.SlaveSummaryFiler !== "experienced") ||
+		(State.variables.SlaveSummaryFiler === "experienced" && (s.skill[App.Data.Facilities.cellblock.manager.skill] >= State.variables.masteredXP) || (typeof s.career === 'string' && App.Data.Facilities.cellblock.manager.careers.includes(s.career))))),
 	"Arcade": s => (s.assignmentVisible === 1 && (State.variables.arcade >= State.variables.arcadeSlaves || State.variables.arcadeUpgradeFuckdolls === 1) && (
 		(State.variables.SlaveSummaryFiler === "assignable" && s.assignment !== "be confined in the arcade") ||
 		(State.variables.SlaveSummaryFiler !== "assignable" && s.assignment === "be confined in the arcade"))),
diff --git a/src/npc/agent/agentFramework.js b/src/npc/agent/agentFramework.js
index f3160b904b1b8277303a95bad01a0d710a36251d..7e540ac9ea32c966acca249ad8ce6360d80d6ac1 100644
--- a/src/npc/agent/agentFramework.js
+++ b/src/npc/agent/agentFramework.js
@@ -1,5 +1,5 @@
 App.Data.Facilities.arcologyAgent = {
-	baseName: "arcololgy",
+	baseName: "arcology",
 	genericName: null,
 	jobs: {
 		agentsSlave: {