Postgres: query multiple records using a list of double keys
Well, it all depends on your scenario. If it is a one-off import, you create a junction table and use it for your joins. 

CREATE TABLE people_at_companies (
  company_attrib TEXT,  -- whatever type it is
  person_attrib TEXT    -- whatever type it is
)

INSERT INTO people_at_companies VALUES
('some_company_attrib123', 'some_person_attrib456'),
('some_company_attrib789', 'some_person_attribxyz'), 
...  -- remember to remove the last comma :)
;

SELECT j.* FROM jobs j
  INNER JOIN people p ON p.id = j.person_id
  INNER JOIN companies c ON c.id = j.company_id 
  INNER JOIN people_at_companies pac ON
    c.some_company_attrib = pac.company_attrib 
    AND
    p.some_person_attrib = pac.person_attrib
;


Having such junction table might improve performance, and it allows creating indexes. 

If the junction data is dynamic in such a way that keeping a junction table in sync is too difficult (a very unusual situation, I’d say), we can avoid the junction table but, at the very least, using VALUES instead of arrays is way simpler:

SELECT j.* FROM jobs j
  INNER JOIN people p ON p.id = j.person_id
  INNER JOIN companies c ON c.id = j.company_id 
  INNER JOIN (VALUES
    ('some_company_attrib123', 'some_person_attrib456'),
    ('some_company_attrib789', 'some_person_attribxyz'), 
    ...  -- remember to remove the last comma :)
  ) AS pac(company_attrib, person_attrib) ON
    c.some_company_attrib = pac.company_attrib 
    AND
    p.some_person_attrib = pac.person_attrib
;


You might have to explicitly cast the first row of the VALUES with the types of companies.some_company_attrib and people.some_person_attrib if PostgreSQL doesn’t figure the correct ones out. E.g.

  ('some_company_attrib123'::TEXT, 'some_person_attrib456'::TEXT)