One idea
Generics stop wrong data from entering your collections. Exceptions make failure visible and controlled.
In your recruiter CLI, use both together: typed data in, clear error out.
Why generics matter
A recruiter app will hold candidates, jobs, skills, and match scores. If you use raw List or Map, Java cannot protect you from mixing them up.
Prefer List, Map, and Optional style types. The compiler then catches mistakes before your friend tries to run the repo.