In a large pot, heat the olive oil over medium heat. Add the chopped onion and garlic, and sauté for 3-4 minutes, until the onion is translucent.
Add the ground beef to the pot. Cook until the meat is browned, breaking it up with a wooden spoon, about 5-7 minutes. Drain any excess fat.
Stir in the chopped carrots, celery, and bell pepper. Cook for an additional 5 minutes, stirring occasionally.
Add the diced potatoes, diced tomatoes (with juice), beef broth, green beans, thyme, basil, salt, and pepper. Stir to combine.
Bring the mixture to a boil, then reduce the heat to low. Cover and let it simmer for 30-35 minutes, or until the vegetables are tender.
Taste and adjust seasoning if needed. Serve hot, garnished with fresh parsley if desired.
You can customize this soup by adding other vegetables like zucchini or corn.
This soup can be stored in the refrigerator for up to 3 days or frozen for later use.
For a spicier kick, add red pepper flakes to taste while cooking.