First step stop applying and let them come to you directly or get recommended.
Do you consider yourself the Brad Pit of enginners or joe blow? Do you think Brad Pitt goes into the cattle call auditions and waits all day for his 5 minute read?
Am I Brad Pitt? I'm not in that league. But you don't have to be to avoid the unpaid nonsense of hanging around all day. If that's the hiring process it shows that the company is unsure of themselves and are afraid to make a mistake. Companies like google are so big they need this kind of process to filter people out. When a 30 person company does this it raises red flags.
If you are asking too much of candidates many will dropout as they get hired somewhere elsewhere quickier. The longer you take the quality of the pool gets reduced.
Hiring is important. Keep employees are probaby more immportant. Sales are in my opinion the most important. Taking a gamble can lead to 10/10 candidate hire. Chances are low it will lead to a 1/10 candidate. The longer they play it safe the lower average peak in the candidate pool.
If the process takes 3 months you will be lucky to get a b level guy unless your company is special (google/apple/hot startup). The A level guys will move on.
Someone with three offers in hand will not waste an unpaid day unless you can offer something special.
> Sales are in my opinion the most important.
And how does a company get good salespeople? Hiring well.
Speed is a part of hiring well.