Generate Manager Talking Points
SkillMonitoring & opsGenerate manager talking points for employee reviews, 1:1 meetings, and performance discussions based on talent profiles, goals, feedback, and performance metrics
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Generate Manager Talking Points skill
What this skill tells your AI
The instructions your AI receives, as published by happy-technologies-llc/happy-platform-skills in skills/hrsd/generate-talking-points/SKILL.md and read by ahel’s review.
Overview
This skill produces structured talking points for managers preparing for employee performance discussions. It covers:
- Pulling employee talent profiles with skills, competencies, and career aspirations
- Aggregating goal progress data including completion rates and milestone tracking
- Collecting peer feedback, self-assessments, and prior review ratings
- Synthesizing performance metrics into actionable discussion topics
- Generating conversation frameworks for reviews, 1:1s, and development planning sessions
When to use:
- Before annual or mid-year performance reviews
- Preparing for regular 1:1 meetings with direct reports
- When onboarding as a new manager and needing team context
- During talent calibration sessions requiring evidence-based discussion
- Before career development conversations or promotion discussions
Prerequisites
- Roles:
sn_hr_talent.manager,sn_hr_core.manager,sn_hr_talent.admin, oradmin - Plugins:
com.sn_hr_talent(Talent Management),com.sn_hr_core(HR Core) - Access: Read access to sn_hr_talent_profile, sn_hr_talent_goal, sn_hr_talent_review, sn_hr_talent_feedback tables
- Knowledge: Understanding of your organization's performance rating scale, competency framework, and review cycle cadence
Key Talent Tables
| Table | Purpose | Key Fields |
|---|---|---|
sn_hr_talent_profile | Employee talent profiles | user, skills, competencies, career_interests, potential_rating, risk_of_loss, last_review_date |
sn_hr_talent_goal | Employee goals and objectives | user, short_description, category, status, percent_complete, due_date, weight, metric_value |
sn_hr_talent_review | Performance review records | user, review_cycle, overall_rating, reviewer, state, comments, review_date |
sn_hr_talent_feedback | Peer and manager feedback | user, feedback_type, provider, content, rating, created_on |
sys_user | Employee profile | name, title, department, manager, location, date_joined |
Procedure
Step 1: Retrieve Employee Talent Profile
Query the employee's talent profile for skills, competencies, and career data.
Using MCP (Claude Code/Desktop):
Tool: SN-Query-Table
Parameters:
table_name: sn_hr_talent_profile
query: user=[employee_sys_id]
fields: sys_id,user,skills,competencies,career_interests,potential_rating,risk_of_loss,strengths,development_areas,last_review_date,current_role_tenure
limit: 1
Using REST API:
GET /api/now/table/sn_hr_talent_profile?sysparm_query=user=[employee_sys_id]&sysparm_fields=sys_id,user,skills,competencies,career_interests,potential_rating,risk_of_loss,strengths,development_areas,last_review_date&sysparm_limit=1&sysparm_display_value=true
Step 2: Gather Goal Progress
Query the employee's current goals and completion status.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: sn_hr_talent_goal
query: user=[employee_sys_id]^active=true^ORDERBYDESCdue_date
fields: sys_id,short_description,category,status,percent_complete,due_date,weight,metric_value,metric_target,comments,created_on
limit: 20
Using REST API:
GET /api/now/table/sn_hr_talent_goal?sysparm_query=user=[employee_sys_id]^active=true^ORDERBYDESCdue_date&sysparm_fields=sys_id,short_description,category,status,percent_complete,due_date,weight,metric_value,metric_target,comments&sysparm_limit=20&sysparm_display_value=true
Step 3: Collect Feedback and Reviews
Pull peer feedback and prior review ratings.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: sn_hr_talent_feedback
query: user=[employee_sys_id]^ORDERBYDESCsys_created_on
fields: sys_id,feedback_type,provider,content,rating,sys_created_on
limit: 20
Using REST API:
GET /api/now/table/sn_hr_talent_feedback?sysparm_query=user=[employee_sys_id]^ORDERBYDESCsys_created_on&sysparm_fields=sys_id,feedback_type,provider,content,rating,sys_created_on&sysparm_limit=20&sysparm_display_value=true
Pull prior review history:
Tool: SN-Query-Table
Parameters:
table_name: sn_hr_talent_review
query: user=[employee_sys_id]^ORDERBYDESCreview_date
fields: sys_id,review_cycle,overall_rating,reviewer,state,comments,review_date,strengths_noted,areas_for_improvement
limit: 5
Step 4: Generate Talking Points
Build structured talking points from aggregated data:
Tool: SN-Execute-Background-Script
Parameters:
script: |
var empSysId = '[employee_sys_id]'; // Replace with target employee
var talkingPoints = {
generated_date: new GlideDateTime().toString(),
employee: {},
goal_summary: { total: 0, on_track: 0, at_risk: 0, completed: 0, avg_completion: 0 },
strengths: [],
development_areas: [],
feedback_themes: { positive: [], constructive: [] },
review_history: [],
discussion_topics: [],
suggested_questions: []
};
// Employee info
var user = new GlideRecord('sys_user');
user.get(empSysId);
talkingPoints.employee = {
name: user.name.toString(),
title: user.title.toString(),
department: user.department.getDisplayValue(),
manager: user.manager.getDisplayValue(),
tenure: user.date_joined ? gs.dateDiff(user.date_joined.toString(), new GlideDateTime().toString(), true) + ' days' : 'Unknown'
};
// Goal progress
var goals = new GlideRecord('sn_hr_talent_goal');
goals.addQuery('user', empSysId);
goals.addQuery('active', true);
goals.query();
var completionTotal = 0;
while (goals.next()) {
talkingPoints.goal_summary.total++;
var pct = parseInt(goals.percent_complete.toString()) || 0;
completionTotal += pct;
if (pct >= 100) talkingPoints.goal_summary.completed++;
else if (pct >= 50) talkingPoints.goal_summary.on_track++;
else talkingPoints.goal_summary.at_risk++;
}
if (talkingPoints.goal_summary.total > 0) {
talkingPoints.goal_summary.avg_completion = Math.round(completionTotal / talkingPoints.goal_summary.total);
}
// Talent profile
var profile = new GlideRecord('sn_hr_talent_profile');
profile.addQuery('user', empSysId);
profile.query();
if (profile.next()) {
talkingPoints.strengths = profile.strengths.toString().split(',').map(function(s) { return s.trim(); }).filter(Boolean);
talkingPoints.development_areas = profile.development_areas.toString().split(',').map(function(s) { return s.trim(); }).filter(Boolean);
}
// Feedback themes
var fb = new GlideRecord('sn_hr_talent_feedback');
fb.addQuery('user', empSysId);
fb.addQuery('sys_created_on', '>=', gs.monthsAgo(6));
fb.query();
while (fb.next()) {
var content = fb.content.toString().substring(0, 200);
var rating = parseInt(fb.rating.toString()) || 3;
if (rating >= 4) talkingPoints.feedback_themes.positive.push(content);
else if (rating <= 2) talkingPoints.feedback_themes.constructive.push(content);
}
// Review history
var review = new GlideRecord('sn_hr_talent_review');
review.addQuery('user', empSysId);
review.orderByDesc('review_date');
review.setLimit(3);
review.query();
while (review.next()) {
talkingPoints.review_history.push({
cycle: review.review_cycle.getDisplayValue(),
rating: review.overall_rating.getDisplayValue(),
date: review.review_date.toString()
});
}
// Generate discussion topics based on data
if (talkingPoints.goal_summary.at_risk > 0)
talkingPoints.discussion_topics.push('Address ' + talkingPoints.goal_summary.at_risk + ' at-risk goals and identify blockers');
if (talkingPoints.goal_summary.completed > 0)
talkingPoints.discussion_topics.push('Recognize completion of ' + talkingPoints.goal_summary.completed + ' goals');
if (talkingPoints.development_areas.length > 0)
talkingPoints.discussion_topics.push('Review progress on development areas: ' + talkingPoints.development_areas.join(', '));
if (talkingPoints.feedback_themes.constructive.length > 0)
talkingPoints.discussion_topics.push('Discuss constructive feedback themes (' + talkingPoints.feedback_themes.constructive.length + ' items)');
// Suggested questions
talkingPoints.suggested_questions = [
'What accomplishments are you most proud of this period?',
'What obstacles are slowing your progress on current goals?',
'How can I better support your development in [development_area]?',
'Where do you see yourself in the next 12-18 months?',
'What skills would you like to develop next?'
];
gs.info('MANAGER TALKING POINTS:\n' + JSON.stringify(talkingPoints, null, 2));
description: "Talent: Generate manager talking points for performance discussion"
Step 5: Search for Context by Theme
Using an encoded query for additional context:
Tool: SN-Query-Table
Parameters:
table_name: sn_hr_talent_feedback
query: user.nameLIKE[employee_name]^rating>=4^123TEXTQUERY321=leadership collaboration^sys_created_on>=javascript:gs.daysAgoStart(90)
limit: 10
Tool Usage
| Operation | MCP Tool | REST Endpoint |
|---|---|---|
| Query Talent Profile | SN-Query-Table | GET /api/now/table/sn_hr_talent_profile |
| Query Goals | SN-Query-Table | GET /api/now/table/sn_hr_talent_goal |
| Query Feedback | SN-Query-Table | GET /api/now/table/sn_hr_talent_feedback |
| Query Reviews | SN-Query-Table | GET /api/now/table/sn_hr_talent_review |
| Search by Theme | SN-Natural-Language-Search | N/A |
| Generate Summary | SN-Execute-Background-Script | POST /api/now/table/sys_trigger |
| Schema Discovery | SN-Discover-Table-Schema | GET /api/now/table/sys_dictionary |
Best Practices
- Data Privacy: Never share raw peer feedback verbatim with the employee; synthesize into themes to protect contributor confidentiality
- Balanced View: Always include both strengths and development areas to avoid recency bias or halo effect
- Goal Alignment: Frame goal discussions in context of team and organizational objectives
- Evidence-Based: Ground every talking point in specific data (goal metrics, feedback quotes, review ratings) rather than impressions
- Forward-Looking: Dedicate at least 40% of talking points to future development, not just backward-looking performance assessment
- Calibration Context: Before reviews, check how the employee's ratings compare to team and department averages
- Cultural Sensitivity: Adapt talking point tone and structure to organizational culture and individual communication preferences
- Follow-Up Tracking: Document agreed-upon action items from the discussion as new goals or tasks
Troubleshooting
Talent Profile Returns No Data
Symptom: Query returns no talent profile for a known employee
Cause: Talent profiles may not be auto-created; they require manager or HR action to initialize
Solution: Check if the employee has an HR profile in sn_hr_core_profile instead. Some organizations use a different profile table or the talent module may not be fully deployed.
Goal Completion Percentages Are All Zero
Symptom: All goals show 0% completion even though progress has been made
Cause: Goal tracking may use milestone-based completion rather than percentage, or updates are tracked in a related task table
Solution: Check for a sn_hr_talent_goal_task or sn_hr_talent_milestone table that feeds completion. Query sys_db_object with nameLIKEgoal for related tables.
Feedback Content Is Encrypted or Restricted
Symptom: Feedback content field returns empty or encoded values
Cause: HR feedback may be protected by field-level encryption or ACLs restricting manager access
Solution: Verify the querying user has sn_hr_talent.manager role. Check if encryption is applied via sys_dictionary encryption attribute on the content field.
Examples
Example 1: Annual Review Preparation
Scenario: Manager preparing for annual performance review
Tool: SN-Query-Table
Parameters:
table_name: sn_hr_talent_goal
query: user=[employee_sys_id]^active=true^due_dateONThis year@javascript:gs.beginningOfThisYear()@javascript:gs.endOfThisYear()
fields: short_description,status,percent_complete,weight,metric_value,metric_target
limit: 15
Generated Talking Points:
- Opening: "Thank you for your contributions this year. Let us review your progress and plan ahead."
- Goal Progress: 8 goals set, 5 completed (63%), 2 on track, 1 at risk (Q4 revenue target at 35%)
- Strengths (from feedback): Consistently recognized for cross-team collaboration and technical mentorship
- Development Areas: Presentation skills (noted in 3 feedback entries), delegation (self-identified)
- Rating Context: Last review: Exceeds Expectations. Current trajectory: Meets/Exceeds
- Discussion Questions: "The Q4 revenue goal is behind; what support do you need to close the gap?"
- Development Plan: Recommend public speaking workshop; consider stretch assignment leading next all-hands
Example 2: Weekly 1:1 Quick Prep
Scenario: Manager needs a quick context refresh before a 30-minute 1:1
Tool: SN-Query-Table
Parameters:
table_name: sn_hr_talent_feedback
query: user.nameLIKE[employee_name]^sys_created_on>=javascript:gs.daysAgoStart(14)
limit: 5
Generated Quick Notes:
- Goal Check-in: API migration project at 70% (was 55% last week); on track for March deadline
- Recent Feedback: Positive note from QA lead about improved test coverage documentation
- Open Item from Last 1:1: Employee requested training budget for cloud certification
- Suggested Opener: "Great progress on the API migration. How is the new testing approach working out?"
Related Skills
hrsd/case-summarization- HR case context for performance discussionshrsd/sentiment-analysis- Employee sentiment analysishrsd/resume-skill-extraction- Skills inventory for development planninghrsd/persona-assistant- HR persona-based assistanceadmin/workflow-creation- Automate review cycle workflows
Signals
- GitHub stars
- 38
- Forks
- 13
- Last commit
- Jul 2026
Advanced
- Catalog kind
- skill
- Gateway key
generate-talking-points- Source
- github.com/happy-technologies-llc/happy-platform-skills