Cook shells in salted boiling water until al dente, about 8 to 10 minutes. Reserve ½ cup pasta water, then drain.
While pasta cooks, set a large deep skillet over medium high heat. Add a little olive oil if needed, then the ground beef. Cook, breaking it up, until browned, about 5 to 7 minutes. Drain extra grease.
Add onion and cook 3 to 4 minutes until softened. Stir in garlic and cook 30 seconds.
Stir in tomato sauce, beef broth, Italian seasoning, paprika, garlic powder, onion powder, salt, and pepper. Simmer on medium low 5 to 7 minutes.
Turn heat to low and stir in the cream. Let it warm through 2 to 3 minutes.
Add drained shells to the skillet and toss in the sauce. If it seems too thick, add a splash of pasta water.
Stir in the cheese a handful at a time until melted and creamy. Taste and adjust salt and pepper.
Let sit off the heat 2 to 3 minutes so the sauce clings to the shells. Garnish with parsley if you like and serve.
