If you've been interviewing this long and haven't been able to find anyone suitable that's a bit of a red flag to me. That red flag is either for the geographical area you're in, or possibly in terms of your standards for selecting an entry level coder. Of course, I don't know your area specifically or your criteria so I apologize if that seems harsh.
It shouldn't be that hard to find someone entry level as piles of students graduate each and every year with C/S degrees and minimal work experience. We usually have a much harder time finding qualified and experienced developers. Implementing a phone screen will help immensely.
Anyhow my suggestions for the phone screen would be (since you'd prefer a C# skillset):
Ask some personality based open ended questions. These will help you determine if they're a possible personality fit before bringing them in. Open ended questions are surprising in that some candidates will completely sink themselves or shine brilliantly. Having loose boundaries on these facilitates ease of conversation and hopefully will allow you to see a bit more of the candidates for who they are and how they think.
Some examples:
- How would you approach building a
software product?
- What do you think the single most important factor is to a projects overall success or failure?
- What does success mean to you?
Ask some basic object oriented design questions that are deeper than just definition based. Digging deeper (but not too deep) will prevent the candidates that have Google up on their laptop screen from breezing through. It's always better to get them to write code, but that's what can be handled in the in-person interview. Getting them to elaborate on basic concepts should be easy, even if they're fresh out of school. If they can't grasp the basics, you don't want them.
Some examples:
- What is polymorphism? Can you explain
a working example?
- What is information hiding? When would you use it?
Hope this helps.