Preheat the oven to 425°F. Line a large baking sheet with parchment paper.
Place the cubed sweet potatoes, 2 teaspoons olive oil, garlic powder, ½ teaspoon salt, and ¼ teaspoon black pepper in a large bowl. Toss until evenly coated.
Spread the sweet potatoes in a single layer on the prepared baking sheet.
Roast for 25 to 30 minutes, stirring halfway through, until tender and lightly browned.
Heat 1 tablespoon olive oil in a large skillet over medium heat.
Add the sliced onions and cook for 12 to 15 minutes, stirring occasionally, until soft and golden brown.
Add the ground beef and cook for 5 to 7 minutes, breaking it into small pieces with a wooden spoon, until browned and fully cooked.
Add the minced garlic and cook for 30 seconds.
Stir in the Worcestershire sauce, dried thyme, remaining ½ teaspoon salt, remaining ¼ teaspoon black pepper, and beef broth.
Mix the cornstarch and water in a small bowl until smooth.
Stir the cornstarch mixture into the skillet and cook for 1 to 2 minutes, until the sauce thickens slightly.
Divide the baby spinach and roasted sweet potatoes evenly among 4 bowls.
Spoon the French onion beef mixture over each bowl.
Sprinkle with shredded Gruyere cheese and chopped fresh parsley.
Notes
Tips and Tricks
Give the Onions Enough Time - Don't rush the onions. They should be soft and golden before you add the beef. If they start browning too quickly, reduce the heat slightly.Keep the Sweet Potatoes Even - Cut the sweet potatoes into similar-sized cubes so they roast evenly. Smaller pieces may cook faster, so check them near the end of roasting.Use Lean Ground Beef - Lean ground beef works well because the sauce doesn't need much additional fat. If there's a lot of grease in the skillet after browning the beef, drain the excess before adding the broth.Adjust the Sauce - If the beef mixture becomes too thick, stir in a tablespoon or two of additional broth until it reaches your preferred consistency.Let the Cheese Melt - Sprinkle the Gruyere over the beef while it's hot. Finely shredded cheese will melt more easily than thick shreds.
Storing and Reheating
Refrigerating - Store the cooked beef mixture and roasted sweet potatoes in airtight containers in the refrigerator for up to 3 to 4 days. Keep the fresh spinach separate so it doesn't become soggy.Freezing - Freeze the cooked beef mixture and roasted sweet potatoes in separate freezer-safe containers for up to 3 months for best quality. Add fresh spinach, cheese, and parsley after reheating.Reheating in the Microwave - Place the beef and sweet potatoes in a microwave-safe dish. Cover loosely and heat in 30 to 60-second intervals, stirring between intervals, until thoroughly heated to 165°F.Reheating on the Stovetop - Warm the beef mixture in a skillet over medium-low heat. Add a splash of broth if needed. Reheat the sweet potatoes separately, then assemble the bowls with fresh spinach and toppings.