Chalmers' suggestion is a good one. If that doesn't work, and if Toptal doesn't work you can also try
If you're open to working with a non-local freelancers, here's some suggestions:
In your postings
1) request that everyone responds with their their Trello and Bitbucket / Github account names (so you know they at least have some experience with the previously mentioned sites).
2) say "no agencies". You want to be working with one accountable individual, not an agency of 10 anonymous people.
Then use Trello to assign each of the respondents the same very straight forward task which you estimate should take about 1 hour to accomplish. Explicitly state the deliverables you'd like to have when they finish the task (e.g. a Bitbucket code commit and testable demo of what you asked for). Use their performance on that first 'test task' as your assessment of whether you'd like to continue working with them.
Continue to use Trello to manage their tasks and monitor progress. Set up 4 columns titled, "To Do", "Doing", "Ready for Review", "Approved" (or combine the last two into "Done").
Whenever you assign them a task, break down the task into small chunks. Make the chunks as small as you can (within reason, and to the extent that your knowledge allows), and tell your devs that if any chunks seem large, that they should further break those chunks down into bite size pieces.
For instance, for the overall task of making a new webpage, _you_ might break it down as follows:
1) Set up a database
2) Make a form that takes user email, name, and phone number and adds them to database
3) Have our site send an email to everyone above the age of 50 each week
When your devs take a look at it, _they_ might further break down the third step into:
A) Set up an email service
B) Connect it to the client database
C) Figure out how to query the database for certain users
D) Have it send emails to users over 50
Depending on your approach and the freelancer you're working with, if you want to be more micro-manage-y:
You might want to tell them to only have tasks in the "Doing" column if they're actually sitting at their desk working on it. For instance: not to leave a task in "Doing" overnight after work. That way you can actually see what they're working on and how long it takes.
At the end of each day / week when you review the tasks completed, look for ones that took a longer time than average (since, on average, all the tasks should be broken down into sub-tasks of approximately the same difficulty). Ask them about those tasks and why they took longer to do. It may be because they neglected to further break it down into chunks as you had asked (in which case you ask them to do that next time), or it may be that some unexpected snag came up, or it may be a hard task that can't be further broken down.
In any case, listen to their explanation and you should be able to tell if it sounds reasonable, and if it sounds fishy, google the problem they say they encountered. You'll be able to get a better feel of their work ethic and honesty by how they answer the question, without worrying as much about what their actual words are. Make sure that when you ask for more details about why a task took longer, you don't do it in a probing way. Make sure they understand that you're doing it for your own learning and to help predict and properly plan future timelines.
best of luck, and let me know if you'd like any additional tips on any of the above,