If you're using class based processors, you can override the prepareQueryBeforeCount() method to add any criteria you want.
If you look at the code for many of the MODX panels (Manage Users, System Settings, etc.), you can see that they often have both a "filter by area" and a search field. Those are implemented in their grid JS and their getlist processors.
I'm doing something similar for a client who wants to hide certain specific users and/or certain specific user groups on the Manage Users panel.
here's an example, how you can add TV-filters to the childresources - getlist - processor:
https://github.com/Bruno17/migxchildresources/blob/master/core/components/migxchildresources/processors/mgr/default/getlist.php#L45
you can create your custom-copy of the getlist-processor and put it in your own processors-path, for example core/components/migxchildresources/processors/mgr/myprocessors/getlist.php
Than put into the MIGXdb - settings
package: migxchildresources
processorspath: myprocessors