What is your recruitment process?

Does a candidate submit a resume? Does this resume get screened by a computer or a person? How long does it take to let them know if they are going to be interviewed? Do you let them know if they are unsuccessful? Do they sit through interview after interview? How long do they wait for an offer after interview? When the job offer arrives do they decline it?

The problem is your recruitment process is one size fits all, it's impersonal. With such scare talent and so many competitors hiring the same skills you must make hiring more consultative. 

If your hiring isn't personal, your manager isn't involved and there are multiple stages of approvers once you get to offer your going to struggle. Consider if you HR Manager, Finance Director and Hiring manager need to approve a hire and one of them is on leave for a week. Between interview and an offer being made could take over a week. That gives the candidate the opportunity for meeting many other competitors who can offer the same day or even in the interview securing the talent you want first.