Following up after the interview is essential. But you want to do it the right way. Be sure to send a thank you note no later than one or two days after the interview. Beyond that it indicates that you're not that interested.
In your note, thank the person you met with for giving you the opportunity to meet and express your interest in the job. If you neglected to say something in the interview, or can follow up on something that was discussed, you can mention it but KEEP IT SHORT. It would be great to send a link to some work you did or item you discussed that’s relevant to the interview. Write to each person you met with and don’t send the exact same letter to each.
If you haven’t heard anything in about a week, you should follow up with the HR person first. If you don't hear back from them, it's not a good sign. At that point you have nothing to lose if you bypass HR and reach out to the hiring manager. But I'd only do that if the rapport with the hiring manager was really great. Trust what you felt more than what was said. Some hiring managers may give a forward looking statement but they are just being polite. I say this just to manage expectations but no harm in following up.
There is no standard hiring timeline for hiring. I've seen it take months or just a week. But there certainly is a standard for following up and getting feedback. When it goes on too long without any word, it's just rude. Be prepared for the whole process to take as long as it takes, but don't be afraid to check in regularly about the status.
There are all sorts of reasons for why it takes a long time. It could be because of internal approvals and schedules or the job is being re-evaluated. If it’s an agency they may have lost some business or some potential business was put on the back burner. Or it could be because they are playing it out to the end with some other candidate. It's nice to know so you can manage your expectations and I recommend that you ask the HR person very directly. The HR person deals with these things every day and the question won’t throw him/her. But beware because s/he may in some cases not have the same perspective as the hiring manager.
Ask what the expected timing is for the hiring process and where they stand in that timeline. You can even ask them when you should follow up.
Don’t keep calling if it seems to have gone stagnant. Rather than hounding anyone, you can keep in touch by sending something about your own search status. If they are earnestly interested but it's taking a long time, you can send a note to say you're still there and still interested...definitely keep in touch without putting them on the spot.
You want to show that you're interested, not desperate. You want to appear enthusiastic about it but not overly aggressive. Calm yourself down. Keep in touch without being pushy or demanding. Keep it upbeat and keep the emotion out of it.
Don’t be afraid to ask for specifics on the status of a search. HR people especially deal with this on a daily basis. What you have your attention thoroughly fixated on is just one of many moving pieces to them and they are likely not very attached to it – they may have forgotten about you and need to be gently reminded. It's important and mysterious to the candidate but all in a day's work to the HR person, so just ask them where it stands and what the current status is. Cut through the canned answers by being very direct but keep it nice and upbeat. You just want information. Write down all the questions you really want to know but are afraid to ask and ask them.