I applied through a resume website, applying to 4 positions that I thought fit what I could do.
I got a email/call from their recruiter, then I did a technical phone screen and passed. Due to scheduling I was in the Bay Area a day later so I had a 45 minute pair programming assignment onsite instead of doing it over the phone/internet.
After I passed that they emailed me asking me to come into their offices the next day for the full onsite interview. During the full onsite interview, I did pair programming with 2 different people on 2 different programming tests, and did two 2-person interviews.
The first clue that should have alerted me to something being wrong was that I was suppose to talk to the CTO but because of "conflicts" he could do the interview. My recruiter shook my hand, thanked me, and then I left.
I wasn't sure whether or not I was going to get the job. I had felt pretty good about the programming tests but during the 2-on-1 interviews I felt they were forcing me to answer questions where the only correct answer was the one they had set out in advance in their head. I didn't really know which way it would go.
So how did I find out I got rejected? Essentially they changed the status of my application on the resume site from 'In Progress' to 'Reject' and the resume site sent me a notification tell me I had been rejected for the position. Just to be sure I got the message the person also rejected me from the three other positions I had applied for. So in the end I got 4 Rejection Letters from the company. They couldn't even be bothered to e-mail me directly and tell me, "No."
Considering the reputation of the company as one that "cared about its customers" and was considered one of the "darlings" of Silicon Valley, I felt pretty crushed being treated this way by them.