more calories and healthy fats
As a biologist, I have 2 simple suggestions:
1) More calories. Seems obvious, yup, but you need to get your calories from the right source. You could eat donuts and pizza and bacon all day, and you would gain weight, but that would be very bad for your health. So, eat more complex carbs (avoid simple carbs, as always). You can eat more protein, but that won't help very much in and of itself (your body must use energy to break down protein, so it's not as efficient for gaining fat... unless you eat fatty meat but that's not good for you). And this brings me to suggestion # 2:
2) Eat more healthy fats. Everything from olive oil to fish oil and omega oils and nut oils. I'm not suggesting you take oil supplements (although you certainly can, and some of these are good for you anyway), but eat foods that contain these oils. Nuts, flax seeds, etc., fish like shad or salmon that are kind of fatty/oily, etc. Fats have the most calorie density of any food (three times more than carbs), so it's a good way to add on calories and weight. But you need to eat healthy fats... if you want to stay healthy
Of course, you could just eat a ton of bacon all the time. That would work. And it would be delicious. But you should stick to healthier fats
Oh, and finally, since you do work out I'll mention this: to gain weight you need to take in more calories than you burn. So, it's not enough to simply eat more calories in your case, because you are burning off calories by exercising. You need to make sure you take in MORE calories than what you are burning off, so you need to factor in your exercise and compensate for that.
Good luck!