Heat vegetable oil in a large cast iron skillet over medium high heat. Add ground beef and cook until browned, about 3-5 minutes, making sure to crumble the beef as it cooks; drain excess fat.
Add onion and bell pepper. Cook, stirring occasionally, until tender, about 3-4 minutes.
Stir in tomato paste, garlic, paprika, chili powder and cayenne pepper until fragrant, about 1 minute.
Stir in beef stock, scraping any browned bits from the bottom of the skillet.
Stir in ketchup, Dijon, Worcestershire and brown sugar; season with salt and pepper, to taste. Bring to boil; reduce heat and simmer, stirring occasionally, until thickened and flavors have blended, about 15-20 minutes.
Serve immediately.
Notes
Use 90% lean ground beef. 85-90% lean ground beef is ideal for sloppy joes - more fat will make it too greasy, too lean will make it too dry.
Finely dice the onion and bell pepper. The onion and pepper add texture to the sloppy joes, dicing finely to melt in the sauce (and to avoid large chunks).
Let it simmer. Let the mixture simmer for at least 15-20 minutes for that "sloppy" consistency - thick, rich and saucy!
Adjust the consistency. For a thicker consistency, simmer for longer. If the sauce is too thick, thin it out as needed by stirring in 1 tablespoon of water, adding in more as needed.
Toasting the buns is key. Toasting the buns beforehand will make a huge difference, preventing the buns from becoming soggy and the sandwich from falling apart.
Freeze as needed. The leftovers can keep in the freezer for up to 3 months, ideal when frozen in single-serving portions for easy reheating. To freeze, let cool completely and portion into plastic freezer bags, squeezing out any excess air before sealing. Lay the bags flat in a single layer in the freezer (this will help them freeze quickly). To reheat, thaw overnight in the fridge, reheating over low heat and stirring occasionally until heated through.