Not OP but generating puzzles isn’t hard if you have a database of games and I’ve done it myself.
For each game just fast forward to the end and ask for Stockfish to provide the solution. If it’s guaranteed “mate in X” then you’ve got yourself a puzzle. You can have a classifier that grabs other puzzle types too (“win the queen in X” for example)
At scale, It gets a little harder trying to explain the solution. There is often a combinatorial explosion of move possibilities, so it’s not easy to just say MATE IN 4 if there are 40 or 50 potential responses all leading to mate. Granted they are obvious mates but there may be users who do not see the obvious mates.