--- a/net/minecraft/world/entity/ai/behavior/AssignProfessionFromJobSite.java
+++ b/net/minecraft/world/entity/ai/behavior/AssignProfessionFromJobSite.java
@@ -38,7 +_,14 @@
                                             .findFirst()
                                     )
                                     .ifPresent(reference -> {
-                                        villager.setVillagerData(villager.getVillagerData().withProfession(reference));
+                                        // CraftBukkit start - Fire VillagerCareerChangeEvent where Villager gets employed
+                                        org.bukkit.event.entity.VillagerCareerChangeEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callVillagerCareerChangeEvent(villager, org.bukkit.craftbukkit.entity.CraftVillager.CraftProfession.minecraftHolderToBukkit(reference), org.bukkit.event.entity.VillagerCareerChangeEvent.ChangeReason.EMPLOYED);
+                                        if (event.isCancelled()) {
+                                            return;
+                                        }
+
+                                        villager.setVillagerData(villager.getVillagerData().withProfession(org.bukkit.craftbukkit.entity.CraftVillager.CraftProfession.bukkitToMinecraftHolder(event.getProfession())));
+                                        // CraftBukkit end
                                         villager.refreshBrain(level);
                                     });
                                 return true;
