--- a/net/minecraft/world/entity/ai/behavior/BehaviorCareer.java
+++ b/net/minecraft/world/entity/ai/behavior/BehaviorCareer.java
@@ -9,6 +9,12 @@
 import net.minecraft.world.entity.npc.EntityVillager;
 import net.minecraft.world.entity.npc.VillagerProfession;
 
+// CraftBukkit start
+import org.bukkit.craftbukkit.entity.CraftVillager;
+import org.bukkit.craftbukkit.event.CraftEventFactory;
+import org.bukkit.event.entity.VillagerCareerChangeEvent;
+// CraftBukkit end
+
 public class BehaviorCareer {
 
     public BehaviorCareer() {}
@@ -37,7 +43,14 @@
                                     return villagerprofession.heldJobSite().test(holder);
                                 }).findFirst();
                             }).ifPresent((villagerprofession) -> {
-                                entityvillager.setVillagerData(entityvillager.getVillagerData().setProfession(villagerprofession));
+                                // CraftBukkit start - Fire VillagerCareerChangeEvent where Villager gets employed
+                                VillagerCareerChangeEvent event = CraftEventFactory.callVillagerCareerChangeEvent(entityvillager, CraftVillager.nmsToBukkitProfession(villagerprofession), VillagerCareerChangeEvent.ChangeReason.EMPLOYED);
+                                if (event.isCancelled()) {
+                                    return;
+                                }
+
+                                entityvillager.setVillagerData(entityvillager.getVillagerData().setProfession(CraftVillager.bukkitToNmsProfession(event.getProfession())));
+                                // CraftBukkit end
                                 entityvillager.refreshBrain(worldserver);
                             });
                             return true;
