Prepare a set of simple questions, where each question can be solved in about ~20 lines of code and doesn't require more than 5 minutes of thinking.
When you get applicants, send them 2 or 3 such questions, (maybe mark one of them optional).
If they pass, bring them in for an in-person interview. There, show them a couple more questions. Maybe have another set of question for in-person interviews that are a bit more challenging.
This is necessary because when they submit solution via email, you can't tell if they solved it themselves or had a friend help them with it.
Also, prepare a set of questions that don't have a specific/definite answer. Like, "Suppose you are tasked with building a program that does X, Y, and Z. How would you go about implementing it? What high level components do you think you will need?"