Power job alert emails and notifications with a real-time job feed
Job alerts are one of the highest-value features on any job board or career product — users who set alerts are far more engaged than those who don't. Building them well means pulling only new listings since the last notification run, filtering precisely to match user preferences, and doing it efficiently at scale. CleanJobData's cursor-based pagination and max_age filter are built for exactly this: run your alert job every hour or every day, pull only what's new, match against user preferences, and send.
Benefits
✓Pull only new listings since your last sync — the cursor parameter picks up exactly where you left off, no re-downloading the full index.
✓Rich filter matching — match user preferences across role, location, remote, seniority, salary minimum, and employment type in a single query per user segment.
✓Fast enough for real-time alerts — continuous indexing means a role posted 30 minutes ago can already be in the alert.
✓Reliable deduplication — each listing has a stable ID. Check against IDs already sent to avoid duplicate alerts.
✓Direct application links — alert emails that link straight to the employer's application page, not to an aggregator landing page.
Features
•max_age filter — pull only listings posted in the last 24h, 3 days, 7 days, or 30 days
•Cursor-based pagination — incremental syncs that pick up only new listings
•Stable listing IDs — deduplicate alerts reliably across sync runs
•Full filter set — role, location, remote, seniority, salary, and employment type combinable per query
•Direct application URLs — link users straight to the employer career page
•Salary fields — alert users when a role above their target salary posts
•Company metadata — include company logo, headcount, and description in alert emails
Frequently Asked Questions
How do I build an alert that only sends new jobs since the last run?
Use the cursor parameter returned in each list response. Store it after each sync run and pass it back on the next run — the API will return only listings that appeared since that cursor position. For simpler setups, the max_age=1d filter also works for daily alert jobs.
Can I segment alert queries by individual user preferences?
Yes — each query can combine any set of filters. For large user bases, group users with identical preferences and run one query per group rather than one per user. That keeps your request volume manageable without sacrificing precision.
How do I avoid sending the same job twice?
Every listing has a stable ID. Store the IDs you've already notified users about and check incoming results against that set before sending. The cursor approach handles most of this automatically since you're only pulling new listings.
Can I include salary information in job alerts?
Yes — the salary min, max, and currency fields are returned on every listing where the employer provides them. You can filter to only alert users when a role includes salary data above a threshold, or include the salary in the alert when available.