How to find common answers without revealing differences?
I'm not well versed in cryptography, but it seems like private set intersection may be what I'm looking for?

Yes. In private set intersection (PSI) if we have elements from a universe $U$ (e.g. the set of 128 bit integers) and Alice has $N_A$ elements and Bob has $N_B$ elements, most good PSI protocols will try to give you $O(N_A+N_B)$ communication and computation complexity. However, if $|U|\approx N_A\approx N_B$, e.g. when you have a dictionary of 100 fruits most of which are liked by both parties with high probability, then there's another way to go about this. Namely you could also consider this as a generic 2-party computation of $|U|$ parallel AND gates using the bitvector encoding used in the question.
So, as a guidance:

For small scales, e.g. $|U|\leq 2^8$ use setup-less PSI protocols, e.g. this DH-based one.
For large scales, e.g. $|U|\geq 2^{20}$ and small set sizes, i.e. $N_A,N_B\leq \frac1{\log_2|U|}|U|$ use dedicated PSI protocols, e.g. OT-Phasing.
In all other cases consider using OT-Extension based AND gate evaluation, i.e. one party entering their interest vector as the choice vector and the other party entering an all-zero vector for the zero-bits and their interest vector for the 1 bits. Then have receiver share the received bitvector with the sender.