Job Alerts
Job Alerts let candidates subscribe to saved searches. When new jobs matching their saved filters are posted, they receive an email - instantly, daily, or weekly.
How Candidates Create and Manage Alerts
Section titled “How Candidates Create and Manage Alerts”All alert subscription and management happens through one block: Job Alerts (wcb/job-alerts). Add this block to a job search page or candidate dashboard page.
The block has two parts:
- Get Job Alerts - a frequency selector (Instant / Daily / Weekly) and a Subscribe button. Subscribing saves the current search filters as a new alert. A confirmation message (“Alert created. We will email you when matching jobs are posted.”) appears on success.
- Active Alerts - a list of the candidate’s existing alerts. Each row shows the alert and a control to delete it.
The block is only shown to logged-in users; an alert is always owned by the candidate who created it.
Frequency Options
Section titled “Frequency Options”| Frequency | When emails send |
|---|---|
| Instant | As soon as a matching job is published |
| Daily | Once per day (default), morning digest |
| Weekly | Once per week, Monday morning |
Daily is the default frequency when an alert is created without an explicit choice. Candidates can change an alert’s frequency at any time from the block.
What Gets Matched
Section titled “What Gets Matched”Each alert stores criteria that are checked against every candidate job. A job must satisfy all of the criteria that are set on the alert:
- Keyword - matched (case-insensitive substring) against the job title
- Category - job must be in the alert’s
wcb_categoryterm - Job Type - job must be in the alert’s
wcb_job_typeterm - Location - job must be in the alert’s
wcb_locationterm - Salary minimum - the job’s maximum salary must not fall below the alert’s minimum
- Salary maximum - the job’s minimum salary must not exceed the alert’s maximum
- Remote - when set, only jobs flagged remote match
Empty criteria are ignored, so an alert with only a keyword matches on that keyword alone.
Delivery Channels
Section titled “Delivery Channels”By default, alerts are delivered by email. Delivery runs through a channel registry (the wcbp_alert_dispatch_channels filter), so addons can add Slack, Discord, SMS, or push delivery alongside email without modifying the alerts module. The built-in email channel fires the wcbp_send_alert_email action.
Setting Up (Admin)
Section titled “Setting Up (Admin)”Email Delivery
Section titled “Email Delivery”Job alert emails use WP Career Board’s standard email system:
- Go to WP Career Board → Settings → Notifications
- Set your From Name and From Email
For reliable delivery, configure an SMTP plugin so alert emails are not flagged as spam.
Cron Schedule
Section titled “Cron Schedule”Instant alerts fire in real time when a job is created (on the wcb_job_created action). Daily and weekly digests run on WP-Cron:
- Daily digest is scheduled for 8:00 AM (server time)
- Weekly digest is scheduled for Monday 8:00 AM (server time)
If your site has low traffic, WP-Cron may run late. Configure a real server cron that calls wp cron event run --due-now to keep digests on time.
The digest sweep only emails jobs published since each alert’s last send, so candidates are not sent duplicates.
Data Model
Section titled “Data Model”Alerts are stored in the wcb_job_alerts table. Each row records the owning user, an optional board scope (0 = all boards), the saved keyword, a JSON blob of filters, the frequency, and the last-sent timestamp. The REST routes that power the block are:
| Action | REST route |
|---|---|
| List the current user’s alerts | GET /wcb/v1/alerts |
| Create an alert | POST /wcb/v1/alerts |
| Update an alert’s frequency | PUT /wcb/v1/alerts/{id} |
| Delete an alert | DELETE /wcb/v1/alerts/{id} |
Creating and listing require a logged-in user. Updating and deleting require the alert’s owner (or a user with the wcb/manage-alerts ability).

