To build self esteem in kids, you could help him see himself the way you see him by communicating it to him. So, when he's talking, be interested and LOOK calmly interested, with facial expression that shows that what he is saying is interesting, laughing, questioning, whatever. This will help make him feel interesting.
When you like something about him, instead of maybe just thinking it, say it e.g. 'ooh, nice top... where did you get that?' Then he'll say you bought it, and then you say, 'really? it looks really nice on you'. Or, hmm, you smell nice, while pulling him in for a sniff. He might then pull away jokingly, saying you're weird, then you'll laugh too. Just little things that show that he is likeable and liked, special, cute, smart, quirky or whatever.
Even if they have something off about them, turn it into something admirable. My daughter has a large scar on her arm that she used to hate. When my eye catches the scar, I would say, 'Arr! Warrior princess', making a pirate like face and reaching for her like an attack, which would make her squeal into a play fight. She loves that arm now, always taking selfies with it proudly in full view.
I regularly tell her how odd I was in school and how she reminds me of this smart girl I used to follow around.
You do all this without drawing attention to him saying he doesn't like himself. I think that's how you could help in building their self esteem.