Pipeline run
ea420107-deab-4d30-910e-ccc04ac6dad5
Client output enrichment
v2 Skill cluster · Nature of work · AI index · Tech stack maturity · Evidence · KRA descriptionvocab breakdown (legacy)
Signals
Post-classification
Captured for admin review
Authentication & Authorization: Authenticate users using Microsoft Entra ID. Assign users roles such as Admin and User in SQL Database. Enforce role-based access in the .NET API. Protect Angular route…
1 POST /skills/extract-from-jd
2 POST /skills/extract-details
3 POST /skills/final-role-output
IAM Engineer
domain · Security CASE DOMAINslug: iam-engineer · id: 193 · source: db
Domain=Security; The JD is centered on identity, authentication, authorization, role assignment, and access control across Entra ID, .NET, SQL Server, and Angular, which aligns most strongly with IAM engineering.
Matched skills
Matched dimensions
Matched KRAs
Resolution:
in_db
— role exists in library; skill↔dim and role↔dim links saved when applicable.
Job description
Company Description Threat Intelligence Bureau LTD is an UK based organization and into Cyber Security solutions, Application Development, IT Management, Project Management among other verticals. Role Description You are tasked with implementing Role-Based Access Control (RBAC) for an Angular frontend and .NET backend using Entity Framework SQL roles. The authentication should be handled via Microsoft Entra ID. Experience: 3-7 years Location: Hyderabad Salary: Open and Flexible and will be as per Industry standards The key requirements are: Authentication & Authorization: Authenticate users using Microsoft Entra ID. Assign users roles such as Admin and User in SQL Database. Enforce role-based access in the .NET API. Protect Angular routes based on user roles. Backend (.NET API): Use JWT authentication with Entra ID. Store user roles in SQL Server using Entity Framework. Implement role-based authorization policies in ASP.NET Core. Expose an API endpoint (/api/auth/profile) to return user details and role. Frontend (Angular): Use MSAL (Microsoft Authentication Library) for authentication. Retrieve the user's role from the backend. Implementing a role-based route guard in Angular to restrict access to components based on roles. Interested candidates can send in their latest CV (in word or pdf format only) at arun.narahari@tib.org.in
Skills from this JD
Each row merges API 1 extraction, API 2 library match / v3 orchestration (dimensions + locked dims), and API 3 persistence tags.
Aliases — catalog
- Microsoft Entra ID (CANONICAL) primary
Context tags (catalog)
Stored enrichment (catalog DB)
- Category
- Platform
- Sub-category
- Vendor Saas Platform
- Vendor
- Microsoft
- License
- proprietary
- Year introduced
- 2022
- Confidence
- 0.97
- Version strategy
- NOT_APPLICABLE
Maturity reasoning: Widely listed in enterprise JDs for SSO/IAM and Microsoft docs show it as the successor to Azure AD, indicating broad adoption rather than a niche tool.
Skill profile (library / DB)
- Skill nature
- PLATFORM
- Volatility
- STABLE
- Typical lifespan
- EVERGREEN
- Category id
- 9
- Sub-category id
- 784
- Extractable
- True
- Also category
- False
Dimensions (API 2 worklist)
-
Identity and Access Architecture Catalog dimension db id 137
Library dimension (catalog)
Roles linked in library: Cloud Architect, Cloud Security Engineer
-
Identity and Access Management Products Catalog dimension db id 65
Library dimension (catalog)
Roles linked in library: Cyber Security Engineer
API 3 link attempts (this skill)
| Dimension | Skill↔dim | Role↔dim | Outcome |
|---|---|---|---|
|
Identity and Access Architecture
identity-and-access-architecture
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) |
|
Identity and Access Management Products
identity-and-access-management-products
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) |
Aliases — catalog
- SQL Server (CANONICAL) primary
- SQL Server 2000 (VERSION)
- SQL Server 2005 (VERSION)
- SQL Server 2008 (VERSION)
- SQL Server 2012 (VERSION)
- SQL Server 2014 (VERSION)
- SQL Server 2016 (VERSION)
- SQL Server 2017 (VERSION)
- SQL Server 2019 (VERSION)
- SQL Server 2022 (VERSION)
- SQL Server 6.5 (VERSION)
- SQL Server 7.0 (VERSION)
Context tags (catalog)
Stored enrichment (catalog DB)
- Category
- Datastore
- Sub-category
- Relational Database
- Vendor
- Microsoft
- License
- proprietary
- Year introduced
- 1989
- Confidence
- 0.99
- Version strategy
- NOT_APPLICABLE
Maturity reasoning: SQL Server appears in many enterprise job descriptions and remains a major Microsoft-supported RDBMS with active Azure SQL/SQL Server demand; it is a common hiring-pipeline staple, not a sunset technology.
Skill profile (library / DB)
- Skill nature
- TOOL
- Volatility
- STABLE
- Typical lifespan
- EVERGREEN
- Category id
- 3
- Sub-category id
- 29
- Extractable
- True
- Also category
- False
Dimensions (API 2 worklist)
-
Relational Database Design Catalog dimension db id 4
Library dimension (catalog)
Roles linked in library: .NET Backend Developer, Backend Developer, Kotlin Backend Developer, Node.js Backend Developer, Python Backend Developer, Ruby Backend Developer, Scala Backend Developer
API 3 link attempts (this skill)
| Dimension | Skill↔dim | Role↔dim | Outcome |
|---|---|---|---|
|
Relational Database Design
relational-database-design
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) |
Aliases — catalog
- .NET (CANONICAL) primary
- .NET 5 (VERSION)
- .NET 6 (VERSION)
- .NET 7 (VERSION)
- .NET 8 (VERSION)
- .NET Core (VERSION)
Context tags (catalog)
Stored enrichment (catalog DB)
- Category
- Runtime
- Sub-category
- Runtime Platform
- Vendor
- Microsoft
- License
- mit
- Year introduced
- 2002
- Confidence
- 0.90
- Version strategy
- SEPARATE_ENTITY
- Version tag
- .NET (modern, i.e., .NET 6+)
Maturity reasoning: .NET appears in large volumes of job postings across enterprise, cloud, and backend roles, and Microsoft continues active releases and LTS support, indicating broad hiring-pipeline adoption.
Skill profile (library / DB)
- Skill nature
- RUNTIME
- Volatility
- STABLE
- Typical lifespan
- EVERGREEN
- Category id
- 67
- Sub-category id
- 2564
- Extractable
- True
- Also category
- False
Dimensions (API 2 worklist)
-
C# and .NET Languages Catalog dimension db id 362
Library dimension (catalog)
Roles linked in library: .NET Backend Developer
API 3 link attempts (this skill)
| Dimension | Skill↔dim | Role↔dim | Outcome |
|---|---|---|---|
|
C# and .NET Languages
c-and-net-languages
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) |
Aliases — catalog
- Angular (CANONICAL) primary
- Angular 1 (VERSION)
- Angular 1.x (VERSION)
- Angular 10 (VERSION)
- Angular 11 (VERSION)
- Angular 12 (VERSION)
- Angular 13 (VERSION)
- Angular 14 (VERSION)
- Angular 15 (VERSION)
- Angular 16 (VERSION)
- Angular 17 (VERSION)
- Angular 2 (VERSION)
- Angular 2+ (VERSION)
- Angular 4 (VERSION)
- Angular 5 (VERSION)
- Angular 6 (VERSION)
- Angular 7 (VERSION)
- Angular 8 (VERSION)
- Angular 9 (VERSION)
- AngularJS (VERSION)
- angular 1 (VERSION)
- angular 1.x (VERSION)
- angular 10 (VERSION)
- angular 11 (VERSION)
- angular 12 (VERSION)
- angular 13 (VERSION)
- angular 14 (VERSION)
- angular 15 (VERSION)
- angular 16 (VERSION)
- angular 17 (VERSION)
- angular 18 (VERSION)
- angular 19 (VERSION)
- angular 2 (VERSION)
- angular 2+ (VERSION)
- angular 2.x (VERSION)
- angular 3 (VERSION)
- angular 4 (VERSION)
- angular 5 (VERSION)
- angular 6 (VERSION)
- angular 7 (VERSION)
- angular 8 (VERSION)
- angular 9 (VERSION)
- angular17 (VERSION)
- angular2 (VERSION)
- angularjs (VERSION)
- angularjs 1.x (VERSION)
- ng (VERSION)
- ng1 (VERSION)
- ng2 (VERSION)
Context tags (catalog)
Stored enrichment (catalog DB)
- Category
- Framework
- Sub-category
- Frontend Framework
- Vendor
- License
- mit
- Year introduced
- 2010
- Confidence
- 0.98
- Version strategy
- SEPARATE_ENTITY
- Version tag
- 2+
Maturity reasoning: Angular remains widely listed in frontend job descriptions and enterprise stacks; Google continues maintaining Angular, and it is a common hiring-pipeline skill alongside React/Vue rather than a sunset technology.
Skill profile (library / DB)
- Skill nature
- FRAMEWORK
- Volatility
- STABLE
- Typical lifespan
- EVERGREEN
- Category id
- 5
- Sub-category id
- 1072
- Extractable
- True
- Also category
- False
Dimensions (API 2 worklist)
-
Angular Component Model and Templates Catalog dimension db id 303
Library dimension (catalog)
Roles linked in library: Angular Frontend Developer
-
Application Frameworks & Libraries Catalog dimension db id 451
Library dimension (catalog)
Roles linked in library: Sitecore Dev
-
UI Frameworks and Rendering Catalog dimension db id 115
Library dimension (catalog)
Roles linked in library: Frontend Developer, Fullstack Developer, Fullstack Developer, Hybrid Mobile Developer, Ionic Developer, Web Developer
API 3 link attempts (this skill)
| Dimension | Skill↔dim | Role↔dim | Outcome |
|---|---|---|---|
|
Angular Component Model and Templates
angular-component-model-and-templates
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) |
|
Application Frameworks & Libraries
application-frameworks-libraries
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) |
|
UI Frameworks and Rendering
ui-frameworks-and-rendering
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) |
Aliases — catalog
- JWT (CANONICAL) primary
Context tags (catalog)
Stored enrichment (catalog DB)
- Category
- Format
- Sub-category
- Token Format
- Vendor
- IETF
- License
- unknown
- Year introduced
- 2010
- Confidence
- 0.90
- Version strategy
- NOT_APPLICABLE
Maturity reasoning: JWT is widely listed in backend/auth job descriptions and is a standard token format in OAuth2/OIDC ecosystems; no vendor sunset or replacement has displaced it.
Skill profile (library / DB)
- Skill nature
- STANDARD
- Volatility
- STABLE
- Typical lifespan
- EVERGREEN
- Category id
- 4
- Sub-category id
- 33
- Extractable
- True
- Also category
- False
Dimensions (API 2 worklist)
-
Authentication and Authorization Catalog dimension db id 6
Library dimension (catalog)
Roles linked in library: .NET Backend Developer, Backend Developer, Go Backend Developer, Java Backend Developer, Node.js Backend Developer, PHP Backend Developer, Python Backend Developer
-
Authentication and Session Handling Catalog dimension db id 86
Library dimension (catalog)
Roles linked in library: Android Developer, Frontend Developer, Fullstack Developer, Hybrid Mobile Developer, Ionic Developer, Native Mobile Developer, Web Developer, iOS Developer
-
Backend Authentication and Authorization Catalog dimension db id 386
Library dimension (catalog)
Roles linked in library: Kotlin Backend Developer, Ruby Backend Developer, Scala Backend Developer
-
Frontend Authentication and Session Management Catalog dimension db id 300
Library dimension (catalog)
Roles linked in library: React Frontend Developer, Svelte Frontend Developer, Vue Frontend Developer
API 3 link attempts (this skill)
| Dimension | Skill↔dim | Role↔dim | Outcome |
|---|---|---|---|
|
Authentication and Authorization
authentication-and-authorization
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) |
|
Authentication and Session Handling
authentication-and-session-handling
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) |
|
Backend Authentication and Authorization
backend-authentication-and-authorization
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) |
|
Frontend Authentication and Session Management
frontend-authentication-and-session-management
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) |
Aliases — catalog
- Entity Framework (CANONICAL) primary
- .NET Core EF (VERSION)
- .NET Framework EF (VERSION)
- EF (VERSION)
- EF Core (VERSION)
- EF6 (VERSION)
- EFCore (VERSION)
- Entity Framework 6 (VERSION)
- Entity Framework Core (VERSION)
- EntityFramework6 (VERSION)
Context tags (catalog)
Stored enrichment (catalog DB)
- Category
- Framework
- Sub-category
- Orm Framework
- Vendor
- Microsoft
- License
- mit
- Year introduced
- 2008
- Confidence
- 0.92
- Version strategy
- SEPARATE_ENTITY
- Version tag
- 6
Maturity reasoning: Entity Framework appears frequently in .NET job descriptions and Microsoft actively maintains EF Core, indicating broad hiring demand rather than a sunset or niche tool.
Skill profile (library / DB)
- Skill nature
- FRAMEWORK
- Volatility
- STABLE
- Typical lifespan
- EVERGREEN
- Category id
- 5
- Sub-category id
- 1073
- Extractable
- True
- Also category
- False
Dimensions (API 2 worklist)
-
ORMs and Data Access Layers Catalog dimension db id 5
Library dimension (catalog)
Roles linked in library: .NET Backend Developer, Backend Developer, Fullstack Developer, Fullstack Developer, Java Backend Developer, Kotlin Backend Developer, Node.js Backend Developer, PHP Backend Developer, Python Backend Developer, Ruby Backend Developer
API 3 link attempts (this skill)
| Dimension | Skill↔dim | Role↔dim | Outcome |
|---|---|---|---|
|
ORMs and Data Access Layers
orms-and-data-access-layers
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) |
Aliases — catalog
- ASP.NET Core (CANONICAL) primary
- asp.net core (VERSION)
- asp.net core 8 (VERSION)
- asp.net core/.net 8 (VERSION)
- aspnetcore (VERSION)
- aspnetcore 8 (VERSION)
- net 8 (VERSION)
- net8 (VERSION)
Context tags (catalog)
Stored enrichment (catalog DB)
- Category
- Framework
- Sub-category
- Web Framework
- Vendor
- Microsoft
- License
- apache_2
- Year introduced
- 2016
- Confidence
- 0.99
- Version strategy
- SEPARATE_ENTITY
- Version tag
- 8
Maturity reasoning: Broadly adopted in enterprise web JDs and Microsoft positions it as the successor to ASP.NET for new .NET apps; strong GitHub and NuGet ecosystem activity supports continued demand.
Skill profile (library / DB)
- Skill nature
- FRAMEWORK
- Volatility
- STABLE
- Typical lifespan
- EVERGREEN
- Category id
- 5
- Sub-category id
- 35
- Extractable
- True
- Also category
- False
Dimensions (API 2 worklist)
-
ASP.NET Core Web Frameworks Catalog dimension db id 363
Library dimension (catalog)
Roles linked in library: .NET Backend Developer
-
Web Application Frameworks Catalog dimension db id 2
Library dimension (catalog)
Roles linked in library: Backend Developer, Fullstack Developer, Fullstack Developer, Java Backend Developer, Node.js Backend Developer, PHP Backend Developer, Python Backend Developer
API 3 link attempts (this skill)
| Dimension | Skill↔dim | Role↔dim | Outcome |
|---|---|---|---|
|
ASP.NET Core Web Frameworks
asp-net-core-web-frameworks
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) |
|
Web Application Frameworks
web-application-frameworks
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) |
Skill enrichment (orchestrator / LLM)
No Stage 7 enrichment blob on this skill (orchestrator skipped enrichment).
- Category
- Authentication Libraries
- Sub-category
- general
- Skill nature
- TOOL
- Volatility
- MEDIUM
- Typical lifespan
- MULTI_YEAR
- Version strategy
- UNVERSIONED
All API 3 persistence rows
Same grid as the skill-extractor “Persistence items” table: one row per (skill × dimension) work item.
| Skill | Tag | Dimension | Skill↔dim | Role↔dim | Outcome | Notes |
|---|---|---|---|---|---|---|
| Microsoft Entra ID | in_db |
Identity and Access Architecture
identity-and-access-architecture
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) | |
| Microsoft Entra ID | in_db |
Identity and Access Management Products
identity-and-access-management-products
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) | |
| SQL Server | in_db |
Relational Database Design
relational-database-design
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) | |
| .NET | in_db |
C# and .NET Languages
c-and-net-languages
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) | |
| Angular | in_db |
Angular Component Model and Templates
angular-component-model-and-templates
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) | |
| Angular | in_db |
Application Frameworks & Libraries
application-frameworks-libraries
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) | |
| Angular | in_db |
UI Frameworks and Rendering
ui-frameworks-and-rendering
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) | |
| JWT | in_db |
Authentication and Authorization
authentication-and-authorization
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) | |
| JWT | in_db |
Authentication and Session Handling
authentication-and-session-handling
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) | |
| JWT | in_db |
Backend Authentication and Authorization
backend-authentication-and-authorization
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) | |
| JWT | in_db |
Frontend Authentication and Session Management
frontend-authentication-and-session-management
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) | |
| Entity Framework | in_db |
ORMs and Data Access Layers
orms-and-data-access-layers
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) | |
| ASP.NET Core | in_db |
ASP.NET Core Web Frameworks
asp-net-core-web-frameworks
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) | |
| ASP.NET Core | in_db |
Web Application Frameworks
web-application-frameworks
|
✓ | — | Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role) |
Library artifacts (this run)
| Kind | Detail | DB id |
|---|---|---|
| canonical_skill_proposed | MSAL | type=Authentication Libraries subtype=general nature=TOOL lifespan=MULTI_YEAR |
nano JD Parser — gpt-4.1-nano click to toggle
Show raw JSON
{
"JD_type": "pass",
"about_company": {
"source_marker": {
"first_5_words": "Threat Intelligence Bureau LTD is",
"last_5_words": "among other verticals."
},
"text": "Threat Intelligence Bureau LTD is an UK based organization and into Cyber Security solutions, Application Development, IT Management, Project Management among other verticals.",
"word_count": 27
},
"certifications": [],
"company_name": "Threat Intelligence Bureau LTD",
"ctc": {
"currency": null,
"max": null,
"min": null,
"period": null,
"raw": "Open and Flexible and will be as per Industry standards"
},
"domain": {
"primary": {
"aliases": [
"Cyber Security",
"Information Security"
],
"domain": "Cybersecurity"
},
"secondary": null
},
"education": [],
"experience": {
"max": 7,
"min": 3,
"raw": "3-7 years"
},
"job_locations": [
{
"aliases": [],
"city": "Hyderabad",
"country": "India",
"state": null,
"work_mode": null
}
],
"role": "Role-Based Access Control Implementation",
"role_aliases": [
"RBAC Implementation Engineer",
"Access Control Engineer",
"Security Engineer"
],
"role_archetype": "Engineering",
"roles_and_responsibilities": [
{
"bullet_count": 12,
"heading": "Key Requirements",
"heading_was_present": true,
"source_marker": {
"first_5_words": "Key Requirements Authentication \u0026 Authorization:",
"last_5_words": "to components based on roles."
},
"text": "Authentication \u0026 Authorization:\nAuthenticate users using Microsoft Entra ID.\nAssign users roles such as Admin and User in SQL Database.\nEnforce role-based access in the .NET API.\nProtect Angular routes based on user roles.\n\nBackend (.NET API):\nUse JWT authentication with Entra ID.\nStore user roles in SQL Server using Entity Framework.\nImplement role-based authorization policies in ASP.NET Core.\nExpose an API endpoint (/api/auth/profile) to return user details and role.\n\nFrontend (Angular):\nUse MSAL (Microsoft Authentication Library) for authentication.\nRetrieve the user\u0027s role from the backend.\nImplementing a role-based route guard in Angular to restrict access to components based on roles.",
"word_count": 104
}
],
"urls": []
}
API 1 — extract-from-jd click to toggle
{
"final_skills": [
{
"is_primary": true,
"skill_name": "Microsoft Entra ID"
},
{
"is_primary": true,
"skill_name": "SQL Server"
},
{
"is_primary": true,
"skill_name": ".NET"
},
{
"is_primary": true,
"skill_name": "Angular"
},
{
"is_primary": true,
"skill_name": "JWT"
},
{
"is_primary": true,
"skill_name": "Entity Framework"
},
{
"is_primary": true,
"skill_name": "ASP.NET Core"
},
{
"is_primary": true,
"skill_name": "MSAL"
}
],
"jd_role": {
"display_name": "Role-Based Access Control Implementation",
"rationale": null,
"role_aliases": [
"RBAC Implementation Engineer",
"Access Control Engineer",
"Security Engineer"
],
"role_archetype": "Engineering",
"slug": ""
},
"nano_parsed": {
"JD_type": "pass",
"about_company": {
"source_marker": {
"first_5_words": "Threat Intelligence Bureau LTD is",
"last_5_words": "among other verticals."
},
"text": "Threat Intelligence Bureau LTD is an UK based organization and into Cyber Security solutions, Application Development, IT Management, Project Management among other verticals.",
"word_count": 27
},
"certifications": [],
"company_name": "Threat Intelligence Bureau LTD",
"ctc": {
"currency": null,
"max": null,
"min": null,
"period": null,
"raw": "Open and Flexible and will be as per Industry standards"
},
"domain": {
"primary": {
"aliases": [
"Cyber Security",
"Information Security"
],
"domain": "Cybersecurity"
},
"secondary": null
},
"education": [],
"experience": {
"max": 7,
"min": 3,
"raw": "3-7 years"
},
"job_locations": [
{
"aliases": [],
"city": "Hyderabad",
"country": "India",
"state": null,
"work_mode": null
}
],
"role": "Role-Based Access Control Implementation",
"role_aliases": [
"RBAC Implementation Engineer",
"Access Control Engineer",
"Security Engineer"
],
"role_archetype": "Engineering",
"roles_and_responsibilities": [
{
"bullet_count": 12,
"heading": "Key Requirements",
"heading_was_present": true,
"source_marker": {
"first_5_words": "Key Requirements Authentication \u0026 Authorization:",
"last_5_words": "to components based on roles."
},
"text": "Authentication \u0026 Authorization:\nAuthenticate users using Microsoft Entra ID.\nAssign users roles such as Admin and User in SQL Database.\nEnforce role-based access in the .NET API.\nProtect Angular routes based on user roles.\n\nBackend (.NET API):\nUse JWT authentication with Entra ID.\nStore user roles in SQL Server using Entity Framework.\nImplement role-based authorization policies in ASP.NET Core.\nExpose an API endpoint (/api/auth/profile) to return user details and role.\n\nFrontend (Angular):\nUse MSAL (Microsoft Authentication Library) for authentication.\nRetrieve the user\u0027s role from the backend.\nImplementing a role-based route guard in Angular to restrict access to components based on roles.",
"word_count": 104
}
],
"urls": []
},
"rejected": false,
"rejection_reason": null,
"run_id": "ea420107-deab-4d30-910e-ccc04ac6dad5",
"stage3_signals": {
"alias_found": true,
"alias_match_roles": [
{
"display_name": "Cyber Security Engineer",
"kra_matches": null,
"matched_count": null,
"matched_skills": null,
"role_id": 5,
"score": 1.0,
"slug": "cybersecurity-engineer",
"total_count": null
}
],
"kra_match_roles": [
{
"display_name": "Cyber Security Engineer",
"kra_matches": [
{
"kra_text": "Reviews and enforces access control policies, privilege escalation procedures, role-based access control, and identity governance workflows.",
"sentence": "Enforce role-based access in the .NET API.",
"similarity": 0.5449
},
{
"kra_text": "Reviews and enforces access control policies, privilege escalation procedures, role-based access control, and identity governance workflows.",
"sentence": "Implement role-based authorization policies in ASP.NET Core.",
"similarity": 0.502
},
{
"kra_text": "Reviews and enforces access control policies, privilege escalation procedures, role-based access control, and identity governance workflows.",
"sentence": "Implementing a role-based route guard in Angular to restrict access to components based on roles.",
"similarity": 0.3818
}
],
"matched_count": null,
"matched_skills": null,
"role_id": 5,
"score": 0.4762,
"slug": "cybersecurity-engineer",
"total_count": null
},
{
"display_name": ".NET Backend Developer",
"kra_matches": [
{
"kra_text": "authentication and authorization support",
"sentence": "Use MSAL (Microsoft Authentication Library) for authentication.",
"similarity": 0.5061
},
{
"kra_text": "authentication and authorization support",
"sentence": "Authenticate users using Microsoft Entra ID.",
"similarity": 0.436
},
{
"kra_text": "authentication and authorization support",
"sentence": "Implement role-based authorization policies in ASP.NET Core.",
"similarity": 0.4286
}
],
"matched_count": null,
"matched_skills": null,
"role_id": 83,
"score": 0.4569,
"slug": "dotnet-backend-developer",
"total_count": null
},
{
"display_name": "Node.js Backend Developer",
"kra_matches": [
{
"kra_text": "authentication and authorization logic",
"sentence": "Use MSAL (Microsoft Authentication Library) for authentication.",
"similarity": 0.4566
},
{
"kra_text": "authentication and authorization logic",
"sentence": "Implement role-based authorization policies in ASP.NET Core.",
"similarity": 0.4482
},
{
"kra_text": "authentication and authorization logic",
"sentence": "Enforce role-based access in the .NET API.",
"similarity": 0.3893
}
],
"matched_count": null,
"matched_skills": null,
"role_id": 82,
"score": 0.4314,
"slug": "node-backend-developer",
"total_count": null
},
{
"display_name": "Angular Frontend Developer",
"kra_matches": [
{
"kra_text": "Angular component development",
"sentence": "Implementing a role-based route guard in Angular to restrict access to components based on roles.",
"similarity": 0.4858
},
{
"kra_text": "Angular component development",
"sentence": "Protect Angular routes based on user roles.",
"similarity": 0.426
},
{
"kra_text": "backend endpoint integration",
"sentence": "Expose an API endpoint (/api/auth/profile) to return user details and role.",
"similarity": 0.378
}
],
"matched_count": null,
"matched_skills": null,
"role_id": 90,
"score": 0.4299,
"slug": "angular-frontend-developer",
"total_count": null
},
{
"display_name": "Cloud Security Engineer",
"kra_matches": [
{
"kra_text": "Designs IAM role policies, service account permissions, resource-based policies, and least-privilege access controls for cloud workloads and pipelines.",
"sentence": "Implement role-based authorization policies in ASP.NET Core.",
"similarity": 0.4908
},
{
"kra_text": "Designs IAM role policies, service account permissions, resource-based policies, and least-privilege access controls for cloud workloads and pipelines.",
"sentence": "Enforce role-based access in the .NET API.",
"similarity": 0.4538
},
{
"kra_text": "Designs IAM role policies, service account permissions, resource-based policies, and least-privilege access controls for cloud workloads and pipelines.",
"sentence": "Assign users roles such as Admin and User in SQL Database.",
"similarity": 0.3368
}
],
"matched_count": null,
"matched_skills": null,
"role_id": 23,
"score": 0.4271,
"slug": "cloud-security-engineer",
"total_count": null
}
],
"skill_match_roles": [
{
"display_name": ".NET Backend Developer",
"kra_matches": null,
"matched_count": 6,
"matched_skills": [
".NET",
".NET Core",
"ASP.NET Core",
"Entity Framework",
"JWT",
"SQL Server"
],
"role_id": 83,
"score": 0.75,
"slug": "dotnet-backend-developer",
"total_count": 8
},
{
"display_name": "Fullstack Developer",
"kra_matches": null,
"matched_count": 4,
"matched_skills": [
"ASP.NET Core",
"Angular",
"Entity Framework",
"JWT"
],
"role_id": 15,
"score": 0.5,
"slug": "full-stack-engineer",
"total_count": 8
},
{
"display_name": "Backend Developer",
"kra_matches": null,
"matched_count": 4,
"matched_skills": [
"ASP.NET Core",
"Entity Framework",
"JWT",
"SQL Server"
],
"role_id": 1,
"score": 0.5,
"slug": "backend-engineer",
"total_count": 8
},
{
"display_name": "Python Backend Developer",
"kra_matches": null,
"matched_count": 4,
"matched_skills": [
"ASP.NET Core",
"Entity Framework",
"JWT",
"SQL Server"
],
"role_id": 80,
"score": 0.5,
"slug": "python-backend-developer",
"total_count": 8
},
{
"display_name": "Node.js Backend Developer",
"kra_matches": null,
"matched_count": 4,
"matched_skills": [
"ASP.NET Core",
"Entity Framework",
"JWT",
"SQL Server"
],
"role_id": 82,
"score": 0.5,
"slug": "node-backend-developer",
"total_count": 8
}
]
},
"stage4_decision": {
"alias_collision_detected": false,
"case": "DOMAIN",
"chosen_role": {
"display_name": "IAM Engineer",
"kra_matches": null,
"matched_count": null,
"matched_skills": null,
"role_id": 193,
"score": 0.99,
"slug": "iam-engineer",
"total_count": null
},
"confidence": 0.99,
"is_new_role": false,
"llm2_fired": false,
"llm2_reasoning": null,
"matched_dimensions": [
"Identity and Access Management",
"Authentication and Authorization",
"Role-Based Access Control",
"API Security",
"Frontend Access Restriction",
"Backend Role Storage and Enforcement"
],
"matched_kras": [
"Authenticate users using Microsoft Entra ID.",
"Assign users roles such as Admin and User in SQL Database.",
"Enforce role-based access in the .NET API.",
"Protect Angular routes based on user roles.",
"Use JWT authentication with Entra ID.",
"Store user roles in SQL Server using Entity Framework.",
"Implement role-based authorization policies in ASP.NET Core.",
"Expose an API endpoint (/api/auth/profile) to return user details and role.",
"Use MSAL for authentication.",
"Implementing a role-based route guard in Angular"
],
"matched_skills": [
"Microsoft Entra ID",
"JWT authentication",
"SQL Database",
"Entity Framework",
"ASP.NET Core",
".NET API",
"Angular",
"MSAL",
"SQL Server",
"role-based authorization policies",
"role-based route guard"
],
"new_role_display_name": null,
"new_role_slug": null,
"queued": false,
"reasoning": "Domain=Security; The JD is centered on identity, authentication, authorization, role assignment, and access control across Entra ID, .NET, SQL Server, and Angular, which aligns most strongly with IAM engineering.",
"sub_role": null
},
"stage5_updates": {
"centroid_n_after": 3,
"centroid_updated": true,
"collision_log_id": null,
"new_kra_attached": {
"best_kra_similarity": 0.0,
"queue_id": 798,
"r_and_r_preview": "Authentication \u0026 Authorization:\nAuthenticate users using Microsoft Entra ID.\nAssign users roles such as Admin and User in SQL Database.\nEnforce role-based access in the .NET API.\nProtect Angular route",
"role_display_name": "IAM Engineer",
"role_slug": "iam-engineer",
"status": "pending"
},
"new_skills_attached": [
{
"is_primary": true,
"queue_id": 11856,
"role_display_name": "IAM Engineer",
"role_slug": "iam-engineer",
"skill_name": "MSAL",
"status": "pending"
}
],
"queue_entry_id": null,
"v3_pipeline_triggered": false,
"v3_role_slug": null,
"v3_run_id": null
}
}
API 2 — extract-details
{
"alias_matches": [
{
"alias_persist_skipped_reason": "alias_text already exists for this canonical skill",
"alias_persisted": false,
"existing_alias_id": 659,
"existing_alias_text": "Microsoft Entra ID",
"input_term": "Microsoft Entra ID",
"matched_canonical": {
"category_id": 9,
"display_name": "Microsoft Entra ID",
"id": 343,
"is_also_category": false,
"is_extractable": true,
"skill_nature": "PLATFORM",
"slug": "microsoft-entra-id",
"sub_category_id": 784,
"typical_lifespan": "EVERGREEN",
"volatility": "STABLE"
},
"matched_via": "alias"
},
{
"alias_persist_skipped_reason": "alias_text already exists for this canonical skill",
"alias_persisted": false,
"existing_alias_id": 135,
"existing_alias_text": "SQL Server",
"input_term": "SQL Server",
"matched_canonical": {
"category_id": 3,
"display_name": "SQL Server",
"id": 18,
"is_also_category": false,
"is_extractable": true,
"skill_nature": "TOOL",
"slug": "sql-server",
"sub_category_id": 29,
"typical_lifespan": "EVERGREEN",
"volatility": "STABLE"
},
"matched_via": "alias"
},
{
"alias_persist_skipped_reason": "alias_text already exists for this canonical skill",
"alias_persisted": false,
"existing_alias_id": 4766,
"existing_alias_text": ".NET",
"input_term": ".NET",
"matched_canonical": {
"category_id": 67,
"display_name": ".NET",
"id": 3237,
"is_also_category": false,
"is_extractable": true,
"skill_nature": "RUNTIME",
"slug": "net",
"sub_category_id": 2564,
"typical_lifespan": "EVERGREEN",
"volatility": "STABLE"
},
"matched_via": "alias"
},
{
"alias_persist_skipped_reason": "alias_text already exists for this canonical skill",
"alias_persisted": false,
"existing_alias_id": 1067,
"existing_alias_text": "Angular",
"input_term": "Angular",
"matched_canonical": {
"category_id": 5,
"display_name": "Angular",
"id": 612,
"is_also_category": false,
"is_extractable": true,
"skill_nature": "FRAMEWORK",
"slug": "angular",
"sub_category_id": 1072,
"typical_lifespan": "EVERGREEN",
"volatility": "STABLE"
},
"matched_via": "alias"
},
{
"alias_persist_skipped_reason": "alias_text already exists for this canonical skill",
"alias_persisted": false,
"existing_alias_id": 165,
"existing_alias_text": "JWT",
"input_term": "JWT",
"matched_canonical": {
"category_id": 4,
"display_name": "JWT",
"id": 28,
"is_also_category": false,
"is_extractable": true,
"skill_nature": "STANDARD",
"slug": "jwt",
"sub_category_id": 33,
"typical_lifespan": "EVERGREEN",
"volatility": "STABLE"
},
"matched_via": "alias"
},
{
"alias_persist_skipped_reason": "alias_text already exists for this canonical skill",
"alias_persisted": false,
"existing_alias_id": 150,
"existing_alias_text": "Entity Framework",
"input_term": "Entity Framework",
"matched_canonical": {
"category_id": 5,
"display_name": "Entity Framework",
"id": 22,
"is_also_category": false,
"is_extractable": true,
"skill_nature": "FRAMEWORK",
"slug": "entity-framework",
"sub_category_id": 1073,
"typical_lifespan": "EVERGREEN",
"volatility": "STABLE"
},
"matched_via": "alias"
},
{
"alias_persist_skipped_reason": "alias_text already exists for this canonical skill",
"alias_persisted": false,
"existing_alias_id": 80,
"existing_alias_text": "ASP.NET Core",
"input_term": "ASP.NET Core",
"matched_canonical": {
"category_id": 5,
"display_name": "ASP.NET Core",
"id": 7,
"is_also_category": false,
"is_extractable": true,
"skill_nature": "FRAMEWORK",
"slug": "asp-net-core",
"sub_category_id": 35,
"typical_lifespan": "EVERGREEN",
"volatility": "STABLE"
},
"matched_via": "alias"
}
],
"candidate_roles": [
{
"display_name": "Cloud Architect",
"id": 9,
"rationale": null,
"role_archetype": null,
"slug": "cloud-architect",
"source": "db"
},
{
"display_name": "Cloud Security Engineer",
"id": 23,
"rationale": null,
"role_archetype": null,
"slug": "cloud-security-engineer",
"source": "db"
},
{
"display_name": "Cyber Security Engineer",
"id": 5,
"rationale": null,
"role_archetype": null,
"slug": "cybersecurity-engineer",
"source": "db"
},
{
"display_name": ".NET Backend Developer",
"id": 83,
"rationale": null,
"role_archetype": "Engineering",
"slug": "dotnet-backend-developer",
"source": "db"
},
{
"display_name": "Backend Developer",
"id": 1,
"rationale": null,
"role_archetype": "A Backend Engineer designs, builds, and maintains the server-side logic and data handling that power applications and services. They focus on implementing reliable business functionality, integrating with other systems, and ensuring the backend is scalable, maintainable, and observable.",
"slug": "backend-engineer",
"source": "db"
},
{
"display_name": "Kotlin Backend Developer",
"id": 84,
"rationale": null,
"role_archetype": "Engineering",
"slug": "kotlin-server-backend-developer",
"source": "db"
},
{
"display_name": "Node.js Backend Developer",
"id": 82,
"rationale": null,
"role_archetype": "Engineering",
"slug": "node-backend-developer",
"source": "db"
},
{
"display_name": "Python Backend Developer",
"id": 80,
"rationale": null,
"role_archetype": "Engineering",
"slug": "python-backend-developer",
"source": "db"
},
{
"display_name": "Ruby Backend Developer",
"id": 85,
"rationale": null,
"role_archetype": "Engineering",
"slug": "ruby-backend-developer",
"source": "db"
},
{
"display_name": "Scala Backend Developer",
"id": 87,
"rationale": null,
"role_archetype": "Engineering",
"slug": "scala-backend-developer",
"source": "db"
},
{
"display_name": "Angular Frontend Developer",
"id": 90,
"rationale": null,
"role_archetype": "Engineering",
"slug": "angular-frontend-developer",
"source": "db"
},
{
"display_name": "Sitecore Dev",
"id": 233,
"rationale": null,
"role_archetype": "Engineering",
"slug": "sitecore-dev",
"source": "db"
},
{
"display_name": "Frontend Developer",
"id": 7,
"rationale": null,
"role_archetype": null,
"slug": "frontend-engineer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 435,
"rationale": null,
"role_archetype": "Engineering",
"slug": "fullstack-developer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 15,
"rationale": null,
"role_archetype": null,
"slug": "full-stack-engineer",
"source": "db"
},
{
"display_name": "Hybrid Mobile Developer",
"id": 11,
"rationale": null,
"role_archetype": null,
"slug": "hybrid-mobile-developer",
"source": "db"
},
{
"display_name": "Ionic Developer",
"id": 434,
"rationale": null,
"role_archetype": null,
"slug": "ionic-developer",
"source": "db"
},
{
"display_name": "Web Developer",
"id": 25,
"rationale": null,
"role_archetype": null,
"slug": "web-developer",
"source": "db"
},
{
"display_name": "Go Backend Developer",
"id": 81,
"rationale": null,
"role_archetype": "Engineering",
"slug": "go-backend-developer",
"source": "db"
},
{
"display_name": "Java Backend Developer",
"id": 79,
"rationale": null,
"role_archetype": "Engineering",
"slug": "java-backend-developer",
"source": "db"
},
{
"display_name": "PHP Backend Developer",
"id": 86,
"rationale": null,
"role_archetype": "Engineering",
"slug": "php-backend-developer",
"source": "db"
},
{
"display_name": "Android Developer",
"id": 4,
"rationale": null,
"role_archetype": null,
"slug": "android-engineer",
"source": "db"
},
{
"display_name": "Native Mobile Developer",
"id": 75,
"rationale": null,
"role_archetype": "Engineering",
"slug": "native-mobile-developer",
"source": "db"
},
{
"display_name": "iOS Developer",
"id": 6,
"rationale": null,
"role_archetype": null,
"slug": "ios-engineer",
"source": "db"
},
{
"display_name": "React Frontend Developer",
"id": 89,
"rationale": null,
"role_archetype": "Engineering",
"slug": "react-frontend-developer",
"source": "db"
},
{
"display_name": "Svelte Frontend Developer",
"id": 92,
"rationale": null,
"role_archetype": "Engineering",
"slug": "svelte-frontend-developer",
"source": "db"
},
{
"display_name": "Vue Frontend Developer",
"id": 91,
"rationale": null,
"role_archetype": "Engineering",
"slug": "vue-frontend-developer",
"source": "db"
}
],
"chosen_role": {
"display_name": "IAM Engineer",
"id": 193,
"rationale": "Domain=Security; The JD is centered on identity, authentication, authorization, role assignment, and access control across Entra ID, .NET, SQL Server, and Angular, which aligns most strongly with IAM engineering.",
"role_archetype": null,
"slug": "iam-engineer",
"source": "db"
},
"dimensions": [
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Identity and Access Architecture",
"id": 137,
"rationale": "Cloud identity patterns for authentication, authorization, federation, and privileged access boundaries. This is central to cloud governance because it defines who can administer and consume platform resources.",
"slug": "identity-and-access-architecture",
"source": "db"
},
"input_skill": "Microsoft Entra ID",
"llm_role": null,
"roles_from_db": [
{
"display_name": "Cloud Architect",
"id": 9,
"rationale": null,
"role_archetype": null,
"slug": "cloud-architect",
"source": "db"
},
{
"display_name": "Cloud Security Engineer",
"id": 23,
"rationale": null,
"role_archetype": null,
"slug": "cloud-security-engineer",
"source": "db"
}
]
},
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Identity and Access Management Products",
"id": 65,
"rationale": "Identity platforms and privileged access tools used to enforce authentication, authorization, and administrative control. This is a vendor-family dimension because the role often reviews multiple IAM and PAM products in enterprise environments.",
"slug": "identity-and-access-management-products",
"source": "db"
},
"input_skill": "Microsoft Entra ID",
"llm_role": null,
"roles_from_db": [
{
"display_name": "Cyber Security Engineer",
"id": 5,
"rationale": null,
"role_archetype": null,
"slug": "cybersecurity-engineer",
"source": "db"
}
]
},
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Relational Database Design",
"id": 4,
"rationale": "Modeling and operating relational persistence for backend services. Includes schema design, normalization, indexing, transactions, and query tuning for operational data stores.",
"slug": "relational-database-design",
"source": "db"
},
"input_skill": "SQL Server",
"llm_role": null,
"roles_from_db": [
{
"display_name": ".NET Backend Developer",
"id": 83,
"rationale": null,
"role_archetype": "Engineering",
"slug": "dotnet-backend-developer",
"source": "db"
},
{
"display_name": "Backend Developer",
"id": 1,
"rationale": null,
"role_archetype": "A Backend Engineer designs, builds, and maintains the server-side logic and data handling that power applications and services. They focus on implementing reliable business functionality, integrating with other systems, and ensuring the backend is scalable, maintainable, and observable.",
"slug": "backend-engineer",
"source": "db"
},
{
"display_name": "Kotlin Backend Developer",
"id": 84,
"rationale": null,
"role_archetype": "Engineering",
"slug": "kotlin-server-backend-developer",
"source": "db"
},
{
"display_name": "Node.js Backend Developer",
"id": 82,
"rationale": null,
"role_archetype": "Engineering",
"slug": "node-backend-developer",
"source": "db"
},
{
"display_name": "Python Backend Developer",
"id": 80,
"rationale": null,
"role_archetype": "Engineering",
"slug": "python-backend-developer",
"source": "db"
},
{
"display_name": "Ruby Backend Developer",
"id": 85,
"rationale": null,
"role_archetype": "Engineering",
"slug": "ruby-backend-developer",
"source": "db"
},
{
"display_name": "Scala Backend Developer",
"id": 87,
"rationale": null,
"role_archetype": "Engineering",
"slug": "scala-backend-developer",
"source": "db"
}
]
},
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "C# and .NET Languages",
"id": 362,
"rationale": "Primary implementation languages and runtime features used to build backend service logic in the .NET ecosystem. This is the core coding surface for request handling, domain logic, and service internals.",
"slug": "c-and-net-languages",
"source": "db"
},
"input_skill": ".NET",
"llm_role": null,
"roles_from_db": [
{
"display_name": ".NET Backend Developer",
"id": 83,
"rationale": null,
"role_archetype": "Engineering",
"slug": "dotnet-backend-developer",
"source": "db"
}
]
},
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Angular Component Model and Templates",
"id": 303,
"rationale": "Core Angular framework surface for building reusable UI, composing views, and wiring component behavior. This is the main application substrate for browser features in this role.",
"slug": "angular-component-model-and-templates",
"source": "db"
},
"input_skill": "Angular",
"llm_role": null,
"roles_from_db": [
{
"display_name": "Angular Frontend Developer",
"id": 90,
"rationale": null,
"role_archetype": "Engineering",
"slug": "angular-frontend-developer",
"source": "db"
}
]
},
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Application Frameworks \u0026 Libraries",
"id": 451,
"rationale": "Covers the primary software frameworks and libraries often used alongside Sitecore for building and enhancing site experiences.",
"slug": "application-frameworks-libraries",
"source": "db"
},
"input_skill": "Angular",
"llm_role": null,
"roles_from_db": [
{
"display_name": "Sitecore Dev",
"id": 233,
"rationale": null,
"role_archetype": "Engineering",
"slug": "sitecore-dev",
"source": "db"
}
]
},
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "UI Frameworks and Rendering",
"id": 115,
"rationale": "Component frameworks and rendering models used to build browser screens, reusable UI, and interactive client flows. This is a core cluster because frontend engineers spend much of their time composing and updating view hierarchies.",
"slug": "ui-frameworks-and-rendering",
"source": "db"
},
"input_skill": "Angular",
"llm_role": null,
"roles_from_db": [
{
"display_name": "Frontend Developer",
"id": 7,
"rationale": null,
"role_archetype": null,
"slug": "frontend-engineer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 435,
"rationale": null,
"role_archetype": "Engineering",
"slug": "fullstack-developer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 15,
"rationale": null,
"role_archetype": null,
"slug": "full-stack-engineer",
"source": "db"
},
{
"display_name": "Hybrid Mobile Developer",
"id": 11,
"rationale": null,
"role_archetype": null,
"slug": "hybrid-mobile-developer",
"source": "db"
},
{
"display_name": "Ionic Developer",
"id": 434,
"rationale": null,
"role_archetype": null,
"slug": "ionic-developer",
"source": "db"
},
{
"display_name": "Web Developer",
"id": 25,
"rationale": null,
"role_archetype": null,
"slug": "web-developer",
"source": "db"
}
]
},
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Authentication and Authorization",
"id": 6,
"rationale": "Identity, session, and access-control mechanisms used to protect PHP backend resources. This includes login flows, token handling, role checks, permissions, and policy enforcement in server-side code.",
"slug": "authentication-and-authorization",
"source": "db"
},
"input_skill": "JWT",
"llm_role": null,
"roles_from_db": [
{
"display_name": ".NET Backend Developer",
"id": 83,
"rationale": null,
"role_archetype": "Engineering",
"slug": "dotnet-backend-developer",
"source": "db"
},
{
"display_name": "Backend Developer",
"id": 1,
"rationale": null,
"role_archetype": "A Backend Engineer designs, builds, and maintains the server-side logic and data handling that power applications and services. They focus on implementing reliable business functionality, integrating with other systems, and ensuring the backend is scalable, maintainable, and observable.",
"slug": "backend-engineer",
"source": "db"
},
{
"display_name": "Go Backend Developer",
"id": 81,
"rationale": null,
"role_archetype": "Engineering",
"slug": "go-backend-developer",
"source": "db"
},
{
"display_name": "Java Backend Developer",
"id": 79,
"rationale": null,
"role_archetype": "Engineering",
"slug": "java-backend-developer",
"source": "db"
},
{
"display_name": "Node.js Backend Developer",
"id": 82,
"rationale": null,
"role_archetype": "Engineering",
"slug": "node-backend-developer",
"source": "db"
},
{
"display_name": "PHP Backend Developer",
"id": 86,
"rationale": null,
"role_archetype": "Engineering",
"slug": "php-backend-developer",
"source": "db"
},
{
"display_name": "Python Backend Developer",
"id": 80,
"rationale": null,
"role_archetype": "Engineering",
"slug": "python-backend-developer",
"source": "db"
}
]
},
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Authentication and Session Handling",
"id": 86,
"rationale": "Client-side identity flows and secure session management used to sign users in and keep them authenticated. This includes token handling, login UX, and protecting secrets on device.",
"slug": "authentication-and-session-handling",
"source": "db"
},
"input_skill": "JWT",
"llm_role": null,
"roles_from_db": [
{
"display_name": "Android Developer",
"id": 4,
"rationale": null,
"role_archetype": null,
"slug": "android-engineer",
"source": "db"
},
{
"display_name": "Frontend Developer",
"id": 7,
"rationale": null,
"role_archetype": null,
"slug": "frontend-engineer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 15,
"rationale": null,
"role_archetype": null,
"slug": "full-stack-engineer",
"source": "db"
},
{
"display_name": "Hybrid Mobile Developer",
"id": 11,
"rationale": null,
"role_archetype": null,
"slug": "hybrid-mobile-developer",
"source": "db"
},
{
"display_name": "Ionic Developer",
"id": 434,
"rationale": null,
"role_archetype": null,
"slug": "ionic-developer",
"source": "db"
},
{
"display_name": "Native Mobile Developer",
"id": 75,
"rationale": null,
"role_archetype": "Engineering",
"slug": "native-mobile-developer",
"source": "db"
},
{
"display_name": "Web Developer",
"id": 25,
"rationale": null,
"role_archetype": null,
"slug": "web-developer",
"source": "db"
},
{
"display_name": "iOS Developer",
"id": 6,
"rationale": null,
"role_archetype": null,
"slug": "ios-engineer",
"source": "db"
}
]
},
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Backend Authentication and Authorization",
"id": 386,
"rationale": "Identity and access control mechanisms used by backend services to authenticate users or clients and enforce permissions on protected resources. This includes token and session handling, OAuth 2.0 / OpenID Connect / SAML flows, JWT and access tokens, API keys, MFA, role- or claim-based authorization, RBAC/ABAC, scopes, policies, Spring Security, and authorization filters.",
"slug": "backend-authentication-and-authorization",
"source": "db"
},
"input_skill": "JWT",
"llm_role": null,
"roles_from_db": [
{
"display_name": "Kotlin Backend Developer",
"id": 84,
"rationale": null,
"role_archetype": "Engineering",
"slug": "kotlin-server-backend-developer",
"source": "db"
},
{
"display_name": "Ruby Backend Developer",
"id": 85,
"rationale": null,
"role_archetype": "Engineering",
"slug": "ruby-backend-developer",
"source": "db"
},
{
"display_name": "Scala Backend Developer",
"id": 87,
"rationale": null,
"role_archetype": "Engineering",
"slug": "scala-backend-developer",
"source": "db"
}
]
},
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Frontend Authentication and Session Management",
"id": 300,
"rationale": "Client-side authentication and session management for frontend applications, including sign-in flows, OAuth 2.0/OpenID Connect/SSO integration, JWT and refresh token handling, login forms, protected routes, session persistence, and session-expiry user experience. This covers the user-facing parts of identity workflows implemented in React or other frontend stacks, but excludes identity provider administration, backend authorization policy, secret storage on servers, and MFA device management.",
"slug": "frontend-authentication-and-session-management",
"source": "db"
},
"input_skill": "JWT",
"llm_role": null,
"roles_from_db": [
{
"display_name": "React Frontend Developer",
"id": 89,
"rationale": null,
"role_archetype": "Engineering",
"slug": "react-frontend-developer",
"source": "db"
},
{
"display_name": "Svelte Frontend Developer",
"id": 92,
"rationale": null,
"role_archetype": "Engineering",
"slug": "svelte-frontend-developer",
"source": "db"
},
{
"display_name": "Vue Frontend Developer",
"id": 91,
"rationale": null,
"role_archetype": "Engineering",
"slug": "vue-frontend-developer",
"source": "db"
}
]
},
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "ORMs and Data Access Layers",
"id": 5,
"rationale": "Libraries and patterns used to map application objects to persistent storage and encapsulate database access. This cluster covers repository patterns, query builders, and persistence abstractions.",
"slug": "orms-and-data-access-layers",
"source": "db"
},
"input_skill": "Entity Framework",
"llm_role": null,
"roles_from_db": [
{
"display_name": ".NET Backend Developer",
"id": 83,
"rationale": null,
"role_archetype": "Engineering",
"slug": "dotnet-backend-developer",
"source": "db"
},
{
"display_name": "Backend Developer",
"id": 1,
"rationale": null,
"role_archetype": "A Backend Engineer designs, builds, and maintains the server-side logic and data handling that power applications and services. They focus on implementing reliable business functionality, integrating with other systems, and ensuring the backend is scalable, maintainable, and observable.",
"slug": "backend-engineer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 435,
"rationale": null,
"role_archetype": "Engineering",
"slug": "fullstack-developer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 15,
"rationale": null,
"role_archetype": null,
"slug": "full-stack-engineer",
"source": "db"
},
{
"display_name": "Java Backend Developer",
"id": 79,
"rationale": null,
"role_archetype": "Engineering",
"slug": "java-backend-developer",
"source": "db"
},
{
"display_name": "Kotlin Backend Developer",
"id": 84,
"rationale": null,
"role_archetype": "Engineering",
"slug": "kotlin-server-backend-developer",
"source": "db"
},
{
"display_name": "Node.js Backend Developer",
"id": 82,
"rationale": null,
"role_archetype": "Engineering",
"slug": "node-backend-developer",
"source": "db"
},
{
"display_name": "PHP Backend Developer",
"id": 86,
"rationale": null,
"role_archetype": "Engineering",
"slug": "php-backend-developer",
"source": "db"
},
{
"display_name": "Python Backend Developer",
"id": 80,
"rationale": null,
"role_archetype": "Engineering",
"slug": "python-backend-developer",
"source": "db"
},
{
"display_name": "Ruby Backend Developer",
"id": 85,
"rationale": null,
"role_archetype": "Engineering",
"slug": "ruby-backend-developer",
"source": "db"
}
]
},
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "ASP.NET Core Web Frameworks",
"id": 363,
"rationale": "Server-side web frameworks and hosting models used to build HTTP APIs, middleware, filters, and request pipelines. This cluster is coherent because it defines how backend services receive, process, and return requests.",
"slug": "asp-net-core-web-frameworks",
"source": "db"
},
"input_skill": "ASP.NET Core",
"llm_role": null,
"roles_from_db": [
{
"display_name": ".NET Backend Developer",
"id": 83,
"rationale": null,
"role_archetype": "Engineering",
"slug": "dotnet-backend-developer",
"source": "db"
}
]
},
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Web Application Frameworks",
"id": 2,
"rationale": "Server frameworks and runtimes used to build HTTP services, controllers, middleware, and request pipelines. These frameworks shape how backend endpoints are structured and delivered.",
"slug": "web-application-frameworks",
"source": "db"
},
"input_skill": "ASP.NET Core",
"llm_role": null,
"roles_from_db": [
{
"display_name": "Backend Developer",
"id": 1,
"rationale": null,
"role_archetype": "A Backend Engineer designs, builds, and maintains the server-side logic and data handling that power applications and services. They focus on implementing reliable business functionality, integrating with other systems, and ensuring the backend is scalable, maintainable, and observable.",
"slug": "backend-engineer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 435,
"rationale": null,
"role_archetype": "Engineering",
"slug": "fullstack-developer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 15,
"rationale": null,
"role_archetype": null,
"slug": "full-stack-engineer",
"source": "db"
},
{
"display_name": "Java Backend Developer",
"id": 79,
"rationale": null,
"role_archetype": "Engineering",
"slug": "java-backend-developer",
"source": "db"
},
{
"display_name": "Node.js Backend Developer",
"id": 82,
"rationale": null,
"role_archetype": "Engineering",
"slug": "node-backend-developer",
"source": "db"
},
{
"display_name": "PHP Backend Developer",
"id": 86,
"rationale": null,
"role_archetype": "Engineering",
"slug": "php-backend-developer",
"source": "db"
},
{
"display_name": "Python Backend Developer",
"id": 80,
"rationale": null,
"role_archetype": "Engineering",
"slug": "python-backend-developer",
"source": "db"
}
]
}
],
"input_final_skills": [
"Microsoft Entra ID",
"SQL Server",
".NET",
"Angular",
"JWT",
"Entity Framework",
"ASP.NET Core",
"MSAL"
],
"input_llm_skills": [
"Microsoft Entra ID",
"SQL Server",
".NET",
"Angular",
"JWT",
"Entity Framework",
"ASP.NET Core",
"MSAL"
],
"new_aliases_persisted": 0,
"run_id": "ea420107-deab-4d30-910e-ccc04ac6dad5",
"skills_detail": [
{
"aliases_in_db": [
{
"alias_text": "Microsoft Entra ID",
"alias_type": "CANONICAL",
"id": 659,
"is_primary": true,
"match_strategy": "CASE_INSENSITIVE"
}
],
"canonical": {
"category_id": 9,
"display_name": "Microsoft Entra ID",
"id": 343,
"is_also_category": false,
"is_extractable": true,
"skill_nature": "PLATFORM",
"slug": "microsoft-entra-id",
"sub_category_id": 784,
"typical_lifespan": "EVERGREEN",
"volatility": "STABLE"
},
"dimensions": [
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Identity and Access Architecture",
"id": 137,
"rationale": "Cloud identity patterns for authentication, authorization, federation, and privileged access boundaries. This is central to cloud governance because it defines who can administer and consume platform resources.",
"slug": "identity-and-access-architecture",
"source": "db"
},
"input_skill": "Microsoft Entra ID",
"llm_role": null,
"roles_from_db": [
{
"display_name": "Cloud Architect",
"id": 9,
"rationale": null,
"role_archetype": null,
"slug": "cloud-architect",
"source": "db"
},
{
"display_name": "Cloud Security Engineer",
"id": 23,
"rationale": null,
"role_archetype": null,
"slug": "cloud-security-engineer",
"source": "db"
}
]
},
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Identity and Access Management Products",
"id": 65,
"rationale": "Identity platforms and privileged access tools used to enforce authentication, authorization, and administrative control. This is a vendor-family dimension because the role often reviews multiple IAM and PAM products in enterprise environments.",
"slug": "identity-and-access-management-products",
"source": "db"
},
"input_skill": "Microsoft Entra ID",
"llm_role": null,
"roles_from_db": [
{
"display_name": "Cyber Security Engineer",
"id": 5,
"rationale": null,
"role_archetype": null,
"slug": "cybersecurity-engineer",
"source": "db"
}
]
}
],
"input_skill": "Microsoft Entra ID",
"matched_via": "alias",
"new_alias_persisted": false,
"new_alias_text": null,
"new_skill_meta": null,
"source_tag": "db",
"was_in_llm_skills": true
},
{
"aliases_in_db": [
{
"alias_text": "SQL Server",
"alias_type": "CANONICAL",
"id": 135,
"is_primary": true,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "SQL Server 2000",
"alias_type": "VERSION",
"id": 138,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "SQL Server 2005",
"alias_type": "VERSION",
"id": 139,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "SQL Server 2008",
"alias_type": "VERSION",
"id": 140,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "SQL Server 2012",
"alias_type": "VERSION",
"id": 141,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "SQL Server 2014",
"alias_type": "VERSION",
"id": 142,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "SQL Server 2016",
"alias_type": "VERSION",
"id": 143,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "SQL Server 2017",
"alias_type": "VERSION",
"id": 144,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "SQL Server 2019",
"alias_type": "VERSION",
"id": 145,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "SQL Server 2022",
"alias_type": "VERSION",
"id": 146,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "SQL Server 6.5",
"alias_type": "VERSION",
"id": 136,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "SQL Server 7.0",
"alias_type": "VERSION",
"id": 137,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
}
],
"canonical": {
"category_id": 3,
"display_name": "SQL Server",
"id": 18,
"is_also_category": false,
"is_extractable": true,
"skill_nature": "TOOL",
"slug": "sql-server",
"sub_category_id": 29,
"typical_lifespan": "EVERGREEN",
"volatility": "STABLE"
},
"dimensions": [
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Relational Database Design",
"id": 4,
"rationale": "Modeling and operating relational persistence for backend services. Includes schema design, normalization, indexing, transactions, and query tuning for operational data stores.",
"slug": "relational-database-design",
"source": "db"
},
"input_skill": "SQL Server",
"llm_role": null,
"roles_from_db": [
{
"display_name": ".NET Backend Developer",
"id": 83,
"rationale": null,
"role_archetype": "Engineering",
"slug": "dotnet-backend-developer",
"source": "db"
},
{
"display_name": "Backend Developer",
"id": 1,
"rationale": null,
"role_archetype": "A Backend Engineer designs, builds, and maintains the server-side logic and data handling that power applications and services. They focus on implementing reliable business functionality, integrating with other systems, and ensuring the backend is scalable, maintainable, and observable.",
"slug": "backend-engineer",
"source": "db"
},
{
"display_name": "Kotlin Backend Developer",
"id": 84,
"rationale": null,
"role_archetype": "Engineering",
"slug": "kotlin-server-backend-developer",
"source": "db"
},
{
"display_name": "Node.js Backend Developer",
"id": 82,
"rationale": null,
"role_archetype": "Engineering",
"slug": "node-backend-developer",
"source": "db"
},
{
"display_name": "Python Backend Developer",
"id": 80,
"rationale": null,
"role_archetype": "Engineering",
"slug": "python-backend-developer",
"source": "db"
},
{
"display_name": "Ruby Backend Developer",
"id": 85,
"rationale": null,
"role_archetype": "Engineering",
"slug": "ruby-backend-developer",
"source": "db"
},
{
"display_name": "Scala Backend Developer",
"id": 87,
"rationale": null,
"role_archetype": "Engineering",
"slug": "scala-backend-developer",
"source": "db"
}
]
}
],
"input_skill": "SQL Server",
"matched_via": "alias",
"new_alias_persisted": false,
"new_alias_text": null,
"new_skill_meta": null,
"source_tag": "db",
"was_in_llm_skills": true
},
{
"aliases_in_db": [
{
"alias_text": ".NET",
"alias_type": "CANONICAL",
"id": 4766,
"is_primary": true,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": ".NET 5",
"alias_type": "VERSION",
"id": 4767,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": ".NET 6",
"alias_type": "VERSION",
"id": 4768,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": ".NET 7",
"alias_type": "VERSION",
"id": 4769,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": ".NET 8",
"alias_type": "VERSION",
"id": 4770,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": ".NET Core",
"alias_type": "VERSION",
"id": 4771,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
}
],
"canonical": {
"category_id": 67,
"display_name": ".NET",
"id": 3237,
"is_also_category": false,
"is_extractable": true,
"skill_nature": "RUNTIME",
"slug": "net",
"sub_category_id": 2564,
"typical_lifespan": "EVERGREEN",
"volatility": "STABLE"
},
"dimensions": [
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "C# and .NET Languages",
"id": 362,
"rationale": "Primary implementation languages and runtime features used to build backend service logic in the .NET ecosystem. This is the core coding surface for request handling, domain logic, and service internals.",
"slug": "c-and-net-languages",
"source": "db"
},
"input_skill": ".NET",
"llm_role": null,
"roles_from_db": [
{
"display_name": ".NET Backend Developer",
"id": 83,
"rationale": null,
"role_archetype": "Engineering",
"slug": "dotnet-backend-developer",
"source": "db"
}
]
}
],
"input_skill": ".NET",
"matched_via": "alias",
"new_alias_persisted": false,
"new_alias_text": null,
"new_skill_meta": null,
"source_tag": "db",
"was_in_llm_skills": true
},
{
"aliases_in_db": [
{
"alias_text": "Angular",
"alias_type": "CANONICAL",
"id": 1067,
"is_primary": true,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "Angular 1",
"alias_type": "VERSION",
"id": 1068,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "Angular 1.x",
"alias_type": "VERSION",
"id": 1086,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "Angular 10",
"alias_type": "VERSION",
"id": 1077,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "Angular 11",
"alias_type": "VERSION",
"id": 1078,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "Angular 12",
"alias_type": "VERSION",
"id": 1079,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "Angular 13",
"alias_type": "VERSION",
"id": 1080,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "Angular 14",
"alias_type": "VERSION",
"id": 1081,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "Angular 15",
"alias_type": "VERSION",
"id": 1082,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "Angular 16",
"alias_type": "VERSION",
"id": 1083,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "Angular 17",
"alias_type": "VERSION",
"id": 1084,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "Angular 2",
"alias_type": "VERSION",
"id": 1069,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "Angular 2+",
"alias_type": "VERSION",
"id": 1085,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "Angular 4",
"alias_type": "VERSION",
"id": 1070,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "Angular 5",
"alias_type": "VERSION",
"id": 1071,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "Angular 6",
"alias_type": "VERSION",
"id": 1072,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "Angular 7",
"alias_type": "VERSION",
"id": 1073,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "Angular 8",
"alias_type": "VERSION",
"id": 1074,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "Angular 9",
"alias_type": "VERSION",
"id": 1075,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "AngularJS",
"alias_type": "VERSION",
"id": 1076,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular 1",
"alias_type": "VERSION",
"id": 3205,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular 1.x",
"alias_type": "VERSION",
"id": 3208,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular 10",
"alias_type": "VERSION",
"id": 2098,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular 11",
"alias_type": "VERSION",
"id": 2099,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular 12",
"alias_type": "VERSION",
"id": 2100,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular 13",
"alias_type": "VERSION",
"id": 2101,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular 14",
"alias_type": "VERSION",
"id": 2102,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular 15",
"alias_type": "VERSION",
"id": 2103,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular 16",
"alias_type": "VERSION",
"id": 2104,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular 17",
"alias_type": "VERSION",
"id": 2105,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular 18",
"alias_type": "VERSION",
"id": 4019,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular 19",
"alias_type": "VERSION",
"id": 4020,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular 2",
"alias_type": "VERSION",
"id": 2089,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular 2+",
"alias_type": "VERSION",
"id": 2106,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular 2.x",
"alias_type": "VERSION",
"id": 3209,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular 3",
"alias_type": "VERSION",
"id": 2090,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular 4",
"alias_type": "VERSION",
"id": 2091,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular 5",
"alias_type": "VERSION",
"id": 2092,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular 6",
"alias_type": "VERSION",
"id": 2093,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular 7",
"alias_type": "VERSION",
"id": 2094,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular 8",
"alias_type": "VERSION",
"id": 2095,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular 9",
"alias_type": "VERSION",
"id": 2096,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular17",
"alias_type": "VERSION",
"id": 2097,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angular2",
"alias_type": "VERSION",
"id": 3204,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "angularjs",
"alias_type": "VERSION",
"id": 3207,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "ng",
"alias_type": "VERSION",
"id": 2088,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "ng1",
"alias_type": "VERSION",
"id": 3202,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "ng2",
"alias_type": "VERSION",
"id": 3203,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
}
],
"canonical": {
"category_id": 5,
"display_name": "Angular",
"id": 612,
"is_also_category": false,
"is_extractable": true,
"skill_nature": "FRAMEWORK",
"slug": "angular",
"sub_category_id": 1072,
"typical_lifespan": "EVERGREEN",
"volatility": "STABLE"
},
"dimensions": [
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Angular Component Model and Templates",
"id": 303,
"rationale": "Core Angular framework surface for building reusable UI, composing views, and wiring component behavior. This is the main application substrate for browser features in this role.",
"slug": "angular-component-model-and-templates",
"source": "db"
},
"input_skill": "Angular",
"llm_role": null,
"roles_from_db": [
{
"display_name": "Angular Frontend Developer",
"id": 90,
"rationale": null,
"role_archetype": "Engineering",
"slug": "angular-frontend-developer",
"source": "db"
}
]
},
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Application Frameworks \u0026 Libraries",
"id": 451,
"rationale": "Covers the primary software frameworks and libraries often used alongside Sitecore for building and enhancing site experiences.",
"slug": "application-frameworks-libraries",
"source": "db"
},
"input_skill": "Angular",
"llm_role": null,
"roles_from_db": [
{
"display_name": "Sitecore Dev",
"id": 233,
"rationale": null,
"role_archetype": "Engineering",
"slug": "sitecore-dev",
"source": "db"
}
]
},
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "UI Frameworks and Rendering",
"id": 115,
"rationale": "Component frameworks and rendering models used to build browser screens, reusable UI, and interactive client flows. This is a core cluster because frontend engineers spend much of their time composing and updating view hierarchies.",
"slug": "ui-frameworks-and-rendering",
"source": "db"
},
"input_skill": "Angular",
"llm_role": null,
"roles_from_db": [
{
"display_name": "Frontend Developer",
"id": 7,
"rationale": null,
"role_archetype": null,
"slug": "frontend-engineer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 435,
"rationale": null,
"role_archetype": "Engineering",
"slug": "fullstack-developer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 15,
"rationale": null,
"role_archetype": null,
"slug": "full-stack-engineer",
"source": "db"
},
{
"display_name": "Hybrid Mobile Developer",
"id": 11,
"rationale": null,
"role_archetype": null,
"slug": "hybrid-mobile-developer",
"source": "db"
},
{
"display_name": "Ionic Developer",
"id": 434,
"rationale": null,
"role_archetype": null,
"slug": "ionic-developer",
"source": "db"
},
{
"display_name": "Web Developer",
"id": 25,
"rationale": null,
"role_archetype": null,
"slug": "web-developer",
"source": "db"
}
]
}
],
"input_skill": "Angular",
"matched_via": "alias",
"new_alias_persisted": false,
"new_alias_text": null,
"new_skill_meta": null,
"source_tag": "db",
"was_in_llm_skills": true
},
{
"aliases_in_db": [
{
"alias_text": "JWT",
"alias_type": "CANONICAL",
"id": 165,
"is_primary": true,
"match_strategy": "CASE_INSENSITIVE"
}
],
"canonical": {
"category_id": 4,
"display_name": "JWT",
"id": 28,
"is_also_category": false,
"is_extractable": true,
"skill_nature": "STANDARD",
"slug": "jwt",
"sub_category_id": 33,
"typical_lifespan": "EVERGREEN",
"volatility": "STABLE"
},
"dimensions": [
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Authentication and Authorization",
"id": 6,
"rationale": "Identity, session, and access-control mechanisms used to protect PHP backend resources. This includes login flows, token handling, role checks, permissions, and policy enforcement in server-side code.",
"slug": "authentication-and-authorization",
"source": "db"
},
"input_skill": "JWT",
"llm_role": null,
"roles_from_db": [
{
"display_name": ".NET Backend Developer",
"id": 83,
"rationale": null,
"role_archetype": "Engineering",
"slug": "dotnet-backend-developer",
"source": "db"
},
{
"display_name": "Backend Developer",
"id": 1,
"rationale": null,
"role_archetype": "A Backend Engineer designs, builds, and maintains the server-side logic and data handling that power applications and services. They focus on implementing reliable business functionality, integrating with other systems, and ensuring the backend is scalable, maintainable, and observable.",
"slug": "backend-engineer",
"source": "db"
},
{
"display_name": "Go Backend Developer",
"id": 81,
"rationale": null,
"role_archetype": "Engineering",
"slug": "go-backend-developer",
"source": "db"
},
{
"display_name": "Java Backend Developer",
"id": 79,
"rationale": null,
"role_archetype": "Engineering",
"slug": "java-backend-developer",
"source": "db"
},
{
"display_name": "Node.js Backend Developer",
"id": 82,
"rationale": null,
"role_archetype": "Engineering",
"slug": "node-backend-developer",
"source": "db"
},
{
"display_name": "PHP Backend Developer",
"id": 86,
"rationale": null,
"role_archetype": "Engineering",
"slug": "php-backend-developer",
"source": "db"
},
{
"display_name": "Python Backend Developer",
"id": 80,
"rationale": null,
"role_archetype": "Engineering",
"slug": "python-backend-developer",
"source": "db"
}
]
},
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Authentication and Session Handling",
"id": 86,
"rationale": "Client-side identity flows and secure session management used to sign users in and keep them authenticated. This includes token handling, login UX, and protecting secrets on device.",
"slug": "authentication-and-session-handling",
"source": "db"
},
"input_skill": "JWT",
"llm_role": null,
"roles_from_db": [
{
"display_name": "Android Developer",
"id": 4,
"rationale": null,
"role_archetype": null,
"slug": "android-engineer",
"source": "db"
},
{
"display_name": "Frontend Developer",
"id": 7,
"rationale": null,
"role_archetype": null,
"slug": "frontend-engineer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 15,
"rationale": null,
"role_archetype": null,
"slug": "full-stack-engineer",
"source": "db"
},
{
"display_name": "Hybrid Mobile Developer",
"id": 11,
"rationale": null,
"role_archetype": null,
"slug": "hybrid-mobile-developer",
"source": "db"
},
{
"display_name": "Ionic Developer",
"id": 434,
"rationale": null,
"role_archetype": null,
"slug": "ionic-developer",
"source": "db"
},
{
"display_name": "Native Mobile Developer",
"id": 75,
"rationale": null,
"role_archetype": "Engineering",
"slug": "native-mobile-developer",
"source": "db"
},
{
"display_name": "Web Developer",
"id": 25,
"rationale": null,
"role_archetype": null,
"slug": "web-developer",
"source": "db"
},
{
"display_name": "iOS Developer",
"id": 6,
"rationale": null,
"role_archetype": null,
"slug": "ios-engineer",
"source": "db"
}
]
},
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Backend Authentication and Authorization",
"id": 386,
"rationale": "Identity and access control mechanisms used by backend services to authenticate users or clients and enforce permissions on protected resources. This includes token and session handling, OAuth 2.0 / OpenID Connect / SAML flows, JWT and access tokens, API keys, MFA, role- or claim-based authorization, RBAC/ABAC, scopes, policies, Spring Security, and authorization filters.",
"slug": "backend-authentication-and-authorization",
"source": "db"
},
"input_skill": "JWT",
"llm_role": null,
"roles_from_db": [
{
"display_name": "Kotlin Backend Developer",
"id": 84,
"rationale": null,
"role_archetype": "Engineering",
"slug": "kotlin-server-backend-developer",
"source": "db"
},
{
"display_name": "Ruby Backend Developer",
"id": 85,
"rationale": null,
"role_archetype": "Engineering",
"slug": "ruby-backend-developer",
"source": "db"
},
{
"display_name": "Scala Backend Developer",
"id": 87,
"rationale": null,
"role_archetype": "Engineering",
"slug": "scala-backend-developer",
"source": "db"
}
]
},
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Frontend Authentication and Session Management",
"id": 300,
"rationale": "Client-side authentication and session management for frontend applications, including sign-in flows, OAuth 2.0/OpenID Connect/SSO integration, JWT and refresh token handling, login forms, protected routes, session persistence, and session-expiry user experience. This covers the user-facing parts of identity workflows implemented in React or other frontend stacks, but excludes identity provider administration, backend authorization policy, secret storage on servers, and MFA device management.",
"slug": "frontend-authentication-and-session-management",
"source": "db"
},
"input_skill": "JWT",
"llm_role": null,
"roles_from_db": [
{
"display_name": "React Frontend Developer",
"id": 89,
"rationale": null,
"role_archetype": "Engineering",
"slug": "react-frontend-developer",
"source": "db"
},
{
"display_name": "Svelte Frontend Developer",
"id": 92,
"rationale": null,
"role_archetype": "Engineering",
"slug": "svelte-frontend-developer",
"source": "db"
},
{
"display_name": "Vue Frontend Developer",
"id": 91,
"rationale": null,
"role_archetype": "Engineering",
"slug": "vue-frontend-developer",
"source": "db"
}
]
}
],
"input_skill": "JWT",
"matched_via": "alias",
"new_alias_persisted": false,
"new_alias_text": null,
"new_skill_meta": null,
"source_tag": "db",
"was_in_llm_skills": true
},
{
"aliases_in_db": [
{
"alias_text": "Entity Framework",
"alias_type": "CANONICAL",
"id": 150,
"is_primary": true,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": ".NET Core EF",
"alias_type": "VERSION",
"id": 153,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": ".NET Framework EF",
"alias_type": "VERSION",
"id": 154,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "EF",
"alias_type": "VERSION",
"id": 2317,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "EF Core",
"alias_type": "VERSION",
"id": 152,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "EF6",
"alias_type": "VERSION",
"id": 151,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "EFCore",
"alias_type": "VERSION",
"id": 2319,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "Entity Framework 6",
"alias_type": "VERSION",
"id": 155,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "Entity Framework Core",
"alias_type": "VERSION",
"id": 2323,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "EntityFramework6",
"alias_type": "VERSION",
"id": 2321,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
}
],
"canonical": {
"category_id": 5,
"display_name": "Entity Framework",
"id": 22,
"is_also_category": false,
"is_extractable": true,
"skill_nature": "FRAMEWORK",
"slug": "entity-framework",
"sub_category_id": 1073,
"typical_lifespan": "EVERGREEN",
"volatility": "STABLE"
},
"dimensions": [
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "ORMs and Data Access Layers",
"id": 5,
"rationale": "Libraries and patterns used to map application objects to persistent storage and encapsulate database access. This cluster covers repository patterns, query builders, and persistence abstractions.",
"slug": "orms-and-data-access-layers",
"source": "db"
},
"input_skill": "Entity Framework",
"llm_role": null,
"roles_from_db": [
{
"display_name": ".NET Backend Developer",
"id": 83,
"rationale": null,
"role_archetype": "Engineering",
"slug": "dotnet-backend-developer",
"source": "db"
},
{
"display_name": "Backend Developer",
"id": 1,
"rationale": null,
"role_archetype": "A Backend Engineer designs, builds, and maintains the server-side logic and data handling that power applications and services. They focus on implementing reliable business functionality, integrating with other systems, and ensuring the backend is scalable, maintainable, and observable.",
"slug": "backend-engineer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 435,
"rationale": null,
"role_archetype": "Engineering",
"slug": "fullstack-developer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 15,
"rationale": null,
"role_archetype": null,
"slug": "full-stack-engineer",
"source": "db"
},
{
"display_name": "Java Backend Developer",
"id": 79,
"rationale": null,
"role_archetype": "Engineering",
"slug": "java-backend-developer",
"source": "db"
},
{
"display_name": "Kotlin Backend Developer",
"id": 84,
"rationale": null,
"role_archetype": "Engineering",
"slug": "kotlin-server-backend-developer",
"source": "db"
},
{
"display_name": "Node.js Backend Developer",
"id": 82,
"rationale": null,
"role_archetype": "Engineering",
"slug": "node-backend-developer",
"source": "db"
},
{
"display_name": "PHP Backend Developer",
"id": 86,
"rationale": null,
"role_archetype": "Engineering",
"slug": "php-backend-developer",
"source": "db"
},
{
"display_name": "Python Backend Developer",
"id": 80,
"rationale": null,
"role_archetype": "Engineering",
"slug": "python-backend-developer",
"source": "db"
},
{
"display_name": "Ruby Backend Developer",
"id": 85,
"rationale": null,
"role_archetype": "Engineering",
"slug": "ruby-backend-developer",
"source": "db"
}
]
}
],
"input_skill": "Entity Framework",
"matched_via": "alias",
"new_alias_persisted": false,
"new_alias_text": null,
"new_skill_meta": null,
"source_tag": "db",
"was_in_llm_skills": true
},
{
"aliases_in_db": [
{
"alias_text": "ASP.NET Core",
"alias_type": "CANONICAL",
"id": 80,
"is_primary": true,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "asp.net core",
"alias_type": "VERSION",
"id": 2298,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "asp.net core 8",
"alias_type": "VERSION",
"id": 2300,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "asp.net core/.net 8",
"alias_type": "VERSION",
"id": 2301,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "aspnetcore",
"alias_type": "VERSION",
"id": 4784,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "aspnetcore 8",
"alias_type": "VERSION",
"id": 2299,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "net 8",
"alias_type": "VERSION",
"id": 2297,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
},
{
"alias_text": "net8",
"alias_type": "VERSION",
"id": 2296,
"is_primary": false,
"match_strategy": "CASE_INSENSITIVE"
}
],
"canonical": {
"category_id": 5,
"display_name": "ASP.NET Core",
"id": 7,
"is_also_category": false,
"is_extractable": true,
"skill_nature": "FRAMEWORK",
"slug": "asp-net-core",
"sub_category_id": 35,
"typical_lifespan": "EVERGREEN",
"volatility": "STABLE"
},
"dimensions": [
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "ASP.NET Core Web Frameworks",
"id": 363,
"rationale": "Server-side web frameworks and hosting models used to build HTTP APIs, middleware, filters, and request pipelines. This cluster is coherent because it defines how backend services receive, process, and return requests.",
"slug": "asp-net-core-web-frameworks",
"source": "db"
},
"input_skill": "ASP.NET Core",
"llm_role": null,
"roles_from_db": [
{
"display_name": ".NET Backend Developer",
"id": 83,
"rationale": null,
"role_archetype": "Engineering",
"slug": "dotnet-backend-developer",
"source": "db"
}
]
},
{
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Web Application Frameworks",
"id": 2,
"rationale": "Server frameworks and runtimes used to build HTTP services, controllers, middleware, and request pipelines. These frameworks shape how backend endpoints are structured and delivered.",
"slug": "web-application-frameworks",
"source": "db"
},
"input_skill": "ASP.NET Core",
"llm_role": null,
"roles_from_db": [
{
"display_name": "Backend Developer",
"id": 1,
"rationale": null,
"role_archetype": "A Backend Engineer designs, builds, and maintains the server-side logic and data handling that power applications and services. They focus on implementing reliable business functionality, integrating with other systems, and ensuring the backend is scalable, maintainable, and observable.",
"slug": "backend-engineer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 435,
"rationale": null,
"role_archetype": "Engineering",
"slug": "fullstack-developer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 15,
"rationale": null,
"role_archetype": null,
"slug": "full-stack-engineer",
"source": "db"
},
{
"display_name": "Java Backend Developer",
"id": 79,
"rationale": null,
"role_archetype": "Engineering",
"slug": "java-backend-developer",
"source": "db"
},
{
"display_name": "Node.js Backend Developer",
"id": 82,
"rationale": null,
"role_archetype": "Engineering",
"slug": "node-backend-developer",
"source": "db"
},
{
"display_name": "PHP Backend Developer",
"id": 86,
"rationale": null,
"role_archetype": "Engineering",
"slug": "php-backend-developer",
"source": "db"
},
{
"display_name": "Python Backend Developer",
"id": 80,
"rationale": null,
"role_archetype": "Engineering",
"slug": "python-backend-developer",
"source": "db"
}
]
}
],
"input_skill": "ASP.NET Core",
"matched_via": "alias",
"new_alias_persisted": false,
"new_alias_text": null,
"new_skill_meta": null,
"source_tag": "db",
"was_in_llm_skills": true
},
{
"aliases_in_db": [],
"canonical": null,
"dimensions": [],
"input_skill": "MSAL",
"matched_via": null,
"new_alias_persisted": false,
"new_alias_text": null,
"new_skill_meta": {
"derived": {
"category": "Authentication Libraries",
"skill_nature": "TOOL",
"sub_category": "general",
"typical_lifespan": "MULTI_YEAR",
"version_strategy": "UNVERSIONED",
"volatility": "MEDIUM"
},
"enrichment": null,
"keep_log": [],
"locked_dimensions": [],
"merge_log": [],
"placed": null,
"relationships": null,
"skill_id": "msal",
"split_log": [],
"typed": null,
"warnings": []
},
"source_tag": "llm",
"was_in_llm_skills": true
}
],
"unmatched_skills": [
"MSAL"
]
}
API 3 — final-role-output
{
"chosen_role": {
"display_name": "IAM Engineer",
"id": 193,
"rationale": "Domain=Security; The JD is centered on identity, authentication, authorization, role assignment, and access control across Entra ID, .NET, SQL Server, and Angular, which aligns most strongly with IAM engineering.",
"role_archetype": null,
"slug": "iam-engineer",
"source": "db"
},
"chosen_role_resolution": "in_db",
"final_input_skills": [
{
"skill": "Microsoft Entra ID",
"tag": "in_db"
},
{
"skill": "SQL Server",
"tag": "in_db"
},
{
"skill": ".NET",
"tag": "in_db"
},
{
"skill": "Angular",
"tag": "in_db"
},
{
"skill": "JWT",
"tag": "in_db"
},
{
"skill": "Entity Framework",
"tag": "in_db"
},
{
"skill": "ASP.NET Core",
"tag": "in_db"
},
{
"skill": "MSAL",
"tag": "new"
}
],
"llm_cost_api1_usd": null,
"llm_cost_api2_usd": null,
"llm_cost_api3_usd": null,
"llm_cost_total_usd": null,
"persistence": {
"items": [
{
"chosen_role_id": 193,
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Identity and Access Architecture",
"id": 137,
"rationale": "Cloud identity patterns for authentication, authorization, federation, and privileged access boundaries. This is central to cloud governance because it defines who can administer and consume platform resources.",
"slug": "identity-and-access-architecture",
"source": "db"
},
"dimension_id": 137,
"input_skill": "Microsoft Entra ID",
"llm_role": null,
"matched_chosen_role": false,
"outcome_line": "Existing dimension (library) \u00b7 Role\u2194dimension skipped (dimension not under chosen role)",
"role_dimension_saved": false,
"roles_from_db": [
{
"display_name": "Cloud Architect",
"id": 9,
"rationale": null,
"role_archetype": null,
"slug": "cloud-architect",
"source": "db"
},
{
"display_name": "Cloud Security Engineer",
"id": 23,
"rationale": null,
"role_archetype": null,
"slug": "cloud-security-engineer",
"source": "db"
}
],
"skill_dimension_saved": true,
"skill_id": 343,
"skill_tag": "in_db",
"skipped_reason": null
},
{
"chosen_role_id": 193,
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Identity and Access Management Products",
"id": 65,
"rationale": "Identity platforms and privileged access tools used to enforce authentication, authorization, and administrative control. This is a vendor-family dimension because the role often reviews multiple IAM and PAM products in enterprise environments.",
"slug": "identity-and-access-management-products",
"source": "db"
},
"dimension_id": 65,
"input_skill": "Microsoft Entra ID",
"llm_role": null,
"matched_chosen_role": false,
"outcome_line": "Existing dimension (library) \u00b7 Role\u2194dimension skipped (dimension not under chosen role)",
"role_dimension_saved": false,
"roles_from_db": [
{
"display_name": "Cyber Security Engineer",
"id": 5,
"rationale": null,
"role_archetype": null,
"slug": "cybersecurity-engineer",
"source": "db"
}
],
"skill_dimension_saved": true,
"skill_id": 343,
"skill_tag": "in_db",
"skipped_reason": null
},
{
"chosen_role_id": 193,
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Relational Database Design",
"id": 4,
"rationale": "Modeling and operating relational persistence for backend services. Includes schema design, normalization, indexing, transactions, and query tuning for operational data stores.",
"slug": "relational-database-design",
"source": "db"
},
"dimension_id": 4,
"input_skill": "SQL Server",
"llm_role": null,
"matched_chosen_role": false,
"outcome_line": "Existing dimension (library) \u00b7 Role\u2194dimension skipped (dimension not under chosen role)",
"role_dimension_saved": false,
"roles_from_db": [
{
"display_name": ".NET Backend Developer",
"id": 83,
"rationale": null,
"role_archetype": "Engineering",
"slug": "dotnet-backend-developer",
"source": "db"
},
{
"display_name": "Backend Developer",
"id": 1,
"rationale": null,
"role_archetype": "A Backend Engineer designs, builds, and maintains the server-side logic and data handling that power applications and services. They focus on implementing reliable business functionality, integrating with other systems, and ensuring the backend is scalable, maintainable, and observable.",
"slug": "backend-engineer",
"source": "db"
},
{
"display_name": "Kotlin Backend Developer",
"id": 84,
"rationale": null,
"role_archetype": "Engineering",
"slug": "kotlin-server-backend-developer",
"source": "db"
},
{
"display_name": "Node.js Backend Developer",
"id": 82,
"rationale": null,
"role_archetype": "Engineering",
"slug": "node-backend-developer",
"source": "db"
},
{
"display_name": "Python Backend Developer",
"id": 80,
"rationale": null,
"role_archetype": "Engineering",
"slug": "python-backend-developer",
"source": "db"
},
{
"display_name": "Ruby Backend Developer",
"id": 85,
"rationale": null,
"role_archetype": "Engineering",
"slug": "ruby-backend-developer",
"source": "db"
},
{
"display_name": "Scala Backend Developer",
"id": 87,
"rationale": null,
"role_archetype": "Engineering",
"slug": "scala-backend-developer",
"source": "db"
}
],
"skill_dimension_saved": true,
"skill_id": 18,
"skill_tag": "in_db",
"skipped_reason": null
},
{
"chosen_role_id": 193,
"dimension": {
"difficulty_hint": "well_known",
"display_name": "C# and .NET Languages",
"id": 362,
"rationale": "Primary implementation languages and runtime features used to build backend service logic in the .NET ecosystem. This is the core coding surface for request handling, domain logic, and service internals.",
"slug": "c-and-net-languages",
"source": "db"
},
"dimension_id": 362,
"input_skill": ".NET",
"llm_role": null,
"matched_chosen_role": false,
"outcome_line": "Existing dimension (library) \u00b7 Role\u2194dimension skipped (dimension not under chosen role)",
"role_dimension_saved": false,
"roles_from_db": [
{
"display_name": ".NET Backend Developer",
"id": 83,
"rationale": null,
"role_archetype": "Engineering",
"slug": "dotnet-backend-developer",
"source": "db"
}
],
"skill_dimension_saved": true,
"skill_id": 3237,
"skill_tag": "in_db",
"skipped_reason": null
},
{
"chosen_role_id": 193,
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Angular Component Model and Templates",
"id": 303,
"rationale": "Core Angular framework surface for building reusable UI, composing views, and wiring component behavior. This is the main application substrate for browser features in this role.",
"slug": "angular-component-model-and-templates",
"source": "db"
},
"dimension_id": 303,
"input_skill": "Angular",
"llm_role": null,
"matched_chosen_role": false,
"outcome_line": "Existing dimension (library) \u00b7 Role\u2194dimension skipped (dimension not under chosen role)",
"role_dimension_saved": false,
"roles_from_db": [
{
"display_name": "Angular Frontend Developer",
"id": 90,
"rationale": null,
"role_archetype": "Engineering",
"slug": "angular-frontend-developer",
"source": "db"
}
],
"skill_dimension_saved": true,
"skill_id": 612,
"skill_tag": "in_db",
"skipped_reason": null
},
{
"chosen_role_id": 193,
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Application Frameworks \u0026 Libraries",
"id": 451,
"rationale": "Covers the primary software frameworks and libraries often used alongside Sitecore for building and enhancing site experiences.",
"slug": "application-frameworks-libraries",
"source": "db"
},
"dimension_id": 451,
"input_skill": "Angular",
"llm_role": null,
"matched_chosen_role": false,
"outcome_line": "Existing dimension (library) \u00b7 Role\u2194dimension skipped (dimension not under chosen role)",
"role_dimension_saved": false,
"roles_from_db": [
{
"display_name": "Sitecore Dev",
"id": 233,
"rationale": null,
"role_archetype": "Engineering",
"slug": "sitecore-dev",
"source": "db"
}
],
"skill_dimension_saved": true,
"skill_id": 612,
"skill_tag": "in_db",
"skipped_reason": null
},
{
"chosen_role_id": 193,
"dimension": {
"difficulty_hint": "well_known",
"display_name": "UI Frameworks and Rendering",
"id": 115,
"rationale": "Component frameworks and rendering models used to build browser screens, reusable UI, and interactive client flows. This is a core cluster because frontend engineers spend much of their time composing and updating view hierarchies.",
"slug": "ui-frameworks-and-rendering",
"source": "db"
},
"dimension_id": 115,
"input_skill": "Angular",
"llm_role": null,
"matched_chosen_role": false,
"outcome_line": "Existing dimension (library) \u00b7 Role\u2194dimension skipped (dimension not under chosen role)",
"role_dimension_saved": false,
"roles_from_db": [
{
"display_name": "Frontend Developer",
"id": 7,
"rationale": null,
"role_archetype": null,
"slug": "frontend-engineer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 435,
"rationale": null,
"role_archetype": "Engineering",
"slug": "fullstack-developer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 15,
"rationale": null,
"role_archetype": null,
"slug": "full-stack-engineer",
"source": "db"
},
{
"display_name": "Hybrid Mobile Developer",
"id": 11,
"rationale": null,
"role_archetype": null,
"slug": "hybrid-mobile-developer",
"source": "db"
},
{
"display_name": "Ionic Developer",
"id": 434,
"rationale": null,
"role_archetype": null,
"slug": "ionic-developer",
"source": "db"
},
{
"display_name": "Web Developer",
"id": 25,
"rationale": null,
"role_archetype": null,
"slug": "web-developer",
"source": "db"
}
],
"skill_dimension_saved": true,
"skill_id": 612,
"skill_tag": "in_db",
"skipped_reason": null
},
{
"chosen_role_id": 193,
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Authentication and Authorization",
"id": 6,
"rationale": "Identity, session, and access-control mechanisms used to protect PHP backend resources. This includes login flows, token handling, role checks, permissions, and policy enforcement in server-side code.",
"slug": "authentication-and-authorization",
"source": "db"
},
"dimension_id": 6,
"input_skill": "JWT",
"llm_role": null,
"matched_chosen_role": false,
"outcome_line": "Existing dimension (library) \u00b7 Role\u2194dimension skipped (dimension not under chosen role)",
"role_dimension_saved": false,
"roles_from_db": [
{
"display_name": ".NET Backend Developer",
"id": 83,
"rationale": null,
"role_archetype": "Engineering",
"slug": "dotnet-backend-developer",
"source": "db"
},
{
"display_name": "Backend Developer",
"id": 1,
"rationale": null,
"role_archetype": "A Backend Engineer designs, builds, and maintains the server-side logic and data handling that power applications and services. They focus on implementing reliable business functionality, integrating with other systems, and ensuring the backend is scalable, maintainable, and observable.",
"slug": "backend-engineer",
"source": "db"
},
{
"display_name": "Go Backend Developer",
"id": 81,
"rationale": null,
"role_archetype": "Engineering",
"slug": "go-backend-developer",
"source": "db"
},
{
"display_name": "Java Backend Developer",
"id": 79,
"rationale": null,
"role_archetype": "Engineering",
"slug": "java-backend-developer",
"source": "db"
},
{
"display_name": "Node.js Backend Developer",
"id": 82,
"rationale": null,
"role_archetype": "Engineering",
"slug": "node-backend-developer",
"source": "db"
},
{
"display_name": "PHP Backend Developer",
"id": 86,
"rationale": null,
"role_archetype": "Engineering",
"slug": "php-backend-developer",
"source": "db"
},
{
"display_name": "Python Backend Developer",
"id": 80,
"rationale": null,
"role_archetype": "Engineering",
"slug": "python-backend-developer",
"source": "db"
}
],
"skill_dimension_saved": true,
"skill_id": 28,
"skill_tag": "in_db",
"skipped_reason": null
},
{
"chosen_role_id": 193,
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Authentication and Session Handling",
"id": 86,
"rationale": "Client-side identity flows and secure session management used to sign users in and keep them authenticated. This includes token handling, login UX, and protecting secrets on device.",
"slug": "authentication-and-session-handling",
"source": "db"
},
"dimension_id": 86,
"input_skill": "JWT",
"llm_role": null,
"matched_chosen_role": false,
"outcome_line": "Existing dimension (library) \u00b7 Role\u2194dimension skipped (dimension not under chosen role)",
"role_dimension_saved": false,
"roles_from_db": [
{
"display_name": "Android Developer",
"id": 4,
"rationale": null,
"role_archetype": null,
"slug": "android-engineer",
"source": "db"
},
{
"display_name": "Frontend Developer",
"id": 7,
"rationale": null,
"role_archetype": null,
"slug": "frontend-engineer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 15,
"rationale": null,
"role_archetype": null,
"slug": "full-stack-engineer",
"source": "db"
},
{
"display_name": "Hybrid Mobile Developer",
"id": 11,
"rationale": null,
"role_archetype": null,
"slug": "hybrid-mobile-developer",
"source": "db"
},
{
"display_name": "Ionic Developer",
"id": 434,
"rationale": null,
"role_archetype": null,
"slug": "ionic-developer",
"source": "db"
},
{
"display_name": "Native Mobile Developer",
"id": 75,
"rationale": null,
"role_archetype": "Engineering",
"slug": "native-mobile-developer",
"source": "db"
},
{
"display_name": "Web Developer",
"id": 25,
"rationale": null,
"role_archetype": null,
"slug": "web-developer",
"source": "db"
},
{
"display_name": "iOS Developer",
"id": 6,
"rationale": null,
"role_archetype": null,
"slug": "ios-engineer",
"source": "db"
}
],
"skill_dimension_saved": true,
"skill_id": 28,
"skill_tag": "in_db",
"skipped_reason": null
},
{
"chosen_role_id": 193,
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Backend Authentication and Authorization",
"id": 386,
"rationale": "Identity and access control mechanisms used by backend services to authenticate users or clients and enforce permissions on protected resources. This includes token and session handling, OAuth 2.0 / OpenID Connect / SAML flows, JWT and access tokens, API keys, MFA, role- or claim-based authorization, RBAC/ABAC, scopes, policies, Spring Security, and authorization filters.",
"slug": "backend-authentication-and-authorization",
"source": "db"
},
"dimension_id": 386,
"input_skill": "JWT",
"llm_role": null,
"matched_chosen_role": false,
"outcome_line": "Existing dimension (library) \u00b7 Role\u2194dimension skipped (dimension not under chosen role)",
"role_dimension_saved": false,
"roles_from_db": [
{
"display_name": "Kotlin Backend Developer",
"id": 84,
"rationale": null,
"role_archetype": "Engineering",
"slug": "kotlin-server-backend-developer",
"source": "db"
},
{
"display_name": "Ruby Backend Developer",
"id": 85,
"rationale": null,
"role_archetype": "Engineering",
"slug": "ruby-backend-developer",
"source": "db"
},
{
"display_name": "Scala Backend Developer",
"id": 87,
"rationale": null,
"role_archetype": "Engineering",
"slug": "scala-backend-developer",
"source": "db"
}
],
"skill_dimension_saved": true,
"skill_id": 28,
"skill_tag": "in_db",
"skipped_reason": null
},
{
"chosen_role_id": 193,
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Frontend Authentication and Session Management",
"id": 300,
"rationale": "Client-side authentication and session management for frontend applications, including sign-in flows, OAuth 2.0/OpenID Connect/SSO integration, JWT and refresh token handling, login forms, protected routes, session persistence, and session-expiry user experience. This covers the user-facing parts of identity workflows implemented in React or other frontend stacks, but excludes identity provider administration, backend authorization policy, secret storage on servers, and MFA device management.",
"slug": "frontend-authentication-and-session-management",
"source": "db"
},
"dimension_id": 300,
"input_skill": "JWT",
"llm_role": null,
"matched_chosen_role": false,
"outcome_line": "Existing dimension (library) \u00b7 Role\u2194dimension skipped (dimension not under chosen role)",
"role_dimension_saved": false,
"roles_from_db": [
{
"display_name": "React Frontend Developer",
"id": 89,
"rationale": null,
"role_archetype": "Engineering",
"slug": "react-frontend-developer",
"source": "db"
},
{
"display_name": "Svelte Frontend Developer",
"id": 92,
"rationale": null,
"role_archetype": "Engineering",
"slug": "svelte-frontend-developer",
"source": "db"
},
{
"display_name": "Vue Frontend Developer",
"id": 91,
"rationale": null,
"role_archetype": "Engineering",
"slug": "vue-frontend-developer",
"source": "db"
}
],
"skill_dimension_saved": true,
"skill_id": 28,
"skill_tag": "in_db",
"skipped_reason": null
},
{
"chosen_role_id": 193,
"dimension": {
"difficulty_hint": "well_known",
"display_name": "ORMs and Data Access Layers",
"id": 5,
"rationale": "Libraries and patterns used to map application objects to persistent storage and encapsulate database access. This cluster covers repository patterns, query builders, and persistence abstractions.",
"slug": "orms-and-data-access-layers",
"source": "db"
},
"dimension_id": 5,
"input_skill": "Entity Framework",
"llm_role": null,
"matched_chosen_role": false,
"outcome_line": "Existing dimension (library) \u00b7 Role\u2194dimension skipped (dimension not under chosen role)",
"role_dimension_saved": false,
"roles_from_db": [
{
"display_name": ".NET Backend Developer",
"id": 83,
"rationale": null,
"role_archetype": "Engineering",
"slug": "dotnet-backend-developer",
"source": "db"
},
{
"display_name": "Backend Developer",
"id": 1,
"rationale": null,
"role_archetype": "A Backend Engineer designs, builds, and maintains the server-side logic and data handling that power applications and services. They focus on implementing reliable business functionality, integrating with other systems, and ensuring the backend is scalable, maintainable, and observable.",
"slug": "backend-engineer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 435,
"rationale": null,
"role_archetype": "Engineering",
"slug": "fullstack-developer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 15,
"rationale": null,
"role_archetype": null,
"slug": "full-stack-engineer",
"source": "db"
},
{
"display_name": "Java Backend Developer",
"id": 79,
"rationale": null,
"role_archetype": "Engineering",
"slug": "java-backend-developer",
"source": "db"
},
{
"display_name": "Kotlin Backend Developer",
"id": 84,
"rationale": null,
"role_archetype": "Engineering",
"slug": "kotlin-server-backend-developer",
"source": "db"
},
{
"display_name": "Node.js Backend Developer",
"id": 82,
"rationale": null,
"role_archetype": "Engineering",
"slug": "node-backend-developer",
"source": "db"
},
{
"display_name": "PHP Backend Developer",
"id": 86,
"rationale": null,
"role_archetype": "Engineering",
"slug": "php-backend-developer",
"source": "db"
},
{
"display_name": "Python Backend Developer",
"id": 80,
"rationale": null,
"role_archetype": "Engineering",
"slug": "python-backend-developer",
"source": "db"
},
{
"display_name": "Ruby Backend Developer",
"id": 85,
"rationale": null,
"role_archetype": "Engineering",
"slug": "ruby-backend-developer",
"source": "db"
}
],
"skill_dimension_saved": true,
"skill_id": 22,
"skill_tag": "in_db",
"skipped_reason": null
},
{
"chosen_role_id": 193,
"dimension": {
"difficulty_hint": "well_known",
"display_name": "ASP.NET Core Web Frameworks",
"id": 363,
"rationale": "Server-side web frameworks and hosting models used to build HTTP APIs, middleware, filters, and request pipelines. This cluster is coherent because it defines how backend services receive, process, and return requests.",
"slug": "asp-net-core-web-frameworks",
"source": "db"
},
"dimension_id": 363,
"input_skill": "ASP.NET Core",
"llm_role": null,
"matched_chosen_role": false,
"outcome_line": "Existing dimension (library) \u00b7 Role\u2194dimension skipped (dimension not under chosen role)",
"role_dimension_saved": false,
"roles_from_db": [
{
"display_name": ".NET Backend Developer",
"id": 83,
"rationale": null,
"role_archetype": "Engineering",
"slug": "dotnet-backend-developer",
"source": "db"
}
],
"skill_dimension_saved": true,
"skill_id": 7,
"skill_tag": "in_db",
"skipped_reason": null
},
{
"chosen_role_id": 193,
"dimension": {
"difficulty_hint": "well_known",
"display_name": "Web Application Frameworks",
"id": 2,
"rationale": "Server frameworks and runtimes used to build HTTP services, controllers, middleware, and request pipelines. These frameworks shape how backend endpoints are structured and delivered.",
"slug": "web-application-frameworks",
"source": "db"
},
"dimension_id": 2,
"input_skill": "ASP.NET Core",
"llm_role": null,
"matched_chosen_role": false,
"outcome_line": "Existing dimension (library) \u00b7 Role\u2194dimension skipped (dimension not under chosen role)",
"role_dimension_saved": false,
"roles_from_db": [
{
"display_name": "Backend Developer",
"id": 1,
"rationale": null,
"role_archetype": "A Backend Engineer designs, builds, and maintains the server-side logic and data handling that power applications and services. They focus on implementing reliable business functionality, integrating with other systems, and ensuring the backend is scalable, maintainable, and observable.",
"slug": "backend-engineer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 435,
"rationale": null,
"role_archetype": "Engineering",
"slug": "fullstack-developer",
"source": "db"
},
{
"display_name": "Fullstack Developer",
"id": 15,
"rationale": null,
"role_archetype": null,
"slug": "full-stack-engineer",
"source": "db"
},
{
"display_name": "Java Backend Developer",
"id": 79,
"rationale": null,
"role_archetype": "Engineering",
"slug": "java-backend-developer",
"source": "db"
},
{
"display_name": "Node.js Backend Developer",
"id": 82,
"rationale": null,
"role_archetype": "Engineering",
"slug": "node-backend-developer",
"source": "db"
},
{
"display_name": "PHP Backend Developer",
"id": 86,
"rationale": null,
"role_archetype": "Engineering",
"slug": "php-backend-developer",
"source": "db"
},
{
"display_name": "Python Backend Developer",
"id": 80,
"rationale": null,
"role_archetype": "Engineering",
"slug": "python-backend-developer",
"source": "db"
}
],
"skill_dimension_saved": true,
"skill_id": 7,
"skill_tag": "in_db",
"skipped_reason": null
}
],
"new_skills_created": 0,
"role_dimension_saved": 0,
"skill_dimension_saved": 0,
"skipped": 0
},
"planner_output": null,
"run_id": "ea420107-deab-4d30-910e-ccc04ac6dad5"
}
LLM Calls
Every model call made for this run, in pipeline order. Click a card to see the model's response.