I want to add additional filter to the search criteria for Parties

I need a user may enter a ZIP code in the field and then filter out all parties outside the range.
I can create a module or a class that gives something like: zipcodes.zipcodes_in_range.get_list(zipcode='10001',range=100)
that returns a list with zip codes within the range.
but how to add this ability to interface? And how then actually filter parties?

I want this ability omni-available in any module that searches for Parties.


Zip code are not integer but char so you can only search with string matching.
Also a party has many addresses so you can not have a unique zip code per party but you have to search for addresses.
So what you can do is to add the addresses field on the list view of parties, this way the search box will allow to write “Addresses.Zip: 100%” for example to search for all parties that have a zip code starting by 100.