Search multiple fields with multiple queries

I have an index where each record is in this format:

    location: '...',
    company: '...',
    position: '...',
    // some other fields

What I want is to search on (up to) all three of these fields, each of which has an individual query. For example, search for ‘software’ in the position AND ‘SF’ in the location AND ‘google’ in the company to get software jobs at a google company in SF

Important: I don’t want an exact match filter. I have a lot of possible options for each, so there should be tolerance, like performing a regular search, but 3 times with an AND condition in each. So you don’t have to put in the exact field value (e.g ‘francisco’ would match ‘san francisco’ and ‘google’ would match ‘google cloud’), but you can give a general search for location, company and position and it’ll give you results that match all 3

I’ve been reading all the documentation for faceting/filtering for a while but can’t find what I want, I think searchable facets is what I should use but there’s not actual code examples of how to do this, just high-level info about what faceting is. How exactly do I configure my index to do this, and what will my query look like?