Heat the oil: Place a large pot or Dutch oven over medium-high heat. Add the oil and let it shimmer.
Sauté the vegetables: Add onion, bell pepper, and jalapeños.
Cook 4–5 minutes until softened. Stir in garlic and cook 30 seconds until fragrant.
Brown the meat: Add ground beef. Break it up with a spatula and cook until no longer pink, about 6–8 minutes.
Don’t drain unless there’s excess grease; a little fat adds flavor.
Bloom the spices: Stir in chili powder, cumin, smoked paprika, oregano, coriander, onion powder, cayenne, salt, and pepper. Cook 1 minute to toast the spices.
Add tomato base: Stir in tomato paste and cook 1 minute. Add diced tomatoes and beef broth.
Scrape up any browned bits from the bottom of the pot.
Simmer: Bring to a gentle boil, then reduce heat to low. Cover partially and simmer 20–30 minutes, stirring occasionally, until thickened and flavors meld.
Finish: Stir in apple cider vinegar or lime juice to brighten. For a creamier texture, mix in cream cheese or heavy cream until melted and smooth.
Taste and adjust: Add more salt, pepper, or cayenne as needed.
If you want it thicker, simmer uncovered a few more minutes.
Serve: Ladle into bowls and top with cilantro, green onions, cheese, sour cream, or avocado.