Heat oil in a large pot or Dutch oven over medium-high; brown beef on all sides 5-7 minutes, in batches if needed to avoid crowding.
Cook onion with beef 3-4 minutes until softened; add garlic and cook another minute until fragrant.
Add broth and tomatoes with juices; stir in tomato paste until combined. Cover; simmer 30 minutes.
Add potatoes, carrots, celery, thyme, bay leaf, salt, and pepper; boil, reduce heat to low, and simmer 25 minutes.
Add beans and corn; simmer another 10-15 minutes until vegetables are tender and beef cooked through.
Discard bay leaf; adjust salt and pepper to taste.
Serve hot with crusty bread or crackers. Make ahead for better flavor next day.