kmahhs made some good points, so I'll just expand on them a bit.
“Why are you writing off Big 4 just because your undergrad GPA isn't super high (3.22 is not “bad” by any stretch of the imagination.)?”
Agreed. While GPA matters and serves as a filter for interviews, if you're able to make a personal connection with a recruiter or someone on the recruiting team then it can make up for low GPA. It's good that you're focusing on other firms, but don't be afraid to expand your net. All they can say is No right?
Also, besides GPA, work experience, CPA exams passed, and personality are all factors during recruiting. So take advantage!
“A letter/email will not make them suddenly remember you”
I think that most recruit aren't on a cell phone basis with recruiters. That being said, a quick reminder of who you are is helpful. Even if they don't remember you at all, it's still helpful to remind them that you've spoken.
Also, I like your idea of sending a letter. Receiving a letter is just plain cool IMO and shows you took the effort. Maybe try and hand deliver it to and hand it to the receptionist? That way at least you know they got it and around when they would have read it.
“Cold resumes, typically, won't help much. You could get lucky, but I wouldn't hold my breath.” I agree that cold resumes typically don't help. If good ‘oil recruiting or networking don't help, maybe try passing by their office as an introduction.
Make sure to dress nice (IMO business casual with a blazer is ideal. Business professional seems too much in my eyes) and give a handwritten cover letter to the receptionist. Ask her to deliver it to the hiring manager or recruiter of the firm. Most midsize or large firms have recruiters whose sole job is to identify and attain talent.
Also, make sure the cover letter is succinct but introduces who you are, why you think the firm is a good fit, your interest in a possible internship (if in school) or full time position (if graduated), and what you can offer. Then provide contact info, making sure to add in the address to your linkedin profile.
If they're interested they'll contact you. I think doing things this way accomplishes (a) your name to a face. The opinions of receptionists matter and can speak in your favor, “He was very nice and dressed professionally”, (b) provides much of the info you would say during a face to face meeting, (3) Is rare enough to stand out, but not weird enough to make you seem off.
Hope that helps. 🙂