I’ll provide a complete solution addressing all three critical areas for recruiting push notifications:
1. Device Token Configuration and Management
Your device token registration needs additional recruiting-specific parameters. The standard registration isn’t sufficient for recruiting notifications:
DeviceToken token = new DeviceToken();
token.setToken(fcmToken);
token.setPlatform("ANDROID");
token.setUserId(recruiterId);
token.setNotificationScope("HCM_RECRUITING_MOBILE");
token.setBackgroundDelivery(true);
deviceTokenService.register(token);
Critically, implement token refresh handling:
@Override
public void onNewToken(String newToken) {
DeviceToken token = new DeviceToken();
token.setToken(newToken);
deviceTokenService.update(token);
}
Device tokens must be updated whenever FCM/APNS rotates them, otherwise notifications fail silently. Also ensure your token registration includes the recruiting notification scope explicitly.
2. Notification Payload Configuration
Recruiting notifications have strict payload size and format requirements. Your notification configuration in Oracle HCM Cloud must be optimized for mobile delivery:
In Setup and Maintenance > Manage Recruiting Notification Templates:
- Enable “Mobile Optimized Payload” for all recruiting event templates
- Set payload to include only: candidate ID, requisition ID, event type, timestamp
- Exclude: full candidate profiles, resumes, attachments, detailed job descriptions
The default recruiting notification templates include excessive data that exceeds mobile payload limits (4KB iOS, 4.5KB Android). Configure custom templates with minimal data:
{
"notification": {
"title": "New Candidate: {{candidateName}}",
"body": "Requisition: {{requisitionTitle}}",
"data": {
"candidateId": "{{candidateId}}",
"requisitionId": "{{requisitionId}}",
"eventType": "CANDIDATE_SUBMITTED",
"priority": "high"
}
}
}
Set notification priority to “high” for recruiting events to ensure immediate delivery even when devices are in low-power mode.
3. App Permissions and Platform-Specific Configuration
Android Requirements:
- Add to AndroidManifest.xml:
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
- Request battery optimization exemption for recruiting notifications:
Intent intent = new Intent();
intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivity(intent);
- Create dedicated notification channel for recruiting:
NotificationChannel channel = new NotificationChannel(
"recruiting_notifications",
"Recruiting Alerts",
NotificationManager.IMPORTANCE_HIGH);
channel.setShowBadge(true);
channel.enableVibration(true);
iOS Requirements:
- Enable Background Modes in Xcode capabilities: Remote notifications
- Request notification authorization with recruiting-specific options:
UNUserNotificationCenter.current().requestAuthorization(
options: [.alert, .sound, .badge, .criticalAlert]) { granted, error in
// Handle authorization
}
Oracle HCM Cloud Configuration:
-
Navigate to Setup and Maintenance > Manage Notification Event Subscriptions
-
For each recruiting event (Candidate Submitted, Interview Scheduled, Offer Extended):
- Enable “Mobile Push Notification” delivery channel
- Set delivery priority to “Immediate” (not batched)
- Verify subscription is active for your recruiting user roles
-
Configure notification routing:
- Setup and Maintenance > Manage Notification Preferences
- Set recruiting notifications to bypass batching: HCM_RECRUITING_NOTIFICATION_BATCH = N
- Enable real-time delivery: HCM_RECRUITING_REALTIME_PUSH = Y
-
Verify mobile API gateway configuration:
- Ensure recruiting module has mobile push enabled: HCM_RECRUITING_MOBILE_PUSH_ENABLED = Y
- Check notification service endpoint is configured correctly
Testing and Validation:
After implementing these changes:
- Clear existing device token registrations and re-register
- Test with a candidate submission in a non-production requisition
- Monitor notification delivery logs in Oracle HCM Cloud (Navigator > Tools > Notification Diagnostic Dashboard)
- Verify payload size in delivery logs - should be under 3KB for reliable delivery
- Test on devices in various states: active, background, fully closed, battery saver mode
The combination of proper device token management with recruiting scope, optimized notification payload, and correct platform permissions should resolve your delivery issues. If notifications still fail, check your FCM/APNS server key configuration in Oracle HCM Cloud - recruiting notifications require a separate server key registration from standard HCM notifications in some configurations.