I currently work for 5 companies and a Gov't subcontractor and am adding a 6th next week.
I dropped a few companies (and one dropped me) and frequently reject work from some of the companies to make it all work out.
I let them know right off when they hired me that I work for several other companies so the works HAS to be somewhat flexible (minimum 1 week window for assignments), it has to be local (tired of making routes) and that I don't do large resets (even though I did end up doing a few) . Oddly enough I actually enjoy cosmetic resets.
It works but I have to be extremely organized otherwise I can mix up the jobs / stores / assignments. I frequently get sent out by two different companies to do the same exact job, just in different locations. Those are times I really have to keep the who, what and where straight.
Some companies will auto-assign you work and you have to be vigilant to reject work that will throw off your schedule (I have one that routinely assigns day long projects 40 or 50 miles away - I just message no, not available). Most will allow you to reject distant jobs but expect you to cover all assignments within your "territory" usually a 15 mile radius. Others require you to opt in for work that they post on the portal, it just all depends.
Probably the hardest part is remembering who has a strict "report the same day" policy and who allows 24 hrs or more and working with their different reporting platforms. There is definitely a learning curve but once you get into a groove and do the same stores week after week it becomes pretty easy.