display global recent post by custom field

Hi Guys,
there is something i want to use in my site but not sure how and if i can do it. but i think this can be very useful.
my site going to be directory site where people will be able to add listing, events, coupons, jobs and so on. in the main page i am going to use the global recent post widget few time to display featured listing, events, coupons and so on. Now, i would like my main page (or the whole site) to display posts in those widget sorted by the visitor's zip code for example. so if someone from New York will go to the main page he will not see featured listings or events that going to be in miami (unless he will search for it) but he will see those that around his area. My first thought was maybe to use a global variable (zip code , state or anyhtings else) that a user will enter when he first visit the site (just like many other site out there) . Then the Global Recent Post widgets on my main page will use this variable to display the posts that have the same value. i am thinking about using custom fields here as i created address fields (street , zip code, city ,....) for all my custom post type. Right now there is no option in the global recent post widget to filter by custom field but if it can be added i might be able to do what i want.
do you guys think i can do it this way? maybe other suggestions you guys have?

thank you