We have different options available to generate basis sets within CP2K. However, all of them also require a large part of manual invention. There are no black box schemes.
Optimize the exponents of a Gaussian basis with the atomic code for a given reference state (see tests/ATOM/regtest-2/Ru*.inp). You have to choose the number of Gaussians per $l$ quantum number, atomic state, …) Calculate the contraction coefficients and generate additional functions using a recipe from quantum chemistry.
You might want to add polarization functions that are not available through atomic calculations.
Just like Method 1 but calculate the contractions from a atomic response calculation. (tests/ATOM/regtest-2/Ru_basis.inp)
MOLOPT basis sets. This requires extensive calculations on test molecules. you can see an example in tests/QS/regtest-optbas