1. Dedicate 4 hours a day to practice, breakdown is maybe 2 hours of solving hard algorithm/programming interview questions. Really solve them, do not let yourself look at the solution until you've made a real stab at the problem. Also attempt problems harder than you think will be given to you. Also try to get a smart friend to do a mock whiteboard problem with you as often as possible. Spend the other two hours learning hard computer science. Keep grinding through Intro to Algorithms, but slowly. Really internalize and make yourself believe you understand the concepts and material.
2. Apply everywhere. Seriously, even places you don't think you'd work at. The interview might change your mind and make you excited about the company, and at least it's practice. Also, subtly convince yourself YOU are also interviewing them. It will convey a lot more value on your behalf.
3. Go to meetups and meet people. I don't know where you're located, but meetups can seriously lead to opportunity. I say this even though ironically 2/3 of my jobs I've gotten from applying on the website. But my first job/internship came to me in highschool after meeting the VP of the company who offered a job on the spot.
In #1, I may have seemed to have taken a hardline approach, that's right. In my experience, the interviews I've had were not even 20% as difficult as the problems I was used to solving and that's the point. Working really hard to master the material will show in unpredictable ways.
Best of luck.