I responded to a Perl jobs ad. I traded a phone call and a few emails with their recruiter. After a couple weeks of low-level communication, I had a technical phone screen. Afterwards, I was invited on-site.
The panel interview was 4.5 hours long and consisted of 6 sessions with 1 or 2 individuals each for a total of 8 people. I was asked to write code on the whiteboard: a routine that would find the first palindrome of a certain length in the digits of Pi. I was asked to design an object model for a blackjack game. I was asked to design the SQL DTD for a system to store music. I was asked how I handle conflict within a development team.
It was all very straightforward. Two managers came and pitched their respective teams to me, and I asked questions about the customer, about the product, about how the company does its work, and about the processes they use to get work done there. I even asked about parking. Several of the interviewers spok about how Marchex doesn't just give lip service to work-life balance.
All in all, I went away feeling very good about the experience, and thought that I'd handled everything well. I made a point to talk about how thrilled I was to see a Perl job opening, and how working with Asterisk would be a real treat.
The next day comes and goes with no communication from Marchex. None on the next. On the third day, I wrote to the recruiter asking why they were passing on me.
He called me back the following day and said that I did very well with the technical part of the interviewing, they had no problems with that. The reason why they were moving onto other candidates was because they felt that I wasn't really interested in the job.
I was, of course, not asked questions during the interview about my level of interest in the job.