Put the onion, red pepper, carrot and garlic in a food processor and pulse until finely chopped, scraping the sides occasionally, about 12-14 pulses.
Heat 1 tablespoon of the olive oil in a large skillet over high heat. Add the ground beef, and season with salt and pepper. Cook, breaking up the meat with a wooden spoon, until the meat is browned and cooked through. Using a slotted spoon, transfer the meat to a plate. Discard any fat in the pan.
Heat the remaining tablespoon of olive oil in the same skillet over medium heat. Scrape in the vegetables from the food processor. Season with salt and pepper. Cook, stirring often, until the vegetables are tender, about 5 minutes.
Add the chili powder, ground cumin, garlic powder and tomato paste. Cook, stirring, 1-2 minutes. Remove the pan from the heat. Add the cooked beef, tomato puree, ketchup, Worcestershire sauce, cider vinegar, balsamic vinegar, maple syrup, sriracha (if you like it spicy, feel free to add a few more teaspoons!), and water. Season with salt and pepper.
Place the pan back over medium heat, and bring the mixture to a boil. Reduce the heat to a simmer, and cook 10 minutes. If needed, add a few more splashes of water to thin. Taste and season with additional salt, pepper, and/or sriracha as desired (don’t be shy with the seasonings). Serve warm on soft buns.