Bring a large pot of water to a boil and line a small baking sheet with parchment paper. Dip the apples in the water for a few seconds, then remove them with a slotted spoon and rub dry to remove any wax from the peel.
Remove the stem from each apple and insert a wooden skewer through the core. Set them onto the parchment-lined baking sheet and into the fridge or freezer to chill.
In the meantime, melt the butter over medium heat in a large, thick-bottomed pot. Once melted, stir in the brown sugar, sweetened condensed milk, and corn syrup until well combined.
Bring the mixture to a boil, stirring constantly, then reduce the heat to medium. Stir often to prevent burning.
Let the caramel boil until it reaches around 248℉ on a candy thermometer, about 15-25 minutes. If you drop a bit of caramel into a glass of cold water, it should form into a firm but malleable ball.
Remove the pot from the heat and add in the vanilla extract and salt (be careful, as the caramel will spit). Take the chilled apples out of the fridge and onto your work station.
Working one at a time, dip each apple into the hot caramel, twisting the wooden skewer to coat. Let any excess caramel drip off of the apple, then flip the apple upside down for around 20 seconds to let the hot caramel set (this prevents any caramel from pooling around the apple). Immediately dip the apple into the desired toppings and set onto the prepared baking sheet to rest.
Repeat with the remaining apples—if your caramel gets too thick, reheat it on the stove for a minute or two.
Let the apples cool until completely set, around 1 hour, or refrigerate until firm. Leftover caramel apples can be stored in the fridge for up to three weeks.