Sort:  

I am not aware of a way this can be done (technically). If it was on the blockchain, a bot would be able to read it, right?

Well until I saw a comment below reitterating that the bots interact with blockchain and not the UX so this may not be possible.

Quote from tarazkp:

this idea got shot down as the bots do not need it anyway. They interact directly with the chain, not through the interface. From what I have heard, there is no way to identify a bot from human. I keep pushing this point though.

The only other solution I can think of is randomly changing the voting period for max reward per day using voting information from the previous day.

I wouldn't recommend it. However all information on the blockchain is open we can have guidelines for bots.