You can check with a number of sources. Angie's List is one source, another source is the local builder's association and ask if any co-workers, neighbors or friends have used one that they will recommend. After you get a list together, be sure to check with your state licensing to see if they have had any complaints. One other thing to remember is to get a minimum of 3 estimates from the ones you have checked out. In my area, an estimate is usually good for 30 days for roofers, plumbers or other contractors. Make sure everything is in writing and keep a copy of the contract between you and the contractor. One thing I learned early on was not to pay money up front. Be sure you have in the contract when payment or payments are due. When I put a roof on my house, I paid for the shingles but my contractor was not paid until the job was completed and everything was cleaned up around my home. Roofing nails can get in the yard and parking areas so make sure that the contractor has one of the large magnets to go over your yard and parking areas. Saves on flat tires.
Hope you find a competent roofer soon but always remember you get what you pay for and cheaper is not always better