These days I give applicants a written technical test BEFORE I invite them to an interview. That way
- There is something tangible and technical to talk about during the interview
- Inappropriate applicants don't consume much of my time
- I get an idea about each applicant's coding style, attention to detail, approach to testing, etc, etc
- Applicants gets a better idea of what tech skills we are looking for
I recently interviewed someone who did ok on the preliminary test, although one of her answers failed (badly) under some conditions. During the interview I demonstrated the faulty code and asked her to debug it on the spot. It was very enlightening.
I would not recommend this approach if you think personality is more important than technical aptitude.