Heat olive oil in a large pot over medium heat. Add onions, carrots, and celery, cooking until the onions become translucent (about 5 minutes).
Add garlic, jalapeño, and bell pepper. Cook for another 2-3 minutes until fragrant.
Stir in cumin, chili powder, smoked paprika, and oregano. Toast the spices for 30 seconds to release their flavors.
Add black beans, diced tomatoes, and vegetable broth. Bring to a boil, then reduce heat and simmer for 20-25 minutes.
Using an immersion blender, partially blend the soup, leaving some beans whole for texture. If you don't have an immersion blender, transfer about half the soup to a regular blender, then return it to the pot.
Season with salt and pepper to taste. Simmer for an additional 5 minutes.
Serve hot with your choice of toppings.