I'd like to do some analytics over the database with the following schema:
As you may see on the picture above, there is a Vacancy1 which requires knowledge of Java and Python and proposes the salary equals 5000$. Also, there is a set of candidates which know everything (like Candidate5) a suit the salary (Cadidate5 desired salary equals 4950$), and candidates which know some skills, like only Java or Python but together know everything what is required on the vacancy, for example:
Candidate1(Java, 2000$), Candidate2(Python, 1500$)
such set of candidates together know Java and Python and a united salary is equal 3500$.
Is it possible to write the query in Neo4j in order to find all possible sets of candidates which suite such vacancy condition?
For example, for the picture above the result should contain, something like that:
[candidate5],
[candidate1, candidate2],
[candidate1, candidate4],
[candidate3, candidate2]
Please note, that the combinations of the candidates in the result may contain any number of candidates and not limited to only 1 or 2 as in the example above.
Could you please show an example of such Cypher query?
UPDATED
What if I need to take into account some additional properties, like for example experience, like minExp on the diagram below:
Here, we need a candidate for the Vacancy1 with minExp = 3
The Candidate2 has exp (experience) = 2 and is not a good fit from Java point of view, but in pair with Candidate3(exp = 5), they together is a good fit for the Vacancy1. Is it possible to improve the query in order to take this information into account and do such combinations?

