The worst offender was a company I had five meetings with, 3 of which were identical code reviews for the same code test. None of the reviewers realized I already had the code review with their peers. None knew what the next step was.
Most companies just didn't have an organized funnel for candidates.
The one that did I quickly took the job offer at. Here's what they did right:
1. The recruiter prepped me for each interview as if they were a good friend looking out for me. They told me who I was talking with and what hobbies they had so I could relate to them.
2. I knew of each meeting and its format in advance. It's weird I'm calling this out as it seems simple, but here we are :-)
3. The code review was paid. And actually quite fun. The previous company code review was unpaid and 20 hours of 'implement a REST API'
4. The engineering team was actually trained on recruiting. Each one had read my resume and asked detailed questions about my hobbies, experiences, etc. Engineers elsewhere hadn't read my resume at all.
5. I always had quick feedback on technical meetings and didn't have more than three.
The most important difference I noticed is that most companies were ambivalent seeing me fail.. a select few even seemed to crave that.