Heat olive oil in a large pot over medium heat. Add the onion, carrots, and bell pepper. Cook for 5–7 minutes, until veggies begin to soften.
Stir in the garlic and sauté for 1 minute, just until fragrant.
Add chili powder, cumin, smoked paprika, and oregano. Stir and cook for 30 seconds to toast the spices.
Mix in tomato paste and stir for another minute. Then pour in the crushed tomatoes and let simmer for 2–3 minutes.
Add the beans, corn, zucchini (if using), and broth. Stir to combine.
Bring to a boil, then reduce heat and let simmer uncovered for 25–30 minutes, stirring occasionally.
Finish with a splash of lime juice, adjust seasoning to taste, and remove from heat. Let sit for 5 minutes before serving.