If I were to ever to hire someone, what I would do is to get them to solve a few assignments first.
Now I would prefer to take their hours and will pair with them and see how they go about solving the problem. I had applied to one company and this same happened with me in the process. I got the offer and it was very good experience.
Second option is to let them do the assignments in peace at their home. Now this needs to be comparatively more challenging unlike the above case because candidate is at liberty of getting help from anywhere in the world. Ask them to put it on github and host somewhere better(if applies). Then better is to schedule an interview and discuss on it. Discuss on it a lot - every decision they took in design of project, language etc, go beyond what is already implemented and test their though process on extended(potential) additional features.
This is a way of doing proper assessments of candidates as per my experience(as a candidate only :).