Difficult question to answer. I've been doing loans very successfully for 8 years, and the best rates/fee's is not something that remains static. Some days my company is kicking ass, and other days I'm embarrassed by how far out of the market we are. Lately credit unions have not been very competitive, I probably wouldn't spend time in that direction. If you're computer savvy, lendingtree.com will put you in touch with several lenders who compete aggressively for your business. Most likely you'll hear from loandepot.com and Quicken first if you go that route, but make sure you get additional quotes as they pay big money to be the first to the table when you submit your info, and their rate/fee structure may be slightly higher on account of that expense, although they're the largest non-bank lenders and you have more recourse with bad quotes/poor customer experience. Another thing to consider when you're purchasing a home rather than refinancing...lenders have different rates compared to each other on different days and the market is also moving at the same time. Kind of like gas stations that share an intersection. I would select 3 to work with, then just worry about finding your home. You can't lock a rate until you have a contract anyway. When you have a fully executed purchase contract in hand you need to compare lenders on the same day because rates change daily and that will get you the best comparison. Also, mortgage bankers are ABSOLUTELY NOT made equal, nor is their level of experience. You can at least see their work history by checking them out on the NMLS consumer access website. I use this info personally to shoot holes in my competition who are often new to the industry. Google 'nmls consumer access', plug in the required info and bingo, you have their entire (self reported) work history. Do they job-hop? Did they work at Papa Johns six months ago? Experience is obviously important (although it doesn't go far if you're working with an idiot) and tenure gets a banker leverage with his/her management. Both are important. Ask plenty of questions that require a banker to think. If the answers are mush, or if they change the subject, or sound like they're just making shit up, or rush you off the phone, then you'll want to move on. Wrap up the call in 30-40 minutes tops though; good bankers don't need your business and will view you as a time-suck if you linger for an hour, and will subsequently avoiding the crap out of you. If you have follow-up questions, move to email. We don't have time for needy customers if we're very good, so do your research, ask intelligent questions and be succinct. If they field your questions well, you're in decent shape.
Good luck with your home purchase!