First, we defined the skills we're looking for i.e. Programming / SysAdmin / Cybersecurity.
Our process goes as follows:
1. We ask candidates to answer a quizz by phone, with questions in the 3 chosen fields. Duration = 1h.
2. We ask candidates to solve remotely with Google Docs 5 real-world problems asking for skills in Algorithmics, Data Modeling, Object-Oriented Programming, Software Design, and Parsing. We also add a bonus question like "how many people can get into a train". Duration = 1h.
3. We have a HR meeting at our office with a non-technical member of the team. Duration = 1h.
The quizz helps us to remove of our list the candidates that do not have the technical culture we're looking for, and to see what they already have worked on.
The 5 problems helps us to see how the candidates can code, the bonus question helps us to see how they approach new issues and manage their stress.
The final HR meeting is very typical: we try to see if we would be happy to take a 6 hours long flight with the candidate.
Most candidates do not go through first step, and roughly half on them do not go through second step.
This simple process definitely helped us to reduce the time spent on hiring and to make the really good candidates shine.