I submitted an application in mid-February, and a week later received a form email back (but from a human) stating that there were no positions that matched. I replied and asked them to reconsider, outlining why I thought they should. We set up a phone screen and they decided that a number of positions were potential matches. After changing what position they thought I should apply for, they eventually decided and changed recruiters again (2 out of an eventual 4).
I had a phone screen with the hiring manager which included a lot of technical questions. I passed, apparently, as he told me on the phone that he would have the recruiter set up an on-site. The on-site was fully paid for and set up within a week. It included 5 or 6 interviews with a variety of people. Although I cannot give exact questions, they were quite varied, and included some programming in the language (or pseudo-code) of my choice, detained Linux admin, networking and protocols, HTTP, and some customer service questions. After the interview, I was pretty confident that I had failed; a couple interviewers stumped me, and I kept arguing with one about the desired result of a postmortem.
I received a call a couple days later saying that they liked me and wanted to progress to the committee stage. They asked for a bunch of information that I had previously provided, but then things stalled. Apparently they had some hiring issues which meant that my application was delayed for about 3 months. The recruiter kept in moderate contact with me (about once every 1-2 weeks), and things went from good-ish to bad to good. They then told me that they were submitting to the committee, and that I should have an answer in 2-3 more weeks. I heard back in that time frame that I had finally been approved.