I have bad news for you.
Here's a potential algorithm: 1) Fine-tune a language model to come up with words that fit the crossword descriptive sentence. 2) Problem is reduced to a constraint satisfaction problem. Implementation is left as exercise for the reader :)