I have a dataset in which i have the labels for candidates on whether they would be hired,interviewed_and_failed,not_interviewed_at_all. The task is to predict for new jobs/new candidates what these decisions would be.
Assume that I have some feature space $x_c$ for each candidate and $x_j$ for each job. A simple model would task be $y = f(x_c,x_j)$ where $y$ represents the hiring decision and $f$ represents some sort of machine learning model.
The question is how should i split and train the data because the data is not i.i.d.
If i just split the model randomly it might not generalize to new jobs/new candidates which is ultimately what the model should do. i.e. $x_c$ and $x_j$ is present in both training and validation set.
Ignoring the validation aspect how do i prevent the model from memorizing the jobs/candidates that it has seen. This is because some jobs such as cashier has many successful hires while a CTO has only 1 hire. So the model just learns the acceptance ratio for each job rather than learning how to rank the candidates for each job.
is it possible to have a model that does something like $y = f(x_c|x_j)$? And how do I train such a model?