For now, even manual curation works. You can broadcast recipe events to your relay, whether that's just you and your team, or your users. Minimal incentives like getting back the sats they spent on the relay could help as well. By default, searching those words to just your relay and/or the user's relays mitigates the spam.
Automated discovery from the wider nostr ecosystem can come as infra evolves. Lot's of behind the scenes projects, I'm even working on one. I think when those projects are ready, that's when you should consider looking at that level of openness. Because otherwise, you're stuck with things that can be broken easily like key words and hashtags.
Thinking it through, I think there are two things to keep in mind to balance out a quality community with discovery.
1) start however small and narrow you need so you can guarantee a good experience. If you can keep quality high by follows of follows (possibly further) from zap.cooking users, that's a lot already. Keywords and hashtags have the most effectiveness when you're confident in the sources you're pulling from.
2) Every step you take looking into the open nostr ecosystem opens you up to more potential bad experiences, so you need to deeply consider every step you're making, because what you display from your app is representative of the community you're cultivating.
