It is easy to critise any process. But the truth is that hiring is a difficult job espicially when the number of applications are in 1000s and the opening is in 10s. It is better not to hire than hire the wrong candidate.
It is as difficult to get a job change within MS as getting into MS. You will have to go thru some tough interview loop depending on the Group you want to join.
MS interviews in the US is a day's work and you may have upto 5 rounds of technical interviews (an hour each).
Having a resume with sufficient Key words is critical in getting interviews. Normally large companies do a key word search to pick up resumes. Best way to add key words is to mention that your projects used these technologies("Key words"), but need not mention that you worked on it ;).
When recruiting freshers the easiest way to filter is conducting Tests and personal interviews. Some of the most talented are at times not great communicators at the start of their career.
If you are talented you will eventually land the right job. In a career span of 30-40 Years a few of years of uncertanity is fine :). It will only give you a different set of experiences, maybe better than on job technical experiences.