When we search for the company name and the company snippet shows up as a result, it takes a text from the HTML as description.
On the other hand when we search a keyword and the homepage shows up as a result, the meta description will show up.
It happens in Google, Bing and Yahoo. How is it possible?
--EDIT:
I found the solution, but since a MODERATOR, marked this question as duplicate, I will write my answer here:
The problem was that: We didn't have the company name in the description, while the first word in the html body was the company name.
Therefore, where we searched for the company name only, search engines found the html body a better match for the query and show the body (which was not a human readable text)
However, when we searched the company name + a keyword that we mentioned in description, the description was chosen, not the html body.
To fix the issue, we both changed the description to include the company name, and remove the company name from some html tags like logo's alt in the very first part of the page.
Summary: Include all the keywords that you want to be searched in description including the company/website name.