Make your single field a field with global storage. Set up a script similar to those found here: to find your records: Scripted Find Examples
Since you want records with the specified text in the company name, the first contact name OR the second contact name fields, your script can either create a new request where it uses set field to copy the text from the global field into a different name field before performing the find. Or it can perform a find on the company name field, return to find mode, specfiy this text in the contact name 1 field and then extend the found set...
Note: if Contact Name 1 and Contact name 2 where a pair of related records in a related table, you need only use one request for searching on the contact names.