Explanation:
Ok I think you need to resample your data first, because your algorithm learns that most of the people are not interessted in jobs and that's true if we just look at the distribution of your training data (90% not interested, 10% interested). Your algorithm just assumes the answer is always "not interested". That's why you reach a high accuracy on the training set.
In your test data the distribution changed to 50%:50%. Your algorithm still assumes all persons are "not interested" and fails in predicting the interested ones. (Your accuracy decreases on the test set to roughly 50%)
How to solve this problem:
Resample your training data to match the 50%:50% distribution in the training set. There are different resampling methods available. Some examples are:
- Under-Sampling
- Over-Sampling
- Synthetic Minority Over-Sampling Technique (SMOTE)
Under-Sampling: downsamples the majority class by removing items. In your case it would be (10% interested and 10% not interseted).The disadvantage is that you would just learn on 20% of the available training data.
Over-Sampling: upsamples the minority class by adding redundant points. Advantage: You would use all your data.
Disadvantage: Could lead to overfitting.
SMOTE: a more sophisticated over-sampling method, whichs adds synthetic samples.
I would try to start using simple over- and check if this solves your problem.
For python you could use the so called imbalanced-learn package, which contains all of the stated methods here.