I just received the first offer letter and it is better than what I asked for. So I am tempted to just accept it but many people and sites say you should always counter. Is it always better to counter asking for more?
There aren't any hard and fast rules about "you MUST counter the first offer" - If you have an offer you like, accept it.
That said, these are the guidelines I've always used:
If you asked for a number and they came back with a higher one - DON'T counter.
They already value you higher than you valued yourself - you will appear to be greedy if you ask for even more. If you really wanted more money you should have asked for more (when negotiating start with an unreasonable demand and work your way toward what you think they'll accept).
If you asked for a number and they came back with that number - Don't counter.
Or more accurately, be prepared to blow the deal if you do. You named a number. They agreed. Trying to get more now will be seen as reneging on the deal (because it is: You're renegotiating after they already agreed to your demands).
Again, if you really wanted more money you should have named a bigger number.
If you asked for a number and they came back below it - Counter if you must.
If the number you named was high and you have a cushion you can consider taking an offer below the number you named (as long as it meets your financial needs).
Of course if you asked for $75,000 and they came back with $50,000 it may be a different story -- I don't usually build in a 33% cushion into my figures :-)
If you didn't ask for a number but they came back with more than you expected - Maybe counter.
You can probably get a little more out of them, most companies make an offer below the maximum they are willing to spend to bring you on board. Conversely though if they tell you they can't do any better be prepared to accept (or walk away).
If you didn't ask for a number and their offer is below what you are looking for - Think Carefully.
Sure, you might get more money out of them, but if the number is REALLY low the company might also be struggling to make ends meet, or they may consider workers expendable cogs: When you get sick of the low pay, long hours and horrid working conditions you'll quit and they'll get another underpaid peon to do the job.
Working in such an environment is a soul-sucking experience -- Avoid it if at all possible.
I'm also a big proponent of "Make me an offer based on what you think I'm worth" rather than naming a number. If I am forced to name a number I name a range, and I aim high, for the reasons I already mentioned above.
You were offered more than you asked for. At this point going back and countering asking for more still will appear greedy. That is not to say you can not get more but you have an offer that will make you happy. Why not take that good will and show them that doing right by you is going to pay off. If you ask for more they could withdraw the offer all together. So the question is would you rather have more than you asked for for sure. Or take the risk that you might get more but might lose a great offer?
For what it is worth I did consulting for nearly 20 years. I only rarely ever countered. I had an expectation. If they offer came in below that I either accepted or rejected. Sometimes they came back with more usually I would reject them anyway. I have never had an offer come in for more than I asked for. And I have some fairly good references.
It's a risk and I would say that what to do depends on:
Your cash. When is rent due.
The company size. At a small company it's more likely closer colleagues will know about it.
How good the non-cash intangibles are.
If you have any other offers.
How confident you are about getting another offer quickly.
The hours and if the pay implies 80 hours work for 40 hours pay?
It depends on what the fair market range is in your area. Do your research and see if they offered you your worth. You can make it clear that you did your research after the interview, and found that they low-balled you. If they'll pull the offer for this reason, I say "good riddance!" You never wanted to work there, I guarantee you.
A lot of times, people go for a job interview prepared just to scale the technical questions as best as they can, without necessarily devoting as much time into researching the fair market price for the position. So I don't think it's fair to make candidates give an expected number in the first place. I think it's better to just ask what they make now, and why they are looking. If they do very well on the interview, you can still try to increase your bottom-line by offering them the lower end of the fair market range if their current or last salary is below the range, and leave it up to them to do their research and negotiate. If they already fall in the fair market range, offer them something between the high end of the range or what your company can afford, if you need them badly, and their current pay. If, on the other hand, they make way more than the fair market range, maybe they should stick with their current job unless they are open to a pay cut, but I think an employer should offer them somewhere near the highest point of the range. All the above, of course, assumes that they are perfectly/best qualified for the position. If, on the other hand, a candidate is desperately looking, they have matched a number "you gave," I say take it.