My policy is that anyone that completes the technical screen (2 – 4 hours of work) gets an on-site interview.
Just this morning, I had to spend about 20 minutes debugging a candidate’s code to get it to both build and run, but he’s still getting invited for an on-site.
However, it's infuriating to have spent so much time just to learn that the engineering team didn't want me anyways. If I got rejected for a bad work sample - that's fine. Getting rejected because the hiring manager couldn't be bothered to look at your resume before assigning tasks - not cool.
-----
Good on you for bringing candidates in. Technical screens are tough and can be mis-understood by candidates. They should only be a tool to support other data points.
I told people to avoid this place because of how bad of an experience it was.
This company had me do an initial technical screen (2-hours of work) and expressed great interest in the work I did. They asked me to complete a follow on "work sample" which I promptly completed with extras (error handling, specs, etc).
After completing the work sample (a non-trivial amount of effort), they suddenly decided they weren't interested in me. I hadn't even talked with a person and they went from being "extremely excited" to "uninterested" after getting me deep into their process.
Apparently, the recruiter was pushing me through the steps and the technical team hadn't even looked at my resume - or even considered it worthwhile to schedule a call with me.