What's a tactful, respectful way to notify job applicants that you won't be hiring them? I see a lot of angry online discussion of this issue. Nobody seems to like the common "if you don't hear back, you're not hired" approach, but it's easy to go wrong in other ways (too short, too long, too condescending, too cheerful, too early in the hiring season so it seems insulting, too late so it's no longer useful, etc.). Of course, part of the problem is that being rejected is intrinsically painful, so nobody's ever going to enjoy a rejection letter. The question is how to provide useful and timely information while avoiding adding unnecessary pain.
Just from a perspective of one who has been rejected a lot of times (although from schools and research programmer, then as an undergraduate), fast and informative feedback is the most important.
For me there is little difference between hearing "the competition was very high" and "get out". Saying that "there was only one place" when if fact you don't want to hire someone is very short sighted. It may make the decision smoother, but in a long run it will create false impressions and hopes; and, in fact, such approach makes it impossible to say that actually you want to hire someone, but you run out of positions (see How to show interest in a candidate when no positions are available?).
- waiting long is bad both psychologically and for practical reasons (i.e. other plans); I don't see a reason for not rejecting as soon as you are sure,
- it is important to distinguish if you don't want someone now or at all,
- any feedback is of great value;
otherwise one gets no idea what was wrong, if it makes sense to apply again and how to improve; I would love to hear "there were 5 places but only 1 funding for someone with your status; I had expected someone with stronger skills in X and Y (but your Z is more than fine)".