← Back to history

Pipeline run

ea420107-deab-4d30-910e-ccc04ac6dad5

Pipeline LLM cost (USD)
API 1: $0.0077 API 2: $0.0001 API 3: $0.0000 Total: $0.0078

Client output enrichment

v2 Skill cluster · Nature of work · AI index · Tech stack maturity · Evidence · KRA description
Nature of work · Authentication & Authorization
Build and secure Entra ID–based login across a .NET API and Angular app, store user roles in SQL Server, and enforce role-based access in API policies and Angular route guards.
"Authenticate users using Microsoft Entra ID."
Tech stack maturity
Mainstream Modern
The stack centers on .NET, ASP.NET Core, Entity Framework, JWT, SQL Server, Angular, and Microsoft Entra ID, which are all widely adopted modern enterprise technologies but not cutting-edge cloud-native or legacy pre-cloud.
AI index (0 = no AI use, 5 = totally AI-dependent · v2.1)
0.00 / 5
· Title match
· Has AI skill
· AI skill (primary)
· AI skill (secondary)
· On AI team
· Builds AI products
vocab breakdown (legacy)
Assistants (×1):
Frameworks (×2):
Models / concepts (×3):
Evidence — skills matched in JD (8)
Microsoft Entra ID SQL Server .NET Angular JWT Entity Framework ASP.NET Core MSAL
Skill cluster (5 dimension groups, role-scoped)
ASP.NET Core Web Frameworks
ASP.NET Core
Angular Component Model and Templates
Angular
Backend Authentication and Authorization
JWT
Identity and Access Management Products
Microsoft Entra ID
Cross-cutting / unaligned
SQL Server .NET Entity Framework MSAL
Show KRA description ↓
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.

Signals

Skill dotnet-backend-developer
0.75
Alias cybersecurity-engineer
1.00
KRA cybersecurity-engineer
0.48

Post-classification

Centroidupdated · n=3
Alias collision log
New-role queue
New skills captured1
New KRA capturedyes

Captured for admin review

MSAL primary IAM Engineer pending
R&R fragment (sim 0.00) IAM Engineer pending

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…

Status: completed Created: 2026-05-27T14:56:22.992753Z Updated: 2026-06-12T17:02:45.803794Z API 3 duration: 8671 ms
Flow Current 3-step pipeline

1 POST /skills/extract-from-jd

2 POST /skills/extract-details

3 POST /skills/final-role-output

Role Chosen role & resolution

IAM Engineer

domain · Security CASE DOMAIN

slug: 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

Microsoft Entra IDJWT authenticationSQL DatabaseEntity FrameworkASP.NET Core.NET APIAngularMSALSQL Serverrole-based authorization policiesrole-based route guard

Matched dimensions

Identity and Access ManagementAuthentication and AuthorizationRole-Based Access ControlAPI SecurityFrontend Access RestrictionBackend 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

Resolution: in_db — role exists in library; skill↔dim and role↔dim links saved when applicable.

0
New skills
0
Skill↔dim saved
0
Role↔dim saved
0
Skipped

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.

Microsoft Entra ID Primary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: Microsoft Entra ID id=343 · microsoft-entra-id

Aliases — catalog

  • Microsoft Entra ID (CANONICAL) primary

Context tags (catalog)

API permissions Azure AD Conditional Access MFA OAuth 2.0 OpenID Connect RBAC SAML SCIM SSO access control app registrations conditional access directory synchronization enterprise applications federation identity governance identity management multi-factor authentication role-based access control security groups service principals single sign-on tenant user provisioning

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)
SQL Server Primary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: SQL Server id=18 · sql-server

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)

Always On CLR Integration Clustered Index ETL Execution Plan Linked Servers Query Store Replication SQL Agent SQL Server Agent SQL Server Integration Services SQL Server Management Studio SQL Server Reporting Services SSIS SSMS SSRS Stored Procedures T-SQL TempDB backup and recovery backup and restore clustering data migration data warehousing database design database normalization indexing performance tuning query optimization replication stored procedures transaction log transaction logs

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)
.NET Primary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: .NET id=3237 · net

Aliases — catalog

  • .NET (CANONICAL) primary
  • .NET 5 (VERSION)
  • .NET 6 (VERSION)
  • .NET 7 (VERSION)
  • .NET 8 (VERSION)
  • .NET Core (VERSION)

Context tags (catalog)

ADO.NET ASP.NET Azure Blazor C# CLR Entity Framework LINQ MVC Microservices NuGet Visual Studio WPF Web API XAML

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)
Angular Primary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: Angular id=612 · angular

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)

AOT Angular CLI Angular Material Component Dependency Injection Directive NgRx Observable Observables PWA RESTful services Reactive Forms Routing RxJS Service Single Page Application TypeScript Unit Testing component-based components dependency injection directives lazy loading modules observables pipes responsive design routing services single-page application single-page applications templates two-way data binding unit testing

Stored enrichment (catalog DB)

Category
Framework
Sub-category
Frontend Framework
Vendor
Google
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)
JWT Primary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: JWT id=28 · jwt

Aliases — catalog

  • JWT (CANONICAL) primary

Context tags (catalog)

Bearer Bearer token HMAC HS256 JSON JSON Web Encryption JSON Web Signature JSON Web Token JWE JWS JWT libraries JWT.io OAuth OAuth 2.0 OAuth2 OpenID Connect RS256 SSO access token access tokens authentication authorization authorization header claims header identity provider payload refresh token refresh tokens secure transmission security security token session management signature stateless stateless authentication token expiration token validation

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)
Entity Framework Primary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: Entity Framework id=22 · entity-framework

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)

Asynchronous Queries Code First Data Annotations Database First DbContext DbSet EF Core Eager Loading Entity Data Model Fluent API LINQ Lazy Loading Migrations Navigation Properties Repository Pattern SQL Server Unit of Work change tracking eager loading lazy loading migration scripts navigation properties repository pattern seed data

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)
ASP.NET Core Primary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: ASP.NET Core id=7 · asp-net-core

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)

.NET ASP.NET Identity Blazor C# Configuration Cross-platform Dependency Injection Entity Framework Entity Framework Core IIS Kestrel LINQ MVC Microservices Middleware Minimal APIs NuGet RESTful services Razor Razor Pages SignalR Swagger Web API gRPC

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)
MSAL Primary New / orchestrated API 3: new canonical path (new) New / unmatched skill (orchestrated in API 2)

Skill enrichment (orchestrator / LLM)

No Stage 7 enrichment blob on this skill (orchestrator skipped enrichment).

Derived legacy fields
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
RoleRole-Based Access Control Implementation
CompanyThreat Intelligence Bureau LTD
Experience3-7 years
CTC{'max': None, 'min': None, 'raw': 'Open and Flexible and will be as per Industry standards', 'period': None, 'currency': None}
DomainCybersecurity
Location Hyderabad, India
JD type pass
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.

Loading…