Job Profile Building Update (2)

สรุปแนวทางล่าสุดสำหรับการสร้าง HR Job Function, Workstream, Job Role, Job Profile และ Career Path Builder เพื่อเตรียมข้อมูลไปใช้กับ Talent Intelligence Hub.

วันที่ประชุม 25/06

1. Key Highlights

2. Job Role Master Count

Target Job Role Master = 603 roles

จำนวนนี้คือ role master ตาม condition ล่าสุดของเรา ไม่ใช่แค่ role ที่มีพนักงานอยู่วันนี้. Sheet ที่ต้องใช้เป็น master คือ Target_Job_Role_Master.

136 Current Active Job Roles มาจาก Job_Role_Master; เป็น role ที่มีคนอยู่จริงใน employee mapping ปัจจุบัน.
467 Vacant / Career Path Target Roles role ที่ยังไม่มี incumbent แต่ต้องมีไว้เป็นปลายทาง career path, competency และ skill mapping.
603 Total Target Job Roles จำนวน role master ทั้งหมดตาม architecture ใหม่: current roles + target roles.
วิธีตอบในที่ประชุม: ถ้าถามว่า role ทั้งหมดตาม architecture มีกี่ role ให้ตอบ 603 Target Job Roles. ถ้าถามว่า role ที่มีคนอยู่จริงตอนนี้มีกี่ role ให้ตอบ 136 Active Job Roles.

3. Recap and Task

Recap
ปัญหาหลักคือโครงสร้าง Job Function และ Job Code เดิมในระบบยัง broad เกินไป ทำให้ใช้งาน Talent Intelligence Hub ได้ไม่ดี แม้ทุกฝ่ายจะเข้าใจ conceptual direction แล้วก็ตาม.
Topic Current Understanding Task / Decision Needed
Function and role redesign ต้องแตก HR Function ใหม่ และแตก Job Role ใหม่จากข้อมูลเดิมที่เคยกว้างมาก. ใช้ Job Role เป็น core mapping object โดย role จะสะท้อน Function, Workstream และ Career Stage.
Employee placement ต้องรู้ว่าแต่ละคนจากหน้างานจริงควรไปอยู่ HR Function ใหม่ไหน. จัด placement ให้ครบ และ park case ที่ยังย้ายไม่ได้หรือไม่ชัดไว้ตัดสินใจร่วมกัน.
Function workstreams แต่ละ HR Function ต้องมี Workstream ที่ reusable. สรุป workstream ของแต่ละ function เช่น payroll, employee services, HR technology, talent acquisition, HRBP scope และอื่น ๆ.
Career path builder ต้องเห็นทางเติบโตของแต่ละ function จากฐาน pyramid ไปถึงระดับบน. ออกแบบ career path ภายใน function และทางเลือกการเติบโตแบบ cross function ให้เป็นภาพที่ใช้คุยต่อได้.

4. ทำความเข้าใจตัว Job Profile ใหม่

