You're not really missing anything easy here.
You can change your default check in time to something else using a special URL in your JSS to give you some more granular options, but I don't think every 4 hours is an option and I'm also not sure its even available anymore under version 9. You can also make a second check in "task", again using that special URL, and assign that to the inventory collection policy, but its not sanctioned by JAMF to do this. (creating the additional task, which may be why its not available any more)
Other than that, an option would be to deploy a LaunchDaemon that simply runs /usr/sbin/jamf recon as its Program Arguments and with a StartInterval of 4 hours in seconds.
The problem with that second approach is then its on you to make sure that gets deployed and remains working, since its an adjunct to the built in check in policy already delayed by the Casper Suite tools. You'd also have to decide if you want to keep the existing once a day inventory collection, which may run soon after one of the ones initiated by the LaunchDaemon. Probably not a huge deal, but I'm not sure if there would be a way to make sure they don't occasionally trip over each other.
A slightly better approach might be to have the ProgramArguments call a policy with a manual trigger, like
/usr/sbin/jamf policy -trigger manualRecon or something that would call an additional policy set up to only run on that trigger from the JSS to do the inventory collection.
Finally, if using version 9.x you could use something like the Network State Change trigger to do an inventory collection, so every time a Mac reports a change in its network state it will push updated inventory to the JSS. That might end up giving you more recons in a day than you actually want though.
And those are only 3 out of probably many ways to approach this.