I'm a freelance software engineer and have worked with startups for six years. You definitely don't hire a company. You're going to pay way too much for a product that's way overboard. I've seen this many many times. Do not outsource to India, or anywhere. Yes, they are cheaper... but there's a reason. The language is different which will cause a lot of problems, but, it's not just that. The culture is different which has a huge baring on fulfilling your app requirements.
What you want is someone to work with you on contract. Someone who is preferably local. Someone who has great communication skills. Look at their achievements. Don't give them a code test. That's really amatourish. A code test wont tell you what they know. Ask them to talk about the projects you have done. As a tech friend to have a tech conversation with them. Not ask them point blank questions of some weird shit that would be on a CS college exam. No one cares about that, and, trust me, you don't. If you want something done, ask them how they have approached these types of projects before. How they work with clients. How they communicate.
Hit me up if you want to chat about this. I can give you a lot of advice, more than I can write, since I've been doing this for a while.