Several things could be the cause.
First, check to make sure that the pH is within proper range. If the pH is within range, it could be that you have a dirty filter and it needs to be cleaned. If you have a sand filter, this doesn’t necessarily mean to replace the sand, but to use a filter cleaner, such as GLB® Filter Cleanse, that will remove both organic materials and minerals.
Check to make sure the sanitizer in the pool is in proper range. If it is not, raise the level.
Another cause could be the amount of calcium in the water. If too much calcium is present, it can become cloudy. Adding a sequestering agent, such as GLB® Sequa-Sol®, on a weekly basis, can prevent this.
Lastly, particles too small to be easily filtered out could be causing the cloudiness. A clarifier, such as GLB® Super Blue®, can be used in order to make these particles filterable.