Also you pass the data a job needs to run as part of the job payload. Then you don't have the "data doesn't exist" issue.
We use this to ensure Kafka events are only emitted when a process succeeds, this is very similar.
For our particular use case, I think we're actually not using notify events. We just insert rows into the outbox table and the poller re-emits as kafka events and deletes successfully emitted events from the table.