Most of our decisions (especially to pass) have nothing to do with the candidate. And they have no way to know, so instead they over-analyze their resume or what was said during the interview to try to extract some kind of clue. Which is 99% wrong.
Some examples to give you an idea:
- we like you, you did well at the interview. But we have one position open right now, and Joe, who is the star engineer at our competitor, is making signs that he'd be willing to finally join us. We have been courting him for two years. So we put your application on hold, until Joe makes a move. Nothing you can do, and we sure won't tell you, in case Joe doesn't jump ship, and then we call you back as if nothing had happened.
- we like you, but we are about to close a new contract in the middle of Texas. If that contract closes, we'll need to hire someone ASAP there, instead of here. So while technically the position we have is here, we are waiting just a bit to see if the contract closes and if we need to shift our hiring. We should know this week, so no point in telling you anything. One week later, it turns out the contract is not signed yet, but it looks really close. Let's wait another week, we should know for sure by then... A month goes by...
etc.