Step 1
Generously season the chuck roast with kosher salt and black pepper. In a large skillet or Dutch oven, heat the olive oil over medium-high heat. Add the roast and sear it on one side, undisturbed, for about 5 minutes, until a deep brown crust forms. Flip the meat and brown all remaining sides lightly, approximately 2 minutes per side, reducing the heat to avoid scorching the oil. Using tongs, transfer the roast to a 6- to 8-quart slow cooker. Add the halved onion, garlic, carrots, celery, red pepper flakes, and beef broth.
Step 2
Cover and cook the beef on low for 8 hours, or until it becomes very tender. Alternatively, the roast can be cooked in a covered Dutch oven in a 300°F oven for about 3½ to 4 hours. The beef should be juicy, tender, and easily shred with a fork. After cooking, use tongs and a slotted spoon to remove the beef, setting the vegetables aside. Slice the beef thinly against the grain and return it to the broth. Stir in the soy sauce and cover to keep warm.
Step 3
Preheat the broiler to low. Split the rolls in half and place each sandwich with a portion of the beef and some jus. Layer a slice of provolone on top of the beef and broil just until the cheese melts—be careful not to overdo it, as this can cause the meat to toughen and the rolls to dry out. The goal is for the roll to remain soft with a slight warmth. Stuff each sandwich with giardiniera, pickled peppers, and fresh parsley leaves if desired.
Step 4
Serve the sandwiches warm, drizzling some of the jus over the meat or alongside for dipping.