The emphasis on cultural fit seems so strange to me, since when I was hiring I wanted cultural <i>diversity</i>, not cultural fit. I did want everyone to have technical ability, communication skills and "character," by which I meant honesty, open-mindedness, positive attitude, and ability to focus on work. But beyond that, I saw putting a programming team together like making a goulash: you want a variety of ingredients and flavors to make it come out right:<p>* Some programmers like following and trying out the latest and greatest tools ands versions; some like sticking with solid and established tools.
* Some like knowing a little about everything. Some like knowing a lot about one thing.
* Some like using databases for everything. Some avoid them.
* Some like polishing and optimizing code. Some like rapid prototyping.
* Some <i>enjoy</i> writing documentation. Some don't.
* Some work at night. Some work early in the morning.
* Some are extroverts. Some are introverts.<p>And I was happy to have a mix of all of them.<p>And as for whether they liked playing video games, knitting sweaters, playing softball, going to church, drinking beer, hunting deer, or reading science fiction or anything else, not only didn't I care about that, I felt it was ethically wrong to base hiring decision on what they did outside of work.
Perhaps calling it "culture fit" is the problem - it's not specific enough. Define more clearly the characteristics and signals you're looking for. Evaluate your team and culture to better identify the characteristics you're trying to match in a candidate. For instance, instead of "culture fit", say you are looking for signals that someone is "passionate about web development", then think about evidence that supports the characteristic: eagerly learning, involvement with development-community, excited about new technology, willing to experiment, etc. You can also provide evidence that shows a candidate isn't "passionate". Just a matter of semantics.