The best advice that I can offer you is: Check for the culture-fit first. Next, evaluate the ability to ship code. Both are equally important, but if there is no culture fit in the first place it doesn't matter even if you hire the best possible candidate to work for you. I have seen people hire great coders without checking culture-fit, professional etiquette first (myself included) due to several reasons. Even if you need to build your team quickly and you are under pressure, don't work with people who lack basic level of professional courtesy. Take your time and hire the right set of people. As Mark Zuckerberg says,
You should never hire someone to work for you unless you would work for them in an alternate universe.
Regarding the second part, I would say referrals + take home assignment works best for me. If the assignment is a bit challenging, consider making it a paid one (if possible).