Heat oil in a large pot over medium-high heat. Season beef with salt and pepper; brown in batches until deeply browned, about 5 minutes. Remove and set aside.
Add onion to pot and sauté until softened, about 4 minutes. Add garlic and cook 1 minute until fragrant.
Return beef to pot. Stir in carrots, celery, cumin, chili powder, and oregano; cook 2 minutes.
Add diced tomatoes (with juice) and beef broth. Bring to a boil, then reduce heat and simmer, covered, for 45 minutes.
Stir in zucchini and corn; simmer 10–15 minutes until vegetables are tender.
Taste and adjust seasoning with salt and pepper.
Ladle soup into bowls and serve with desired toppings of cilantro, avocado, lime, or jalapeño.
Notes
Substitute chicken or vegetable broth for a lighter version.
Add a diced potato or sweet potato in step 4 for heartier texture.
Spice it up with a chipotle pepper in adobo or extra chili powder.
Leftovers keep well—store in refrigerator up to 4 days or freeze up to 3 months.
Make ahead: assemble and simmer, then reheat gently before serving.