What is the policy of StackExchange on spam posts?
They should be flagged as spam, as described in What are the “spam” and “rude or abusive” (offensive) flags, and how do they work? A post that gets 6 spam flags from ordinary users, or 1 spam flag from a moderator, is deleted, locked, "censored" (hidden even from 10K users, unless they look at revision history), and most importantly, the author is blocked from posting again.
It's important to keep in mind the Stack Exchange definition of spam: an advertisement/promotion of some sort, as elaborated in the linked post. A "low quality non-research question" is not spam.
How should we deal with users that intentionally post many off-topic posts?
Close and downvote their posts. They will be either blocked or at least slowed down by the system: Rolling question rate limits are now network-wide