Out of your 4 criteria, I'd say (personally) that the important ones are "Loves what you're doing" and "Loves your team". If you hire someone who is a Ruby god but has no passion for the problem they're solving, or causes problems with your existing company, culture, or team, you're probably going to have a net loss. Working remotely is a different topic and can be done well (http://blog.davidtate.org/2013/01/companies-that-support-rem...)
I did want to talk a bit about finding those passionate developers, but thought it'd make for a separate blog post later on. One key quote I've heard good recruiters say: "The good developers you want to hire aren't looking for jobs, they already work somewhere".