If you need to reset something on the first of every month. You can run a backend workflow on the first of every month and loop it to run through each user. Then at the end of the loop you would schedule it to run next month on the first.
Or… if it is based on the user. Not sure if it’s really the best option… But you can also schedule a backend workflow to run after a month of when they sign up and loop it forever each month from then on. It should be pretty good since people will be signing up at different times and days. So it shouldn’t get too overloaded with it trying to do a bunch at one time. Unless someone has a better option/opinion about it.