Possible things to try:
--offer a small amount of new food, then gradually increasing amounts. If he devours a large amount it the first time, he might get an upset stomach and then avoid it in future.
--maybe rotate different foods, so he eats several different kinds, on different days. If he gets tired of any particular food, that might help.
--offer food wet rather than dry. He might like or dislike that, so try a small amount to see what he thinks.
--offer food in a different dish, or from your hand, or dropping bits on the floor. And/or use food as treats when training him. Sometimes a different way of presenting it will make it seem more appetizing.
--try offering food at different times of the day. I've had a dog that prefered to eat when the people were eating, and a different one that didn't care. The pickier one also liked to eat shortly after going for a walk or running around in the yard, as if he needed to work up an appetite.
--try feeding him more often, something like 3 or 4 small meals rather than 1 of 2 big ones. Or the other direction, fewer meals but bigger ones (but I'd try small/frequent first.)
--obviously check with a vet, but don't try to make him gain weight too fast, and don't try to get him too fat. Of course he needs to grow and gain muscle & bone, and probably even some amount of fat reserves, but there is a chance he is self-regulating to avoid getting overweight, and you might be trying to feed him too much. (I don't really think so, just mentioning it as a slim possibility.)
I don't know exactly what will work for your dog, so this list is based off what I've read, what seemed to stimulate appetite in a dog of my own, and even some things that work with chickens or children