If it is a company with more than 2 or 3 employees you are already going to be given a significant markup right off the bat for their marketting and commercial office expenses and have obfuscated costs, individual contractors have lower overhead. Location is also important, if I gotta drive an hour each way for a job that is going into the price. Getting legit parts, especially with short notice, also costs more. While I might buy a $8 ignitor on amazon for my own furnace or a friends, I cant risk crappy counterfit parts for regular customers that might blow up in a week so now its a $35+ part.
Buying your own parts can help but can also burn you if its wrong, or cost the same if something extra is needed that wasnt expected and requires a second visit or bought on short notice from a local parts dealer. A contractor often eats the costs of wrong parts they ordered and just hopes they can use it elsewhere later, but if you bought the parts that is just cost on you.
My recommendation, which is still probably of limited help and won't always be worth it, is to start by hiring a local handyman instead of a specialist and having atleast 2 weeks of lead time for parts. Of course finding a worthwhile handyman can have its own difficulties because so many tradesmen leave the industry after realizing corporate contracting pays workers like trash while taking a lot of the most valuable and worthwhile contracting work off the market from independent contractors.