Heat olive oil in a large skillet over medium-high heat. Sear the beef chuck roast on all sides until browned, about 2-3 minutes per side.
Remove the beef from the skillet and set aside. Add the chopped onion to the skillet and cook until softened, about 5 minutes. Add the garlic and cook for another minute.
Add the chili powder, cumin, smoked paprika, and cayenne pepper (if using) to the skillet and cook for 30 seconds, stirring constantly.
Place the seared beef in a slow cooker. Pour in the beef broth and diced tomatoes. Season with salt and pepper.
Cover and cook on low for 6-8 hours, or on high for 3-4 hours, or until the beef is fork-tender.
Remove the beef from the slow cooker and shred it with two forks. Return the shredded beef to the slow cooker and stir to combine with the sauce.
Serve the Mexican shredded beef in tacos, burritos, salads, or however you like!
Notes
This recipe is great for meal prepping! Store leftovers in the refrigerator for up to 4 days or in the freezer for up to 3 months.