The data in universe selection (coarse universe and fine universe) are in daily resolution. Therefore, when you use
AddUniverse(CoarseSelectionFunction, FineSelectionFunction);,
CoarseSelectionFunction and FineSelectionFunction are set to default to run once a day (Running them on a lower resolution wouldn't change the filter result as the price, volume data in CoarseSelectionFunction and fundamental factor data in FineSelectionFunction are all daily data). After the universe selection, The data of symbols returned by FineSelectionFunction or CoarseSelectionFunction will be subscribed in OnData() based on the UniverseSettings
UniverseSettings.Resolution = Resolution.Hour;
That is to say, you can not use the price data of lower resolution than daily to filter stocks in universe selection but you can use the lower resolution to further screen stocks from the results returned by universe selection in OnData().
A reasonable way to use universe selection API would be trimming the result set down using coarse selection and using the hourly/minute price data in OnData(). You should be wary of large requests though, once you get over about 120K data points you'll run into timeout issues.
For higher resolution universe selection like monthly, quarterly or yearly, it would be easy to use the scheduled event API to run universe selection. Here is an example
https://www.quantconnect.com/tutorials/strategy-library/asset-growth-effect