Correct concept
Job Role คือ object หลักสำหรับ competency, proficiency และ skill mapping. ส่วน Job Profile เป็นข้อมูลที่ attached กับ role เพื่อเก็บ requirement เช่น education, experience, job description และ requirement อื่น ๆ.
Clarification
Job Profile ไม่ใช่ตัวบอก Workstream ของ HR. Workstream ต้องอยู่ใน Job Role architecture ส่วน Job Profile ใช้อธิบายว่าบทบาทนั้นต้องการคุณสมบัติอะไร.
flowchart TB A["Job Role
Primary mapping object"] --> B["Competency Mapping"] A --> C["Skill Mapping"] A --> D["Proficiency Level Mapping"] A --> E["Job Profile"] E --> F["Education"] E --> G["Experience"] E --> H["Job Description"] E --> I["Requirements"] classDef role fill:#FCE7F3,stroke:#DB2777,color:#500724,stroke-width:2px classDef mapping fill:#DCFCE7,stroke:#16A34A,color:#052E16,stroke-width:2px classDef profile fill:#F8FAFC,stroke:#64748B,color:#111827,stroke-width:2px class A role class B,C,D mapping class E,F,G,H,I profile

5. Conditional About Job Role and Level Track

How We Create Role Titles

The project started from a structural problem in the legacy HR data. The old setup was sufficient for broad job code administration, but it was not detailed enough to build future Job Roles, Job Profiles, and competency mapping for Talent Intelligence.

Root problem
The legacy Job Family was Human Resources, but the Job Function layer had very few usable categories, mainly HR Analyst and HR Operations. Job code titles carried job level and level track, such as JL8M-HR HR Analyst, but the actual HR workstream was still hidden behind a broad label.
Why this blocks the next system step
Job Role needs to become the primary mapping object for competencies, skills, and proficiency levels. Job Profile can then be attached to the role as a requirement container for education, experience, job description, and other role requirements. If the source structure only says HR Analyst or HR Operations, it cannot explain whether the employee performs recruitment, HR technology, payroll, HRBP, compensation, learning, employee relations, or organization development work.
Initial C-level direction
The agreed direction was to expand HR Job Function into a more meaningful architecture and create Job Roles from the combination of Job Function and level track. This was a strong first step, but the first role rule was still too broad when implemented in the system.
System issue found after implementation
If we kept the first rule, different JL levels could produce the same role title while the system generated different role codes. That is not clear for HR users and becomes confusing when writing competency mapping, because the business sees the same role name but the system treats them as different role records.
flowchart TB A["Legacy Job Family
Human Resources"] --> B["Legacy Job Function"] B --> C["HR Analyst"] B --> D["HR Operations"] C --> E["Job Code Title
Job Level plus Level Track plus broad HR label
Example JL8M-HR HR Analyst"] D --> E E --> F["Job Code Mapping
Employees mapped through broad job codes"] F --> G["Weak foundation
for Job Role"] G --> H["Weak foundation
for Job Profile"] H --> I["Weak foundation
for competency mapping"] classDef source fill:#FFF7ED,stroke:#EA580C,color:#111827,stroke-width:2px classDef legacy fill:#E0F2FE,stroke:#0284C7,color:#0F172A,stroke-width:2px classDef code fill:#F8FAFC,stroke:#64748B,color:#111827,stroke-width:2px classDef risk fill:#FEE2E2,stroke:#DC2626,color:#7F1D1D,stroke-width:2px class A source class B,C,D legacy class E,F code class G,H,I risk
--- config: fontFamily: "'Inter Variable', 'Noto Sans Thai', 'Inter', sans-serif" --- flowchart TB A["Job Family
Human Resources"] --> F["Expanded HR Job Functions"] subgraph Functions["
New Job Function Architecture"] direction TB subgraph FunctionRowOne[" "] direction LR F1("<div style='width:190px;height:55px;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 8px;box-sizing:border-box;line-height:1.15;'>HR Shared<br/>Services</div>") F2("<div style='width:190px;height:55px;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 8px;box-sizing:border-box;line-height:1.15;'>HR Business<br/>Partner</div>") F3("<div style='width:190px;height:55px;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 8px;box-sizing:border-box;line-height:1.15;'>Learning and<br/>Development</div>") end subgraph FunctionRowTwo[" "] direction LR F4("<div style='width:190px;height:55px;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 8px;box-sizing:border-box;line-height:1.15;'>Employee Relation &<br/>Compliance and Engagement</div>") F5("<div style='width:190px;height:55px;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 8px;box-sizing:border-box;line-height:1.15;'>Recruit</div>") F6("<div style='width:190px;height:55px;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 8px;box-sizing:border-box;line-height:1.15;'>Organization<br/>Development</div>") end subgraph FunctionRowThree[" "] direction LR F7("<div style='width:190px;height:55px;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 8px;box-sizing:border-box;line-height:1.15;'>Compensation &<br/>Benefits</div>") F8("<div style='width:190px;height:55px;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 8px;box-sizing:border-box;line-height:1.15;'>HR Technology</div>") F9("<div style='width:190px;height:55px;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 8px;box-sizing:border-box;line-height:1.15;'>HR Management</div>") end end F --> Functions Functions --> R["First Job Role Rule
Job Function plus Level Track"] subgraph Tracks["Initial Level Track Design"] direction TB O["Operational
JL1 to JL3
Staff / Senior Officer"] P["Professional
JL4 to JL8
Specialist / Professional"] M["Managerial
JL9 to JL10"] X["Executive
JL11"] end R --> Tracks O --> JR["Job Role
Primary mapping object for competencies,
skills, and proficiency levels"] P --> JR M --> JR X --> JR JR --> JP["Job Profile
Requirement container attached to role
education, experience, job description, requirements"] JP --> G["Goal
Talent Intelligence readiness"] classDef family fill:#FFF7ED,stroke:#EA580C,color:#111827,stroke-width:2px classDef function fill:#DCFCE7,stroke:#16A34A,color:#052E16,stroke-width:2px classDef rule fill:#EDE9FE,stroke:#7C3AED,color:#2E1065,stroke-width:2px classDef level fill:#DBEAFE,stroke:#2563EB,color:#172554,stroke-width:2px classDef role fill:#FCE7F3,stroke:#DB2777,color:#500724,stroke-width:2px classDef profile fill:#F8FAFC,stroke:#64748B,color:#111827,stroke-width:2px classDef goal fill:#FEF3C7,stroke:#D97706,color:#78350F,stroke-width:2px classDef recruit fill:#D9F99D,stroke:#65A30D,color:#1A2E05,stroke-width:2px classDef tech fill:#FBCFE8,stroke:#DB2777,color:#500724,stroke-width:2px classDef hrbp fill:#FECACA,stroke:#B91C1C,color:#450A0A,stroke-width:2px classDef er fill:#BBF7D0,stroke:#16A34A,color:#052E16,stroke-width:2px classDef cb fill:#DDD6FE,stroke:#7C3AED,color:#2E1065,stroke-width:2px classDef ss fill:#BFDBFE,stroke:#2563EB,color:#172554,stroke-width:2px classDef lnd fill:#FED7AA,stroke:#EA580C,color:#431407,stroke-width:2px classDef od fill:#FDE68A,stroke:#B45309,color:#451A03,stroke-width:2px classDef mgmt fill:#E2E8F0,stroke:#475569,color:#0F172A,stroke-width:2px style Functions fill:#F8FAFC,stroke:#CBD5E1,stroke-width:1px,color:#111827 style FunctionRowOne fill:transparent,stroke:transparent style FunctionRowTwo fill:transparent,stroke:transparent style FunctionRowThree fill:transparent,stroke:transparent class A family class F function class F1 ss class F2 hrbp class F3 lnd class F4 er class F5 recruit class F6 od class F7 cb class F8 tech class F9 mgmt class R rule class O,P,M,X level class JR role class JP profile class G goal
flowchart TB A["Issue found
in the first role rule"] --> B["Operational issue
JL1 to JL3 had only Staff and Senior Officer"] B --> C["JL2 did not have a clear stage"] A --> D["Professional issue
JL4 to JL8 had only Specialist and Professional"] D --> E["Specialist
Individual contributor
No team"] D --> F["Professional
Has team or direct reports"] F --> G["Role label depended on reporting line"] C --> H["System ambiguity"] G --> H H --> I["Different JL levels could share
the same role title"] I --> J["System creates different role codes"] J --> K["Confusing for competency mapping"] K --> L["Refined rule"] L --> M["Workstream plus career stage"] M --> N["Role title and role code
both show the layer"] classDef issue fill:#FEE2E2,stroke:#DC2626,color:#7F1D1D,stroke-width:2px classDef detail fill:#FFF7ED,stroke:#EA580C,color:#111827,stroke-width:2px classDef ambiguity fill:#EDE9FE,stroke:#7C3AED,color:#2E1065,stroke-width:2px classDef fix fill:#DCFCE7,stroke:#16A34A,color:#052E16,stroke-width:2px class A,B,D issue class C,E,F,G detail class H,I,J,K ambiguity class L,M,N fix

ตัวอย่างปัญหาในระบบ: Role ชื่อซ้ำ แต่ Code ต่าง

new_job_role job_role_code
Recruit Talent Acquisition Specialist JL5-HR-REC-TA-SPL
Recruit Talent Acquisition Specialist JL5-HR-REC-TA-SPL
Recruit Talent Acquisition Specialist JL4-HR-REC-TA-SPL
Recruit Talent Acquisition Specialist JL6-HR-REC-TA-SPL
Recruit Talent Acquisition Specialist JL7-HR-REC-TA-SPL
Why this is a problem
Business เห็นชื่อ Role เหมือนกันทั้งหมด แต่ระบบแยกเป็นคนละ Role Code ตาม JL. เวลาเอาไปทำ competency dictionary, skill mapping หรือ proficiency mapping จะไม่ชัดว่า Role เหล่านี้ควรใช้ requirement ชุดเดียวกันหรือคนละชุด.
Final rule correction
We therefore refined the rule so role title and role code both show the real layer. The current design uses functional workstream plus a clearer career stage, instead of relying only on broad level track or direct reports.
Problem Found Why It Matters Architecture Response
Legacy HR structure had too few usable Job Functions HR Analyst and HR Operations do not explain the actual HR functional work needed for role and job profile design Create a new HR function and workstream architecture
Job code title carried level but not the real workstream Example titles such as JL8M-HR HR Analyst still hide whether the work is HR technology, recruitment, C and B, shared services, or HRBP Use AI and HR review logic to infer workstream and role title
First role rule still compressed JL1 to JL3 Only Staff and Senior Officer were available, so JL2 did not have a clear role stage Add Officer so JL1, JL2, and JL3 each have their own career stage
First role rule still compressed JL4 to JL8 Specialist meant individual contributor with no team. Professional meant having a team or direct reports. This made role labels depend too much on org chart reporting. Use job level plus formal title evidence to create finer career stages
Different JL levels could produce the same role title The system would show the same role name but different role codes, which is confusing when building competency mapping Make both role title and role code show the actual layer
Back office and operations roles were still too generic Level alone did not show whether the work was payroll, employee service, personnel administration, or HR operations Use workstream plus career stage, such as HR Operations Senior Officer or Payroll Operations Senior Officer

15. Career Mobility Diagram Carousel

How to read this page
This view converts the Excel mobility analysis into connected diagrams. Solid arrows show movement inside the same function or workstream cluster. Dotted arrows show cross-function mobility options that still require competency, skill, and job profile gap validation before using in TIH.

15. Career Mobility Worksheet Carousel

How to read this page
This section is separated from the main career path view. Each box is a Job Role node, horizontal arrows show movement inside the same function, and dashed cross-function arrows show mobility options that need competency and skill gap validation before using in Talent Intelligence Hub.

5. Role Title Design Logic

A role title should explain what functional work the employee performs and at what enterprise level. It should not depend on temporary org chart movement alone.

Final formula
Role Title = Functional Workstream + Career Stage
Why this matters
This gives HR one common language across job codes, departments, and legacy title variations. It also prevents broad roles such as HR Analyst or HR Operation from becoming unusable role dictionary entries.
flowchart LR A["HR Function
Which HR domain owns the work?"] --> D["Role Architecture"] B["Functional Workstream
What work is actually performed?"] --> D C["Career Stage
What level is this role?"] --> D D --> E["Final Role Title"] E --> F["HR Operations Senior Officer"] E --> G["Talent Acquisition Specialist"] E --> H["HR Technology Management AVP"] classDef input fill:#E0F2FE,stroke:#0284C7,color:#0F172A,stroke-width:2px classDef architecture fill:#EDE9FE,stroke:#7C3AED,color:#2E1065,stroke-width:2px classDef title fill:#FCE7F3,stroke:#DB2777,color:#500724,stroke-width:2px classDef example fill:#DCFCE7,stroke:#16A34A,color:#052E16,stroke-width:2px class A,B,C input class D architecture class E title class F,G,H example

6. Why Role Title Is Not the Same as Position Title

flowchart TB A["Legacy position title
Often local, operational, and inconsistent"] --> B["Interpretation layer"] C["Job level
Formal grade anchor"] --> B D["HR workstream
Functional ownership"] --> B B --> E["Normalized role title
Consistent and reusable"] E --> F["Used for role dictionary"] E --> G["Primary key for competency mapping"] E --> H["Primary key for skill mapping"] E --> I["Anchor for future job profile records"] classDef source fill:#FFF7ED,stroke:#EA580C,color:#111827,stroke-width:2px classDef logic fill:#EDE9FE,stroke:#7C3AED,color:#2E1065,stroke-width:2px classDef role fill:#FCE7F3,stroke:#DB2777,color:#500724,stroke-width:2px classDef downstream fill:#DCFCE7,stroke:#16A34A,color:#052E16,stroke-width:2px class A,C,D source class B logic class E role class F,G,H,I downstream
Input Signal How It Is Used Reason
HR Function Defines the top-level domain Keeps ownership clear across Recruit, HR Technology, HRBP, Shared Services, and other HR domains.
Functional Workstream Forms the main body of the role title Captures the actual nature of work, not the old broad job function.
Job Level Anchors the level of the role More stable than reporting hierarchy and aligns with job code architecture.
Legacy Position Title Evidence for professional, manager, or director stage Helps distinguish specialist track from manager track when the same job level contains both.
Direct Reports Validation context only Reporting lines can change; role architecture should remain stable unless the formal role changes.

7. Career Stage Decision

Important for C-level discussion
Direct reports do not directly decide the role title. Job level and formal title evidence decide the career stage. Direct reports are used to challenge or validate the decision.

Career Stage Pyramid

Executive JL11. Enterprise HR leadership and final accountability across the HR architecture.
People Leader Path Department Manager, Manager, and Director roles inside JL4 to JL8 when formal title evidence supports leadership scope.
Operational Foundation JL1 to JL3. Staff, Officer, and Senior Officer stages for execution and HR service delivery work.
Executive JL11 Senior Leadership JL9 to JL10 | AVP / VP People Leader Path Department Manager / Manager / Director Professional Path Specialist / Professional / Senior / Lead / Principal Operational Foundation JL1 to JL3 | Staff / Officer / Senior Officer
Senior Leadership JL9 to JL10. AVP and VP levels that lead functional scope while staying connected to the accountable HR Function.
Professional Path JL4 to JL8 individual contributor growth path. Job level and title evidence create clearer stage labels.
flowchart TD A["Start with job level"] --> B{Which band?} B --> C["Operational
JL1 to JL3"] C --> C1["Staff"] C --> C2["Officer"] C --> C3["Senior Officer"] B --> D["Professional and People Leader Band
JL4 to JL8"] D --> D1["Specialist"] D --> D2["Professional"] D --> D3["Senior Professional"] D --> D4["Lead Professional"] D --> D5["Principal Professional"] D --> D6["Department Manager"] D --> D7["Manager"] D --> D8["Director"] B --> E["Senior Leadership
JL9 to JL10"] E --> E1["AVP"] E --> E2["VP"] B --> F["Executive
JL11"] F --> F1["Executive"] classDef start fill:#FFF7ED,stroke:#EA580C,color:#111827,stroke-width:2px classDef decision fill:#FEF3C7,stroke:#D97706,color:#78350F,stroke-width:2px classDef band fill:#DBEAFE,stroke:#2563EB,color:#172554,stroke-width:2px classDef stage fill:#DCFCE7,stroke:#16A34A,color:#052E16,stroke-width:2px class A start class B decision class C,D,E,F band class C1,C2,C3,D1,D2,D3,D4,D5,D6,D7,D8,E1,E2,F1 stage
Level Area Career Stage Role Title Example
JL3 Senior Officer HR Operations Senior Officer
JL4 Specialist Employee Relations Specialist
JL6 with professional title Senior Professional Manpower and Data Analytics Senior Professional
JL6 with manager title Department Manager HR Operations Department Manager
JL9 AVP HR Technology Management AVP

8. Management Role Logic

flowchart TD A["Senior role"] --> B{Is it JL11?} B -->|Yes| C["Top-level HR Management"] C --> D["Enterprise HR Management Executive"] B -->|No| E{Is it JL9 or JL10?} E -->|Yes| F["Keep the original HR function"] F --> G["Create a management workstream inside that function"] G --> H["Keep Management in the role title"] H --> I["HR Technology Management AVP"] H --> J["Compensation and Benefits Management AVP"] H --> K["Organization Development Management AVP"] H --> L["HR Shared Services Management AVP"] E -->|No| M["Use normal workstream and career stage"] classDef start fill:#FFF7ED,stroke:#EA580C,color:#111827,stroke-width:2px classDef decision fill:#FEF3C7,stroke:#D97706,color:#78350F,stroke-width:2px classDef management fill:#EDE9FE,stroke:#7C3AED,color:#2E1065,stroke-width:2px classDef result fill:#DCFCE7,stroke:#16A34A,color:#052E16,stroke-width:2px classDef normal fill:#E0F2FE,stroke:#0284C7,color:#0F172A,stroke-width:2px class A start class B,E decision class C,F,G,H management class D,I,J,K,L result class M normal
Why this design is better
JL9 and JL10 leaders are not moved into the top-level HR Management function. They remain accountable to their domain, while the Management workstream shows leadership responsibility inside that domain. Only JL11 represents enterprise HR management.

9. HR Business Partner Workstream Logic

Governance decision
Human Resources Business Partner Office exists in the source file, but it is treated as an HR container, not a business workstream. We do not use it as the final HRBP workstream.
flowchart TD A["HR Business Partner employee"] --> B{Business unit signal} B -->|Real business unit| C["Use business unit as scope"] C --> C1["สัตว์เลี้ยง HR Business Partner"] C --> C2["เกษตรอุตสาหกรรม HR Business Partner"] C --> C3["InterBiz Operation HR Business Partner"] B -->|HRBP Office container| D["Do not use as final workstream"] D --> E["Read scope from department or title"] E --> E1["ใต้ตอนล่าง HR Business Partner"] E --> E2["ตะวันออก HR Business Partner"] E --> E3["Own Channel HR Business Partner"] E --> E4["Domestic Commercial One HR Business Partner"] A --> F{Senior HRBP leader?} F -->|Yes| G["Management workstream with explicit scope"] G --> G1["HR Business Partner Management
กลุ่มปฏิบัติการผลิตปศุสัตว์ AVP"] G --> G2["HR Business Partner Management
ปฏิบัติการผลิตโรงงาน AVP"] G --> G3["HR Business Partner Management
สำนักทรัพยากรมนุษย์ VP"] classDef start fill:#FFF7ED,stroke:#EA580C,color:#111827,stroke-width:2px classDef decision fill:#FEF3C7,stroke:#D97706,color:#78350F,stroke-width:2px classDef business fill:#DCFCE7,stroke:#16A34A,color:#052E16,stroke-width:2px classDef container fill:#FEE2E2,stroke:#DC2626,color:#7F1D1D,stroke-width:2px classDef scope fill:#DBEAFE,stroke:#2563EB,color:#172554,stroke-width:2px classDef leader fill:#EDE9FE,stroke:#7C3AED,color:#2E1065,stroke-width:2px class A start class B,F decision class C,C1,C2,C3 business class D container class E,E1,E2,E3,E4 scope class G,G1,G2,G3 leader
Source Situation Architecture Decision Reason
Real business unit is available Use business unit plus HR Business Partner Creates business-facing HRBP workstreams that C-level leaders can recognize.
HRBP Office container is present Ignore container and derive scope from department or title Prevents a generic internal HR label from hiding the actual HRBP coverage area.
Senior HRBP leader with scope Use HR Business Partner Management plus scope Separates HRBP leadership roles by business or operational scope.

10. Role Code and Deduplication

flowchart LR A["Role identity"] --> B["HR function"] A --> C["Workstream"] A --> D["Job level"] A --> E["Career stage"] B --> F["Role code"] C --> F D --> F E --> F F --> G{Duplicate title or code?} G -->|No| H["Create one role master record"] G -->|Yes| I["Stop and fix before delivery"] H --> J["Ready for competency dictionary"] H --> K["Ready for skill mapping"] H --> L["Ready to attach job profile requirements"] classDef identity fill:#FFF7ED,stroke:#EA580C,color:#111827,stroke-width:2px classDef component fill:#DBEAFE,stroke:#2563EB,color:#172554,stroke-width:2px classDef code fill:#EDE9FE,stroke:#7C3AED,color:#2E1065,stroke-width:2px classDef decision fill:#FEF3C7,stroke:#D97706,color:#78350F,stroke-width:2px classDef pass fill:#DCFCE7,stroke:#16A34A,color:#052E16,stroke-width:2px classDef fail fill:#FEE2E2,stroke:#DC2626,color:#7F1D1D,stroke-width:2px class A identity class B,C,D,E component class F code class G decision class H,J,K,L pass class I fail
Why this matters downstream
Competency and skill dictionaries need stable role keys. If the same role title appears with different codes, or the same code points to different role names, future mapping becomes unreliable. The pipeline now fails validation if that happens.
Example Role Title Example Role Code
HR Technology Management AVP HR-TECH-TECHMGMT-JL9-AVP
HR Operations Senior Officer HR-SS-HROPS-JL3-SOF
ใต้ตอนล่าง HR Business Partner Specialist HR-HRBP-SOUTHLOWER-JL4-SPL

11. Final Decision Summary

flowchart TB A["Old HR structure
Too broad for Talent Intelligence"] --> B["HR architecture expertise"] B --> C["Classify HR function"] B --> D["Identify workstream"] B --> E["Anchor level by job level"] B --> F["Use title as formal role evidence"] B --> G["Use direct reports only as validation context"] C --> H["Clear role architecture"] D --> H E --> H F --> H G --> H H --> I["Consistent role title"] H --> J["Unique role code"] H --> K["Reusable role dictionary"] H --> L["Primary foundation for competency and skill mapping"] classDef old fill:#FEE2E2,stroke:#DC2626,color:#7F1D1D,stroke-width:2px classDef interpret fill:#FFF7ED,stroke:#EA580C,color:#111827,stroke-width:2px classDef signal fill:#DBEAFE,stroke:#2563EB,color:#172554,stroke-width:2px classDef architecture fill:#EDE9FE,stroke:#7C3AED,color:#2E1065,stroke-width:2px classDef output fill:#DCFCE7,stroke:#16A34A,color:#052E16,stroke-width:2px class A old class B interpret class C,D,E,F,G signal class H architecture class I,J,K,L output
Stable enough for governance Detailed enough for HR ownership Structured enough for competency design Not dependent on temporary reporting lines