Here is what we do to vet a contractor:
1) Verify license, bond, insurance. Emphasis on verifying
2) References are a must and must be actual business references not friends/family. For example we ask for trade references that they use like suppliers of materials, and we call to verify they pay their bills on time. This weeds out the one with bad business management skills
3) Ask for photos of work, most don't have any but if they do they will have lots
4) Ask how they charge for work, I've found that they are almost always never consistent and you might pay $30 an hour for tile work and $100 an hour for a window replacement if you are using a jack of all trade contractor (not all of them are bad, they cant master everything with doing work and managing their quotes...you will need to learn to negotiate pricing with these)
5) If you want no headaches at all, be prepared to pay more. The contractors that typically charge more should have the following
a) brick and mortar building where they are located
b) company vehicles that arent old pieces of crap
c) proper website, phone number that someone always answers, responds to emails each day or sooner
d) has a proper printed invoice/quote for all work
6) one thing that will irritate the crap out of you is, they ALL want to come out and lay hands and eyes on the project before they quote no matter how simple or difficult the work is and it doesn't matter if you send them a 4k video that been shot and produced by a world class movie producer. It's almost like they enjoy wasting drive time to quote out something and they can add money to the quote that way.
7) Set deadlines for every project and stick to them and have penalties set for the contractor missing the deadline. Any seasoned professional will know how long it will take and they will under promise and over delivery on that time and usually quality.
8) Never pay more than 50% up front and depending on your state, there are limits on how much you can pay as a deposit or down payment. California limits you to $1000 maximum. I personally, pay nothing up front ever. This is a sign of cashflow issues for a contractor and any business really unless you're elon musk and take deposits to hold a spot in line, you really dont need deposits if youre business is healthy.
Another thing we do is have a form with the contractor information on it for your own use. Im able to track job completion dates, issues that we had, and the form helps to give a "score" on the contractors performance. Over several jobs, if the avg is less than 70% we have a talk about the performance and if they are willing to listen I give them another chance, if they blow it off, I never use them again.
The absolute most important part of all of all is payment....if you manage your contractors like I do, you absolutely have to pay on time, same day the job is done and approved. You must go out of your way to make sure they are paid, checks dont bounce for any reason, that money will go to their account no matter what! If you cant do this, then you should give your self a score of ZERO and never hire yourself again!