I'd love it if I could just hire people who had already done some work for me, or who had a really good Github portfolio. However demanding that rules out loads of other good candidates. I find the take home project to be the best alternative. I normally only give them to people that I expect to interview. I don't expect many to "fail", though it filters out the worst and identifies some stars. I find the conversation that I then have with them about it in the interview is the most useful part.