JobSystem, array of class

Following my posts on the spell system, I am now on a job system.

A character has a list of jobs (soldier, mage, etc…) and each of this job has a list of spell. (Soldier has Slash, Charge ; Mage has Fireball, Freeze ; etc…)

For storing the spells, I could use : TArray<TSubclassOf<Spell> > spellList; Because each time a spell is launched I can create a new instance and fire it.
For the jobs it’s different they should be instancied at the start of the game, modified if necessary (for exemple, a job learned a new spell), and saved at the end of the game.

I heard about TSubobjectPtr, but for the moment I failed using it correctly.

Any advices?