Start by seasoning the beef chuck roast with salt and black pepper on all sides.
Heat the olive oil in a large skillet over medium-high heat. Sear the beef on all sides until browned, about 2-3 minutes per side. This helps lock in the flavors and juices.
Transfer the seared beef to your slow cooker.
In the same skillet, add the sliced onion and minced garlic. Sauté until softened, about 5 minutes.
Pour the beef broth, water, Worcestershire sauce, oregano, basil, thyme, and crushed red pepper flakes (if using) into the skillet. Stir to combine and scrape up any browned bits from the bottom.
Pour this mixture over the beef in the slow cooker.
Cover the slow cooker with a lid and cook on low for 8 hours, or until the beef is tender and easily shreds with a fork.
Once the beef is done, remove it from the slow cooker and shred it using tongs or a fork. Return the shredded beef to the slow cooker and mix it with the juices.
Split the sandwich rolls and toast them lightly if desired.
Pile the shredded beef onto each roll, then top with giardiniera and a slice of provolone cheese if using.
Serve the sandwiches with a side of the cooking juices (gravy) for dipping.