Have something to say?

Tell us how we could make the product more useful to you.

Auto-Assignment of Certification Requirements Based on Role + State + Client

Overview Build a rules-engine-driven workflow that automatically generates a full set of required certifications for a worker based on three inputs: Role, State, and Client/Hospital. Once generated, the system should manage the full lifecycle of each requirement — including status tracking, reminders, and renewals. Problem Today, certification requirements are manually determined and tracked, leading to: Missed or inconsistent requirements across similar placements Manual effort to look up what's needed per state/client Compliance gaps when certifications expire without notice No standardized process for renewals or reminder notifications Proposed Solution 1. Rules Engine — Layered Requirement Logic Requirements should be resolved by stacking rules in priority layers: | Layer | Scope | Example | | -- | -- | -- | | Universal | All roles, all states, all clients | BLS, TB Test, Background Check, Drug Screen, HIPAA, OSHA, Fire Safety | | Role-specific | By role | RN → ACLS, IV Cert, State License; CNA → Abuse Training; RT → Ventilator Competency | | State-specific | By role + state | RN in California → COVID Vax, Hepatitis B; RN in CA/NY at certain hospitals → NRP | | Client-specific | By role + client/hospital | Hospital clients → PALS, Restraint Training, Physical Exam; SNF clients → Dementia Care | Example: An RN in California at Hospital A (Kaiser) would auto-receive: BLS, ACLS, PALS, NRP, TB, Flu, COVID, Hepatitis B, Background Check, Drug Screen, HIPAA, OSHA, Fire Safety, State License, IV Cert, Restraint Training, Physical Exam, Ventilator Competency 2. Certification Lifecycle Management Each generated certification record should track: Status: Missing → Submitted → Active → Renewal Due → Expired Issue date and expiration date (auto-calculated from validity period) Renewal window (configurable per cert type, e.g., 60 days before expiry for BLS, 90 days for licenses) Non-expiring certs (e.g., Hepatitis B) marked as "Completed" with no renewal cycle 3. Reminders & Notifications Automated reminders sent when a certification enters its renewal window Escalation notifications if a cert expires without renewal Channels: Email + in-app notifications (SMS as a future enhancement) Configurable reminder cadence (e.g., 60 days, 30 days, 14 days, 7 days before expiry) 4. Admin Configuration Admin UI to manage rules (add/edit/remove cert requirements per role/state/client combination) Ability to bulk-update rules (e.g., "add COVID vaccination requirement to all California roles") Audit log of rule changes Acceptance Criteria [ ] Given a Role + State + Client selection, the system auto-generates the correct set of required certifications [ ] Rules are layered (universal → role → state → client) and produce the union of all matching rules [ ] Each certification has a configurable validity period and renewal window [ ] Certifications auto-transition to "Renewal Due" status when entering their renewal window [ ] Certifications auto-transition to "Expired" when past their expiration date [ ] Reminder notifications are sent at configurable intervals before expiration [ ] Admins can create, edit, and delete rules via an admin interface [ ] Compliance percentage is calculated and visible per worker [ ] Non-expiring certifications (e.g., Hepatitis B) are handled correctly Technical Considerations Rules engine should be data-driven (stored in DB, not hardcoded) for easy admin management Consider a certification_rules table with columns: role, state, client, cert_type, validity_months, renewal_window_days Background job / cron for daily status checks and reminder dispatch API endpoints needed: generate requirements, update cert status, CRUD for rules, get compliance summary Out of Scope (Future Enhancements) SMS notifications Integration with third-party credential verification services Worker self-service upload portal (separate ticket) Mobile push notifications

Linear About 21 hours ago

💡 Feature Request