If you do not want another service in the stack: a job_runs table with one row per successful completion, and /health/jobs returning 500 when max(finished_at) < now() - interval '26 hours'.
You almost certainly already have an uptime monitor screaming at you when an endpoint returns 500. Now it screams about cron too, and you added one table and one route.