Meta data analysis from thousands of studies shows that there is essentially 0 correlation between where someone went to school (or their GPA) and how well they perform on the job once hired. See https://skitch.com/andyparkinson/reqfj/emotional-intelligenc... for a table of methods of selection and their respective validities.
As you can see, the best thing you can do pre-hire is to have someone complete a work-simulation. If you're hiring a mechanic to fix transmissions, give them a broken transmission and a set time period to fix it. If you're hiring a rails developer, give them a small project that takes a few hours to do and see what happens. It is amazing how much you'll learn about that person in those few hours. You'll see how he codes, communicates, etc. The more you can try before you commit the better.
Here's a simple example... When we hire front-end developers, we have a standard PSD file that we hand applicants and give them 2 hours to slice using tableless html/css. No matter how much I fall in love someone when I interview them, the results of this simple exercise will always sober me up (or throw me head over heals). Its gotten to the point where I don't even want to spend more than a few minutes talking front-end developers until I see the results of this exercise.
Its not perfect. The correlation between results and success is still very weak, but its the best we have.