← Back to history

Pipeline run

bac893a9-7c21-41d9-a494-bcf2de7383c0

Pipeline LLM cost (USD)
API 1: $0.0108 API 2: $0.0004 API 3: $0.0000 Total: $0.0112

Client output enrichment

v2 Skill cluster · Nature of work · AI index · Tech stack maturity · Evidence · KRA description
SPARSE JD role baseline loaded sources · ai_index: role_baseline · nature_of_work: no_kras · tech_stack_maturity: jd
Nature of work no kras
Vague JD — no KRAs present to derive a specific nature of work.
Tech stack maturity
Mainstream Legacy
The skill set centers on Objective-C, Core Data, SQLite, XML, and native iOS development patterns that are well-established and widely used, but not primarily cloud-native or bleeding-edge.
AI index (0 = no AI use, 5 = totally AI-dependent · v2.1)
1.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 (22)
iOS Objective-C Swift Core Data Grand Central Dispatch Storyboards REST UI/UX SQLite JSON XML Web Services SDK API Firebase Cloud Messaging Pods Analytics Social Media APIs Apple Design Principles Interface Guidelines Cloud API Push Notifications
Skill cluster (7 dimension groups, role-scoped)
Local Persistence and Offline Behavior
Core Data SQLite
Native Mobile Languages
Objective-C Swift
API Integration and Data Fetching
JSON
Integration Protocols & Standards
REST
Push Notifications and Deep Links
Push Notifications
Push Notifications and Messaging
Firebase Cloud Messaging
Cross-cutting / unaligned
iOS Grand Central Dispatch Storyboards UI/UX XML Web Services SDK API Pods Analytics Social Media APIs Apple Design Principles Interface Guidelines Cloud API

Signals

Skill native-mobile-developer
0.33
Alias
KRA ios-engineer
0.56

Post-classification

Centroidupdated · n=99
Alias collision log
New-role queue
New skills captured9
New KRA captured

Captured for admin review

Grand Central Dispatch primary Native Mobile Developer pending
Storyboards primary Native Mobile Developer pending
Web Services primary Native Mobile Developer pending
SDK primary Native Mobile Developer pending
Pods Native Mobile Developer pending
Social Media APIs Native Mobile Developer pending
Apple Design Principles Native Mobile Developer pending
Interface Guidelines Native Mobile Developer pending
Cloud API Native Mobile Developer pending
Status: completed Created: 2026-05-27T16:42:04.020241Z Updated: 2026-05-27T16:44:20.134679Z API 3 duration: 63875 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

Native Mobile Developer

iOS Developer

sub-role · 0.99 domain · Software Engineering CASE DOMAIN

slug: native-mobile-developer · id: 75 · source: db · sub-role slug: ios-engineer

Domain=Software Engineering → sub-role ios-engineer; The JD is clearly for an iOS native mobile app developer focused on Swift/Objective-C, iOS frameworks, APIs, and App Store deployment.

Matched skills

iOS appObjective CSwiftOOPS conceptsmemory managementcaching mechanismsCore DataGCDStoryboardsPodsRESTful APIsUI/UX standardsthird-party librariesCloud APISQLiteJSON/XML parsingWeb Service integrationsThird party SDK/APIpush notificationsFCM

Matched dimensions

iOS Native App DevelopmentMobile UI ImplementationMobile API IntegrationMobile Data PersistenceThird-Party SDK IntegrationApp Store Deployment

Matched KRAs

developing & customizing iOS appsuit the product's functional & UI requirementsconnect iOS applications to back-end servicesdesigning and deploying iOS App to storeworking in third party SDK/API and integrations

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

Experienced in developing & customizing iOS app to suit the product's functional & UI requirements.
Should have excellent knowledge of Objective C, Swift and OOPS concepts.
Experience with memory management & caching mechanisms specific to mobile devices.
Knowledge of Core Data, GCD, Storyboards, Swift, Pods
Familiarity with RESTful APIs to connect iOS applications to back-end services
Knowledge of UI/UX standards
Experience with third-party libraries (Analytics and Social Media) and APIs
Understanding of Apples design principles and interface guidelines
Must have expertise in Cloud API, REST API, SQLite database, JSON/XML parsing, Web Service
integrations,
Experience in working with Third party SDK/API and integrations
Familiarity with cloud message APIs and push notifications(FCM)


Designing and deploying iOS App to store
Willingness to learn new technologies

Skills from this JD

Each row merges API 1 extraction, API 2 library match / v3 orchestration (dimensions + locked dims), and API 3 persistence tags.

iOS Primary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: iOS id=1594 · ios

Aliases — catalog

  • iOS (CANONICAL)

Context tags (catalog)

App Store Auto Layout Cocoa Touch CocoaPods Core Data MVVM Objective-C Push Notifications RESTful APIs Swift SwiftUI TestFlight UIKit Xcode iCloud

Stored enrichment (catalog DB)

Category
Platform
Sub-category
Mobile Operating Platform
Vendor
Apple Inc.
License
proprietary
Year introduced
2007
Confidence
0.93
Version strategy
NOT_APPLICABLE

Maturity reasoning: iOS is a mainstream mobile platform with high JD volume for Swift/iOS roles across consumer and enterprise apps; Apple continues active platform support and releases, indicating broad adoption rather than niche use.

Skill profile (library / DB)

Skill nature
PLATFORM
Volatility
STABLE
Typical lifespan
EVERGREEN
Category id
9
Sub-category id
1200
Extractable
True
Also category
False

Dimensions (API 2 worklist)

  • React Frontend Development Catalog dimension db id 96

    Library dimension (catalog)

API 3 link attempts (this skill)

Dimension Skill↔dim Role↔dim Outcome
React Frontend Development
d_init_01
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
Objective-C Primary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: Objective-C id=441 · objective-c

Aliases — catalog

  • Objective-C (CANONICAL) primary

Context tags (catalog)

ARC AppKit Cocoa Cocoa Touch Core Data Foundation IBAction IBOutlet Interface Builder NSURLConnection NSURLSession Objective-C runtime Swift UIKit Xcode blocks categories delegates iOS macOS protocols selectors

Stored enrichment (catalog DB)

Category
Language
Sub-category
Programming Language
Vendor
Apple
License
other_open
Year introduced
1984
Confidence
0.99
Version strategy
NOT_APPLICABLE

Maturity reasoning: Objective-C still appears in iOS/macOS legacy maintenance JDs, but most new Apple development listings now favor Swift, indicating a narrow, declining market signal.

Skill profile (library / DB)

Skill nature
LANGUAGE
Volatility
STABLE
Typical lifespan
EVERGREEN
Category id
6
Sub-category id
96
Extractable
True
Also category
False

Dimensions (API 2 worklist)

  • Native Mobile Languages Catalog dimension db id 274

    Library dimension (catalog)

    Roles linked in library: Native Mobile Developer

  • Swift and Objective-C Catalog dimension db id 81

    Library dimension (catalog)

    Roles linked in library: iOS Developer

API 3 link attempts (this skill)

Dimension Skill↔dim Role↔dim Outcome
Native Mobile Languages
native-mobile-languages
Existing dimension (library) · Role↔dimension saved
Swift and Objective-C
swift-and-objective-c
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
Swift Primary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: Swift id=440 · swift

Aliases — catalog

  • Swift (CANONICAL) primary
  • Swift 2.0 (VERSION)
  • Swift 2.x (VERSION)
  • Swift 3.0 (VERSION)
  • Swift 3.x (VERSION)
  • Swift 4.0 (VERSION)
  • Swift 4.x (VERSION)
  • Swift 5.0 (VERSION)
  • Swift 5.x (VERSION)
  • Swift 6.0 (VERSION)
  • Swift 6.x (VERSION)

Context tags (catalog)

ARC Cocoa Cocoa Touch CocoaPods Combine Core Data Grand Central Dispatch MVVM Objective-C Optionals SPM Swift Package Manager SwiftUI UIKit Xcode async/await asynchronous programming closure closures error handling iOS Development protocol-oriented programming type safety

Stored enrichment (catalog DB)

Category
Language
Sub-category
Programming Language
Vendor
Apple
License
apache_2
Year introduced
2014
Confidence
0.99
Version strategy
NOT_APPLICABLE

Maturity reasoning: Swift is broadly used for iOS/macOS hiring; job postings commonly list it alongside UIKit/SwiftUI, and Apple continues to invest in it as the primary language for new app development.

Skill profile (library / DB)

Skill nature
LANGUAGE
Volatility
STABLE
Typical lifespan
EVERGREEN
Category id
6
Sub-category id
96
Extractable
True
Also category
False

Dimensions (API 2 worklist)

  • Native Mobile Languages Catalog dimension db id 274

    Library dimension (catalog)

    Roles linked in library: Native Mobile Developer

  • Swift and Objective-C Catalog dimension db id 81

    Library dimension (catalog)

    Roles linked in library: iOS Developer

API 3 link attempts (this skill)

Dimension Skill↔dim Role↔dim Outcome
Native Mobile Languages
native-mobile-languages
Existing dimension (library) · Role↔dimension saved
Swift and Objective-C
swift-and-objective-c
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
Core Data Primary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: Core Data id=459 · core-data

Aliases — catalog

  • Core Data (CANONICAL) primary

Context tags (catalog)

Batch Updates Concurrency Context Core Data Framework Core Data Stack Data Model Entity Faulting Fetch Request Migration NSFetchRequest NSFetchedResultsController NSManagedObject NSManagedObjectContext NSPersistentContainer NSPredicate Relationships SQLite store SwiftUI Xcode batch updates entity model faulting fetch predicates iOS merge policies migration object graph xcdatamodeld

Stored enrichment (catalog DB)

Category
Framework
Sub-category
Persistence Framework
Vendor
Apple
License
proprietary
Year introduced
2008
Confidence
0.90
Version strategy
NOT_APPLICABLE

Maturity reasoning: Core Data appears mainly in Apple/iOS-specific job postings and legacy Cocoa codebases; market demand is far narrower than cross-platform persistence stacks like SQLite/Realm, with no broad hiring-pipeline ubiquity.

Skill profile (library / DB)

Skill nature
FRAMEWORK
Volatility
STABLE
Typical lifespan
EVERGREEN
Category id
5
Sub-category id
336
Extractable
True
Also category
False

Dimensions (API 2 worklist)

  • Local Persistence and Offline Behavior Catalog dimension db id 85

    Library dimension (catalog)

    Roles linked in library: Android Developer, Flutter Developer, Hybrid Mobile Developer, Native Mobile Developer, React Native Developer, iOS Developer

API 3 link attempts (this skill)

Dimension Skill↔dim Role↔dim Outcome
Local Persistence and Offline Behavior
local-persistence-and-offline-behavior
Existing dimension (library) · Role↔dimension saved
Grand Central Dispatch 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
Concurrency Tools
Sub-category
general
Skill nature
TOOL
Volatility
MEDIUM
Typical lifespan
MULTI_YEAR
Version strategy
UNVERSIONED
Storyboards 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
User Interface Design
Sub-category
general
Skill nature
TOOL
Volatility
MEDIUM
Typical lifespan
MULTI_YEAR
Version strategy
UNVERSIONED
REST Primary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: REST id=11 · rest

Aliases — catalog

  • REST (CANONICAL) primary

Context tags (catalog)

API API design API versioning CRUD DELETE GET HATEOAS HTTP JSON OAuth OAuth2 OpenAPI POST PUT Postman RESTful Swagger URI Webhooks XML authentication client-server content negotiation endpoint endpoints middleware resource resource-oriented serialization stateless status codes versioning web services

Stored enrichment (catalog DB)

Category
Concept
Sub-category
Api Architecture Style
Year introduced
2000
Confidence
0.88
Version strategy
NOT_APPLICABLE

Maturity reasoning: REST is a default API architecture in many job descriptions and is widely supported by major vendors/frameworks; OpenAPI and RESTful endpoints remain standard in hiring pipelines.

Skill profile (library / DB)

Skill nature
CONCEPT
Volatility
STABLE
Typical lifespan
EVERGREEN
Category id
2
Sub-category id
2122
Extractable
True
Also category
False

Dimensions (API 2 worklist)

  • API Design and Contracts Catalog dimension db id 3

    Library dimension (catalog)

    Roles linked in library: Backend Developer, Fullstack Developer, Fullstack Developer

  • API Interface and Contract Design Catalog dimension db id 289

    Library dimension (catalog)

    Roles linked in library: .NET Backend Developer, Go Backend Developer, Kotlin Backend Developer, Node.js Backend Developer, PHP Backend Developer, Python Backend Developer, Ruby Backend Developer, Scala Backend Developer

  • Integration Protocols & Standards Catalog dimension db id 271

    Library dimension (catalog)

    Roles linked in library: Pega Developer

  • Standards, Protocols & Compliance Catalog dimension db id 452

    Library dimension (catalog)

    Roles linked in library: Engineering Manager, Sitecore Dev

API 3 link attempts (this skill)

Dimension Skill↔dim Role↔dim Outcome
API Design and Contracts
api-design-and-contracts
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
API Interface and Contract Design
api-interface-and-contract-design
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
Integration Protocols & Standards
integration-protocols-standards
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
Standards, Protocols & Compliance
standards-protocols-compliance
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
UI/UX Primary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: UI/UX id=1662 · ui-ux

Aliases — catalog

  • UI/UX (CANONICAL)

Context tags (catalog)

A/B testing Adobe XD Figma Sketch design systems information architecture interaction design prototyping responsive design usability testing user journey user personas user research visual hierarchy wireframing

Stored enrichment (catalog DB)

Category
Domain
Sub-category
Ui Ux Design
Confidence
0.96
Version strategy
NOT_APPLICABLE

Maturity reasoning: UI/UX appears in a large share of product/design job descriptions across industries and is a standard hiring requirement, with strong demand on major job boards and design-tool ecosystems.

Skill profile (library / DB)

Skill nature
CONCEPT
Volatility
STABLE
Typical lifespan
EVERGREEN
Category id
37
Sub-category id
1255
Extractable
True
Also category
False

Dimensions (API 2 worklist)

  • React Frontend Development Catalog dimension db id 96

    Library dimension (catalog)

API 3 link attempts (this skill)

Dimension Skill↔dim Role↔dim Outcome
React Frontend Development
d_init_01
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
SQLite Primary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: SQLite id=460 · sqlite

Aliases — catalog

  • SQLite (CANONICAL) primary

Context tags (catalog)

ACID FTS5 JSON1 ORM SQL SQL commands SQLAlchemy SQLCipher SQLite Manager SQLite3 VACUUM WAL mode backup cross-platform data integrity data persistence data types database embedded embedded database file-based foreign key foreign keys in-memory database indexing lightweight local storage migration mobile app pragma query schema transaction transactions

Stored enrichment (catalog DB)

Category
Datastore
Sub-category
Embedded Relational Datastore
Vendor
SQLite Consortium
License
other_open
Year introduced
2000
Confidence
0.99
Version strategy
NOT_APPLICABLE

Maturity reasoning: SQLite appears in many job descriptions for mobile, embedded, and local-first apps; it’s a standard embedded relational datastore with strong GitHub usage and no vendor sunset or replacement trend.

Skill profile (library / DB)

Skill nature
TOOL
Volatility
STABLE
Typical lifespan
EVERGREEN
Category id
3
Sub-category id
2714
Extractable
True
Also category
False

Dimensions (API 2 worklist)

  • Local Persistence and Offline Behavior Catalog dimension db id 85

    Library dimension (catalog)

    Roles linked in library: Android Developer, Flutter Developer, Hybrid Mobile Developer, Native Mobile Developer, React Native Developer, iOS Developer

  • Offline Storage and Sync Catalog dimension db id 378

    Library dimension (catalog)

    Roles linked in library: Ionic Developer

API 3 link attempts (this skill)

Dimension Skill↔dim Role↔dim Outcome
Local Persistence and Offline Behavior
local-persistence-and-offline-behavior
Existing dimension (library) · Role↔dimension saved
Offline Storage and Sync
offline-storage-and-sync
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
JSON Primary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: JSON id=1984 · json

Aliases — catalog

  • JSON (CANONICAL) primary

Context tags (catalog)

AJAX API JSON Schema JSON-LD JSONP JavaScript NoSQL REST configuration data binding data format data interchange data structure deserialization interoperability key-value pairs lightweight object notation schema serialization text-based

Stored enrichment (catalog DB)

Category
Format
Sub-category
Data Interchange Format
Confidence
0.99
Version strategy
NOT_APPLICABLE

Maturity reasoning: JSON is a default data interchange format in APIs and web stacks; it appears in a very high volume of job descriptions and is supported by every major language/runtime.

Skill profile (library / DB)

Skill nature
STANDARD
Volatility
STABLE
Typical lifespan
EVERGREEN
Category id
4
Sub-category id
1457
Extractable
True
Also category
False

Dimensions (API 2 worklist)

  • API Integration and Data Fetching Catalog dimension db id 127

    Library dimension (catalog)

    Roles linked in library: Angular Frontend Developer, Frontend Developer, Fullstack Developer, Fullstack Developer, React Frontend Developer, Svelte Frontend Developer, Vue Frontend Developer, Web Developer

  • API Interface and Contract Design Catalog dimension db id 289

    Library dimension (catalog)

    Roles linked in library: .NET Backend Developer, Go Backend Developer, Kotlin Backend Developer, Node.js Backend Developer, PHP Backend Developer, Python Backend Developer, Ruby Backend Developer, Scala Backend Developer

  • Integration Protocols & Standards Catalog dimension db id 271

    Library dimension (catalog)

    Roles linked in library: Pega Developer

API 3 link attempts (this skill)

Dimension Skill↔dim Role↔dim Outcome
API Integration and Data Fetching
api-integration-and-data-fetching
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
API Interface and Contract Design
api-interface-and-contract-design
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
Integration Protocols & Standards
integration-protocols-standards
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
XML Primary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: XML id=1636 · xml

Aliases — catalog

  • XML (CANONICAL) primary

Context tags (catalog)

Atom DOM DTD Data Interchange Data Serialization JSON Markup Language Namespaces Parsing RSS SAX SOAP SVG Serialization Well-formed XML Schema XPath XQuery XSLT

Stored enrichment (catalog DB)

Category
Format
Sub-category
Markup Format
Confidence
0.99
Version strategy
NOT_APPLICABLE

Maturity reasoning: XML remains a common requirement in JDs for enterprise integration, SOAP, RSS, and config files; it’s still widely supported across major platforms rather than being sunset or replaced outright.

Skill profile (library / DB)

Skill nature
STANDARD
Volatility
STABLE
Typical lifespan
EVERGREEN
Category id
4
Sub-category id
689
Extractable
True
Also category
False

Dimensions (API 2 worklist)

  • Integration Protocols & Standards Catalog dimension db id 271

    Library dimension (catalog)

    Roles linked in library: Pega Developer

  • React Frontend Development Catalog dimension db id 96

    Library dimension (catalog)

API 3 link attempts (this skill)

Dimension Skill↔dim Role↔dim Outcome
Integration Protocols & Standards
integration-protocols-standards
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
React Frontend Development
d_init_01
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
Web Services 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
Web Development
Sub-category
general
Skill nature
CONCEPT
Volatility
STABLE
Typical lifespan
EVERGREEN
Version strategy
UNVERSIONED
SDK 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
Software Development
Sub-category
general
Skill nature
TOOL
Volatility
MEDIUM
Typical lifespan
MULTI_YEAR
Version strategy
UNVERSIONED
API Primary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: API id=1568 · api

Aliases — catalog

  • API (CANONICAL)

Context tags (catalog)

API gateway GraphQL JSON OAuth REST SDK SOAP XML authentication endpoint microservices rate limiting throttling versioning webhooks

Stored enrichment (catalog DB)

Category
Concept
Sub-category
Application Programming Interface
Confidence
0.93
Version strategy
NOT_APPLICABLE

Maturity reasoning: APIs are a core requirement in most software engineering JDs and underpin common integrations across cloud, mobile, and web stacks; major vendors like AWS, Stripe, and Google Cloud center products on API-first usage.

Skill profile (library / DB)

Skill nature
CONCEPT
Volatility
STABLE
Typical lifespan
EVERGREEN
Category id
2
Sub-category id
1174
Extractable
True
Also category
False

Dimensions (API 2 worklist)

  • API Integration and Data Fetching Catalog dimension db id 127

    Library dimension (catalog)

    Roles linked in library: Angular Frontend Developer, Frontend Developer, Fullstack Developer, Fullstack Developer, React Frontend Developer, Svelte Frontend Developer, Vue Frontend Developer, Web Developer

API 3 link attempts (this skill)

Dimension Skill↔dim Role↔dim Outcome
API Integration and Data Fetching
api-integration-and-data-fetching
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
Firebase Cloud Messaging Primary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: Firebase Cloud Messaging id=948 · firebase-cloud-messaging

Aliases — catalog

  • Firebase Cloud Messaging (CANONICAL) primary

Context tags (catalog)

APNs Android Android notifications FCM FCM SDK Firebase Console Firebase SDK analytics analytics integration cloud functions data messages iOS iOS notifications message delivery message targeting notification notification messages push notifications real-time updates topic messaging user engagement web push

Stored enrichment (catalog DB)

Category
Service
Sub-category
Push Messaging Service
Vendor
Google
License
apache_2
Year introduced
2016
Confidence
0.97
Version strategy
NOT_APPLICABLE

Maturity reasoning: Commonly listed in mobile/backend JDs for push notifications; Google actively maintains FCM as the standard successor to GCM, with broad Android/iOS/web adoption.

Skill profile (library / DB)

Skill nature
CLOUD_SERVICE
Volatility
STABLE
Typical lifespan
EVERGREEN
Category id
11
Sub-category id
2113
Extractable
True
Also category
False

Dimensions (API 2 worklist)

  • Push Notifications and Deep Links Catalog dimension db id 320

    Library dimension (catalog)

    Roles linked in library: Ionic Developer, React Native Developer

  • Push Notifications and Messaging Catalog dimension db id 88

    Library dimension (catalog)

    Roles linked in library: Android Developer, Flutter Developer, Hybrid Mobile Developer, Native Mobile Developer, iOS Developer

API 3 link attempts (this skill)

Dimension Skill↔dim Role↔dim Outcome
Push Notifications and Deep Links
push-notifications-and-deep-links
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
Push Notifications and Messaging
push-notifications-and-messaging
Existing dimension (library) · Role↔dimension saved
Pods Secondary 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
Dependency Management
Sub-category
general
Skill nature
TOOL
Volatility
MEDIUM
Typical lifespan
MULTI_YEAR
Version strategy
UNVERSIONED
Analytics Secondary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: Analytics id=1664 · analytics

Aliases — catalog

  • Analytics (CANONICAL)

Context tags (catalog)

A/B testing ETL KPI Python R SQL business intelligence dashboards data mining data storytelling data visualization data warehousing machine learning predictive modeling statistical analysis

Stored enrichment (catalog DB)

Category
Domain
Sub-category
Analytics
Confidence
0.94
Version strategy
NOT_APPLICABLE

Maturity reasoning: Analytics appears in a large share of data, product, and BI job descriptions, and major vendors (Google Analytics, Adobe Analytics, Power BI) continue to invest heavily in the category.

Skill profile (library / DB)

Skill nature
CONCEPT
Volatility
STABLE
Typical lifespan
EVERGREEN
Category id
37
Sub-category id
1257
Extractable
True
Also category
False

Dimensions (API 2 worklist)

  • React Frontend Development Catalog dimension db id 96

    Library dimension (catalog)

API 3 link attempts (this skill)

Dimension Skill↔dim Role↔dim Outcome
React Frontend Development
d_init_01
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
Social Media APIs Secondary 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
APIs
Sub-category
general
Skill nature
TOOL
Volatility
FAST
Typical lifespan
SHORT_LIVED
Version strategy
VERSIONED
Apple Design Principles Secondary 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
Design Guidelines
Sub-category
general
Skill nature
CONCEPT
Volatility
MEDIUM
Typical lifespan
MULTI_YEAR
Version strategy
UNVERSIONED
Interface Guidelines Secondary 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
User Interface Design
Sub-category
general
Skill nature
CONCEPT
Volatility
MEDIUM
Typical lifespan
MULTI_YEAR
Version strategy
UNVERSIONED
Cloud API Secondary 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
APIs
Sub-category
general
Skill nature
TOOL
Volatility
MEDIUM
Typical lifespan
MULTI_YEAR
Version strategy
UNVERSIONED
Push Notifications Secondary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: push notifications id=1605 · push-notifications

Aliases — catalog

  • push notifications (CANONICAL) primary
  • Push Notifications (CANONICAL)

Context tags (catalog)

A/B testing APNs Firebase Cloud Messaging analytics background updates delivery tracking message queue mobile push notification center notification channels notification payload opt-in push analytics real-time updates rich notifications scheduling service workers subscription model user engagement user segmentation web push

Stored enrichment (catalog DB)

Category
Concept
Sub-category
Notification Delivery Concept
Confidence
0.88
Version strategy
NOT_APPLICABLE

Maturity reasoning: Push notifications are a standard mobile/web capability and appear routinely in JDs for iOS, Android, and frontend roles; major vendors like Apple APNs and Firebase Cloud Messaging actively support them.

Skill profile (library / DB)

Skill nature
CONCEPT
Volatility
STABLE
Typical lifespan
EVERGREEN
Category id
2
Sub-category id
2134
Extractable
True
Also category
False

Dimensions (API 2 worklist)

  • Background Execution and Lifecycle Catalog dimension db id 87

    Library dimension (catalog)

    Roles linked in library: Hybrid Mobile Developer, React Native Developer, iOS Developer

  • Push Notifications and Deep Links Catalog dimension db id 320

    Library dimension (catalog)

    Roles linked in library: Ionic Developer, React Native Developer

API 3 link attempts (this skill)

Dimension Skill↔dim Role↔dim Outcome
Background Execution and Lifecycle
background-execution-and-lifecycle
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
Push Notifications and Deep Links
push-notifications-and-deep-links
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)

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
iOS in_db
React Frontend Development
d_init_01
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
Objective-C in_db
Native Mobile Languages
native-mobile-languages
Existing dimension (library) · Role↔dimension saved
Objective-C in_db
Swift and Objective-C
swift-and-objective-c
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
Swift in_db
Native Mobile Languages
native-mobile-languages
Existing dimension (library) · Role↔dimension saved
Swift in_db
Swift and Objective-C
swift-and-objective-c
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
Core Data in_db
Local Persistence and Offline Behavior
local-persistence-and-offline-behavior
Existing dimension (library) · Role↔dimension saved
REST in_db
API Design and Contracts
api-design-and-contracts
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
REST in_db
API Interface and Contract Design
api-interface-and-contract-design
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
REST in_db
Integration Protocols & Standards
integration-protocols-standards
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
REST in_db
Standards, Protocols & Compliance
standards-protocols-compliance
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
UI/UX in_db
React Frontend Development
d_init_01
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
SQLite in_db
Local Persistence and Offline Behavior
local-persistence-and-offline-behavior
Existing dimension (library) · Role↔dimension saved
SQLite in_db
Offline Storage and Sync
offline-storage-and-sync
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
JSON in_db
API Integration and Data Fetching
api-integration-and-data-fetching
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
JSON in_db
API Interface and Contract Design
api-interface-and-contract-design
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
JSON in_db
Integration Protocols & Standards
integration-protocols-standards
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
XML in_db
Integration Protocols & Standards
integration-protocols-standards
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
XML in_db
React Frontend Development
d_init_01
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
API in_db
API Integration and Data Fetching
api-integration-and-data-fetching
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
Firebase Cloud Messaging in_db
Push Notifications and Deep Links
push-notifications-and-deep-links
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
Firebase Cloud Messaging in_db
Push Notifications and Messaging
push-notifications-and-messaging
Existing dimension (library) · Role↔dimension saved
Analytics in_db
React Frontend Development
d_init_01
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
Push Notifications in_db
Background Execution and Lifecycle
background-execution-and-lifecycle
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
Push Notifications in_db
Push Notifications and Deep Links
push-notifications-and-deep-links
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)

Library artifacts (this run)

Kind Detail DB id
canonical_skill_proposed Grand Central Dispatch | type=Concurrency Tools subtype=general nature=TOOL lifespan=MULTI_YEAR
canonical_skill_proposed Storyboards | type=User Interface Design subtype=general nature=TOOL lifespan=MULTI_YEAR
canonical_skill_proposed Web Services | type=Web Development subtype=general nature=CONCEPT lifespan=EVERGREEN
canonical_skill_proposed SDK | type=Software Development subtype=general nature=TOOL lifespan=MULTI_YEAR
canonical_skill_proposed Pods | type=Dependency Management subtype=general nature=TOOL lifespan=MULTI_YEAR
canonical_skill_proposed Social Media APIs | type=APIs subtype=general nature=TOOL lifespan=SHORT_LIVED
canonical_skill_proposed Apple Design Principles | type=Design Guidelines subtype=general nature=CONCEPT lifespan=MULTI_YEAR
canonical_skill_proposed Interface Guidelines | type=User Interface Design subtype=general nature=CONCEPT lifespan=MULTI_YEAR
canonical_skill_proposed Cloud API | type=APIs subtype=general nature=TOOL lifespan=MULTI_YEAR
nano JD Parser — gpt-4.1-nano click to toggle
JD type fail
Show raw JSON
{
  "JD_type": "fail",
  "archetype_override_applied": true,
  "archetype_override_matched_skills": [
    "XML",
    "Swift",
    "UI/UX",
    "APIs",
    "Analytics",
    "API",
    "Cloud",
    "iOS",
    "memory management",
    "SQLite",
    "REST",
    "Core Data",
    "push notifications",
    "FCM",
    "JSON"
  ],
  "role_archetype": "Engineering"
}
API 1 — extract-from-jd click to toggle
{
  "final_skills": [
    {
      "is_primary": true,
      "skill_name": "iOS"
    },
    {
      "is_primary": true,
      "skill_name": "Objective-C"
    },
    {
      "is_primary": true,
      "skill_name": "Swift"
    },
    {
      "is_primary": true,
      "skill_name": "Core Data"
    },
    {
      "is_primary": true,
      "skill_name": "Grand Central Dispatch"
    },
    {
      "is_primary": true,
      "skill_name": "Storyboards"
    },
    {
      "is_primary": true,
      "skill_name": "REST"
    },
    {
      "is_primary": true,
      "skill_name": "UI/UX"
    },
    {
      "is_primary": true,
      "skill_name": "SQLite"
    },
    {
      "is_primary": true,
      "skill_name": "JSON"
    },
    {
      "is_primary": true,
      "skill_name": "XML"
    },
    {
      "is_primary": true,
      "skill_name": "Web Services"
    },
    {
      "is_primary": true,
      "skill_name": "SDK"
    },
    {
      "is_primary": true,
      "skill_name": "API"
    },
    {
      "is_primary": true,
      "skill_name": "Firebase Cloud Messaging"
    },
    {
      "is_primary": false,
      "skill_name": "Pods"
    },
    {
      "is_primary": false,
      "skill_name": "Analytics"
    },
    {
      "is_primary": false,
      "skill_name": "Social Media APIs"
    },
    {
      "is_primary": false,
      "skill_name": "Apple Design Principles"
    },
    {
      "is_primary": false,
      "skill_name": "Interface Guidelines"
    },
    {
      "is_primary": false,
      "skill_name": "Cloud API"
    },
    {
      "is_primary": false,
      "skill_name": "Push Notifications"
    }
  ],
  "jd_role": null,
  "nano_parsed": {
    "JD_type": "fail",
    "archetype_override_applied": true,
    "archetype_override_matched_skills": [
      "XML",
      "Swift",
      "UI/UX",
      "APIs",
      "Analytics",
      "API",
      "Cloud",
      "iOS",
      "memory management",
      "SQLite",
      "REST",
      "Core Data",
      "push notifications",
      "FCM",
      "JSON"
    ],
    "role_archetype": "Engineering"
  },
  "rejected": false,
  "rejection_reason": null,
  "run_id": "bac893a9-7c21-41d9-a494-bcf2de7383c0",
  "stage3_signals": {
    "alias_found": false,
    "alias_match_roles": [],
    "kra_match_roles": [
      {
        "display_name": "iOS Developer",
        "kra_matches": [
          {
            "kra_text": "Develops native iOS features using Swift or Objective-C with UIKit or SwiftUI, following Apple Human Interface Guidelines for iPhone and iPad applications.",
            "sentence": "Understanding of Apples design principles and interface guidelines",
            "similarity": 0.5813
          },
          {
            "kra_text": "Develops native iOS features using Swift or Objective-C with UIKit or SwiftUI, following Apple Human Interface Guidelines for iPhone and iPad applications.",
            "sentence": "Experienced in developing \u0026amp; customizing iOS app to suit the product\u0026#39;s functional \u0026amp;",
            "similarity": 0.5662
          },
          {
            "kra_text": "Implements CoreData, UserDefaults, or Keychain Services for local data persistence, secure storage, and offline data access in iOS apps.",
            "sentence": "Designing and deploying iOS App to store",
            "similarity": 0.5185
          }
        ],
        "matched_count": null,
        "matched_skills": null,
        "role_id": 6,
        "score": 0.5554,
        "slug": "ios-engineer",
        "total_count": null
      },
      {
        "display_name": "Ionic Developer",
        "kra_matches": [
          {
            "kra_text": "Mobile app screens and navigation",
            "sentence": "Understanding of Apples design principles and interface guidelines",
            "similarity": 0.5216
          },
          {
            "kra_text": "service and API integration",
            "sentence": "Must have expertise in Cloud API, REST API, SQLite database, JSON/XML parsing, Web Service",
            "similarity": 0.5111
          },
          {
            "kra_text": "Mobile app screens and navigation",
            "sentence": "Experienced in developing \u0026amp; customizing iOS app to suit the product\u0026#39;s functional \u0026amp;",
            "similarity": 0.4809
          }
        ],
        "matched_count": null,
        "matched_skills": null,
        "role_id": 434,
        "score": 0.5045,
        "slug": "ionic-developer",
        "total_count": null
      },
      {
        "display_name": "Hybrid Mobile Developer",
        "kra_matches": [
          {
            "kra_text": "Adapts shared UI codebase to handle platform-specific constraints including different navigation paradigms, gesture behaviors, and OS-level UI patterns.",
            "sentence": "Understanding of Apples design principles and interface guidelines",
            "similarity": 0.5349
          },
          {
            "kra_text": "Manages build configurations, code signing certificates, and app store release submissions for both Google Play and Apple App Store.",
            "sentence": "Designing and deploying iOS App to store",
            "similarity": 0.5189
          },
          {
            "kra_text": "Implements cross-platform mobile features using React Native, Flutter, or Ionic targeting both iOS and Android platforms from a shared codebase.",
            "sentence": "Experienced in developing \u0026amp; customizing iOS app to suit the product\u0026#39;s functional \u0026amp;",
            "similarity": 0.451
          }
        ],
        "matched_count": null,
        "matched_skills": null,
        "role_id": 11,
        "score": 0.5016,
        "slug": "hybrid-mobile-developer",
        "total_count": null
      },
      {
        "display_name": "Native Mobile Developer",
        "kra_matches": [
          {
            "kra_text": "responsive and accessible UI adaptation",
            "sentence": "Understanding of Apples design principles and interface guidelines",
            "similarity": 0.4739
          },
          {
            "kra_text": "local storage and sync handling",
            "sentence": "Designing and deploying iOS App to store",
            "similarity": 0.4168
          },
          {
            "kra_text": "responsive and accessible UI adaptation",
            "sentence": "Experienced in developing \u0026amp; customizing iOS app to suit the product\u0026#39;s functional \u0026amp;",
            "similarity": 0.3779
          }
        ],
        "matched_count": null,
        "matched_skills": null,
        "role_id": 75,
        "score": 0.4229,
        "slug": "native-mobile-developer",
        "total_count": null
      },
      {
        "display_name": "Fullstack Developer",
        "kra_matches": [
          {
            "kra_text": "Works closely with product managers and UX designers to translate requirements and wireframes into working software features through iterative development.",
            "sentence": "Experienced in developing \u0026amp; customizing iOS app to suit the product\u0026#39;s functional \u0026amp;",
            "similarity": 0.4708
          },
          {
            "kra_text": "Designs and queries relational databases like PostgreSQL and document stores like MongoDB, writing migrations, indexes, and optimized queries.",
            "sentence": "Must have expertise in Cloud API, REST API, SQLite database, JSON/XML parsing, Web Service",
            "similarity": 0.4074
          },
          {
            "kra_text": "Works closely with product managers and UX designers to translate requirements and wireframes into working software features through iterative development.",
            "sentence": "Understanding of Apples design principles and interface guidelines",
            "similarity": 0.3791
          }
        ],
        "matched_count": null,
        "matched_skills": null,
        "role_id": 15,
        "score": 0.4191,
        "slug": "full-stack-engineer",
        "total_count": null
      }
    ],
    "skill_match_roles": [
      {
        "display_name": "Native Mobile Developer",
        "kra_matches": null,
        "matched_count": 5,
        "matched_skills": [
          "Core Data",
          "Firebase Cloud Messaging",
          "Objective-C",
          "SQLite",
          "Swift"
        ],
        "role_id": 75,
        "score": 0.3333,
        "slug": "native-mobile-developer",
        "total_count": 15
      },
      {
        "display_name": "iOS Developer",
        "kra_matches": null,
        "matched_count": 5,
        "matched_skills": [
          "Core Data",
          "Firebase Cloud Messaging",
          "Objective-C",
          "SQLite",
          "Swift"
        ],
        "role_id": 6,
        "score": 0.3333,
        "slug": "ios-engineer",
        "total_count": 15
      },
      {
        "display_name": "Fullstack Developer",
        "kra_matches": null,
        "matched_count": 3,
        "matched_skills": [
          "API",
          "JSON",
          "REST"
        ],
        "role_id": 15,
        "score": 0.2,
        "slug": "full-stack-engineer",
        "total_count": 15
      },
      {
        "display_name": "Android Developer",
        "kra_matches": null,
        "matched_count": 3,
        "matched_skills": [
          "Core Data",
          "Firebase Cloud Messaging",
          "SQLite"
        ],
        "role_id": 4,
        "score": 0.2,
        "slug": "android-engineer",
        "total_count": 15
      },
      {
        "display_name": "Hybrid Mobile Developer",
        "kra_matches": null,
        "matched_count": 3,
        "matched_skills": [
          "Core Data",
          "Firebase Cloud Messaging",
          "SQLite"
        ],
        "role_id": 11,
        "score": 0.2,
        "slug": "hybrid-mobile-developer",
        "total_count": 15
      }
    ]
  },
  "stage4_decision": {
    "alias_collision_detected": false,
    "case": "DOMAIN",
    "chosen_role": {
      "display_name": "Native Mobile Developer",
      "kra_matches": null,
      "matched_count": null,
      "matched_skills": null,
      "role_id": 75,
      "score": 0.99,
      "slug": "native-mobile-developer",
      "total_count": null
    },
    "confidence": 0.99,
    "is_new_role": false,
    "llm2_fired": false,
    "llm2_reasoning": null,
    "matched_dimensions": [
      "iOS Native App Development",
      "Mobile UI Implementation",
      "Mobile API Integration",
      "Mobile Data Persistence",
      "Third-Party SDK Integration",
      "App Store Deployment"
    ],
    "matched_kras": [
      "developing \u0026 customizing iOS app",
      "suit the product\u0027s functional \u0026 UI requirements",
      "connect iOS applications to back-end services",
      "designing and deploying iOS App to store",
      "working in third party SDK/API and integrations"
    ],
    "matched_skills": [
      "iOS app",
      "Objective C",
      "Swift",
      "OOPS concepts",
      "memory management",
      "caching mechanisms",
      "Core Data",
      "GCD",
      "Storyboards",
      "Pods",
      "RESTful APIs",
      "UI/UX standards",
      "third-party libraries",
      "Cloud API",
      "SQLite",
      "JSON/XML parsing",
      "Web Service integrations",
      "Third party SDK/API",
      "push notifications",
      "FCM"
    ],
    "new_role_display_name": null,
    "new_role_slug": null,
    "queued": false,
    "reasoning": "Domain=Software Engineering \u2192 sub-role ios-engineer; The JD is clearly for an iOS native mobile app developer focused on Swift/Objective-C, iOS frameworks, APIs, and App Store deployment.",
    "sub_role": {
      "confidence": 0.99,
      "display_name": "iOS Developer",
      "reasoning": "The JD is clearly iOS-specific, naming Objective-C, Swift, Core Data, GCD, Storyboards, Apple design guidelines, and App Store deployment.",
      "role_id": 6,
      "slug": "ios-engineer"
    }
  },
  "stage5_updates": {
    "centroid_n_after": 99,
    "centroid_updated": true,
    "collision_log_id": null,
    "new_kra_attached": null,
    "new_skills_attached": [
      {
        "is_primary": true,
        "queue_id": 21547,
        "role_display_name": "Native Mobile Developer",
        "role_slug": "native-mobile-developer",
        "skill_name": "Grand Central Dispatch",
        "status": "pending"
      },
      {
        "is_primary": true,
        "queue_id": 21548,
        "role_display_name": "Native Mobile Developer",
        "role_slug": "native-mobile-developer",
        "skill_name": "Storyboards",
        "status": "pending"
      },
      {
        "is_primary": true,
        "queue_id": 21549,
        "role_display_name": "Native Mobile Developer",
        "role_slug": "native-mobile-developer",
        "skill_name": "Web Services",
        "status": "pending"
      },
      {
        "is_primary": true,
        "queue_id": 21550,
        "role_display_name": "Native Mobile Developer",
        "role_slug": "native-mobile-developer",
        "skill_name": "SDK",
        "status": "pending"
      },
      {
        "is_primary": false,
        "queue_id": 21551,
        "role_display_name": "Native Mobile Developer",
        "role_slug": "native-mobile-developer",
        "skill_name": "Pods",
        "status": "pending"
      },
      {
        "is_primary": false,
        "queue_id": 21552,
        "role_display_name": "Native Mobile Developer",
        "role_slug": "native-mobile-developer",
        "skill_name": "Social Media APIs",
        "status": "pending"
      },
      {
        "is_primary": false,
        "queue_id": 21553,
        "role_display_name": "Native Mobile Developer",
        "role_slug": "native-mobile-developer",
        "skill_name": "Apple Design Principles",
        "status": "pending"
      },
      {
        "is_primary": false,
        "queue_id": 21554,
        "role_display_name": "Native Mobile Developer",
        "role_slug": "native-mobile-developer",
        "skill_name": "Interface Guidelines",
        "status": "pending"
      },
      {
        "is_primary": false,
        "queue_id": 21555,
        "role_display_name": "Native Mobile Developer",
        "role_slug": "native-mobile-developer",
        "skill_name": "Cloud API",
        "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": 2540,
      "existing_alias_text": "iOS",
      "input_term": "iOS",
      "matched_canonical": {
        "category_id": 9,
        "display_name": "iOS",
        "id": 1594,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "PLATFORM",
        "slug": "ios",
        "sub_category_id": 1200,
        "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": 767,
      "existing_alias_text": "Objective-C",
      "input_term": "Objective-C",
      "matched_canonical": {
        "category_id": 6,
        "display_name": "Objective-C",
        "id": 441,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "LANGUAGE",
        "slug": "objective-c",
        "sub_category_id": 96,
        "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": 756,
      "existing_alias_text": "Swift",
      "input_term": "Swift",
      "matched_canonical": {
        "category_id": 6,
        "display_name": "Swift",
        "id": 440,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "LANGUAGE",
        "slug": "swift",
        "sub_category_id": 96,
        "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": 785,
      "existing_alias_text": "Core Data",
      "input_term": "Core Data",
      "matched_canonical": {
        "category_id": 5,
        "display_name": "Core Data",
        "id": 459,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "FRAMEWORK",
        "slug": "core-data",
        "sub_category_id": 336,
        "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": 106,
      "existing_alias_text": "REST",
      "input_term": "REST",
      "matched_canonical": {
        "category_id": 2,
        "display_name": "REST",
        "id": 11,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "CONCEPT",
        "slug": "rest",
        "sub_category_id": 2122,
        "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": 2632,
      "existing_alias_text": "UI/UX",
      "input_term": "UI/UX",
      "matched_canonical": {
        "category_id": 37,
        "display_name": "UI/UX",
        "id": 1662,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "CONCEPT",
        "slug": "ui-ux",
        "sub_category_id": 1255,
        "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": 786,
      "existing_alias_text": "SQLite",
      "input_term": "SQLite",
      "matched_canonical": {
        "category_id": 3,
        "display_name": "SQLite",
        "id": 460,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "TOOL",
        "slug": "sqlite",
        "sub_category_id": 2714,
        "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": 3018,
      "existing_alias_text": "JSON",
      "input_term": "JSON",
      "matched_canonical": {
        "category_id": 4,
        "display_name": "JSON",
        "id": 1984,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "STANDARD",
        "slug": "json",
        "sub_category_id": 1457,
        "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": 2600,
      "existing_alias_text": "XML",
      "input_term": "XML",
      "matched_canonical": {
        "category_id": 4,
        "display_name": "XML",
        "id": 1636,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "STANDARD",
        "slug": "xml",
        "sub_category_id": 689,
        "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": 2514,
      "existing_alias_text": "API",
      "input_term": "API",
      "matched_canonical": {
        "category_id": 2,
        "display_name": "API",
        "id": 1568,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "CONCEPT",
        "slug": "api",
        "sub_category_id": 1174,
        "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": 1551,
      "existing_alias_text": "Firebase Cloud Messaging",
      "input_term": "Firebase Cloud Messaging",
      "matched_canonical": {
        "category_id": 11,
        "display_name": "Firebase Cloud Messaging",
        "id": 948,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "CLOUD_SERVICE",
        "slug": "firebase-cloud-messaging",
        "sub_category_id": 2113,
        "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": 2634,
      "existing_alias_text": "Analytics",
      "input_term": "Analytics",
      "matched_canonical": {
        "category_id": 37,
        "display_name": "Analytics",
        "id": 1664,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "CONCEPT",
        "slug": "analytics",
        "sub_category_id": 1257,
        "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": 2557,
      "existing_alias_text": "Push Notifications",
      "input_term": "Push Notifications",
      "matched_canonical": {
        "category_id": 2,
        "display_name": "push notifications",
        "id": 1605,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "CONCEPT",
        "slug": "push-notifications",
        "sub_category_id": 2134,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "matched_via": "alias"
    }
  ],
  "candidate_roles": [
    {
      "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": "Android Developer",
      "id": 4,
      "rationale": null,
      "role_archetype": null,
      "slug": "android-engineer",
      "source": "db"
    },
    {
      "display_name": "Flutter Developer",
      "id": 74,
      "rationale": null,
      "role_archetype": "Engineering",
      "slug": "flutter-developer",
      "source": "db"
    },
    {
      "display_name": "Hybrid Mobile Developer",
      "id": 11,
      "rationale": null,
      "role_archetype": null,
      "slug": "hybrid-mobile-developer",
      "source": "db"
    },
    {
      "display_name": "React Native Developer",
      "id": 73,
      "rationale": null,
      "role_archetype": "Engineering",
      "slug": "react-native-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": 15,
      "rationale": null,
      "role_archetype": null,
      "slug": "full-stack-engineer",
      "source": "db"
    },
    {
      "display_name": "Fullstack Developer",
      "id": 435,
      "rationale": null,
      "role_archetype": "Engineering",
      "slug": "fullstack-developer",
      "source": "db"
    },
    {
      "display_name": ".NET Backend Developer",
      "id": 83,
      "rationale": null,
      "role_archetype": "Engineering",
      "slug": "dotnet-backend-developer",
      "source": "db"
    },
    {
      "display_name": "Go Backend Developer",
      "id": 81,
      "rationale": null,
      "role_archetype": "Engineering",
      "slug": "go-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"
    },
    {
      "display_name": "Scala Backend Developer",
      "id": 87,
      "rationale": null,
      "role_archetype": "Engineering",
      "slug": "scala-backend-developer",
      "source": "db"
    },
    {
      "display_name": "Pega Developer",
      "id": 24,
      "rationale": null,
      "role_archetype": null,
      "slug": "pega-developer",
      "source": "db"
    },
    {
      "display_name": "Engineering Manager",
      "id": 121,
      "rationale": null,
      "role_archetype": null,
      "slug": "engineering-manager",
      "source": "db"
    },
    {
      "display_name": "Sitecore Dev",
      "id": 233,
      "rationale": null,
      "role_archetype": "Engineering",
      "slug": "sitecore-dev",
      "source": "db"
    },
    {
      "display_name": "Ionic Developer",
      "id": 434,
      "rationale": null,
      "role_archetype": null,
      "slug": "ionic-developer",
      "source": "db"
    },
    {
      "display_name": "Angular Frontend Developer",
      "id": 90,
      "rationale": null,
      "role_archetype": "Engineering",
      "slug": "angular-frontend-developer",
      "source": "db"
    },
    {
      "display_name": "Frontend Developer",
      "id": 7,
      "rationale": null,
      "role_archetype": null,
      "slug": "frontend-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"
    },
    {
      "display_name": "Web Developer",
      "id": 25,
      "rationale": null,
      "role_archetype": null,
      "slug": "web-developer",
      "source": "db"
    }
  ],
  "chosen_role": {
    "display_name": "Native Mobile Developer",
    "id": 75,
    "rationale": "Domain=Software Engineering \u2192 sub-role ios-engineer; The JD is clearly for an iOS native mobile app developer focused on Swift/Objective-C, iOS frameworks, APIs, and App Store deployment.",
    "role_archetype": "Engineering",
    "slug": "native-mobile-developer",
    "source": "db"
  },
  "dimensions": [
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "React Frontend Development",
        "id": 96,
        "rationale": "Building interactive web user interfaces with React.js, including component composition, state management, hooks, and rendering patterns. React.js belongs here because it is a core library for client-side UI development in modern web applications.",
        "slug": "d_init_01",
        "source": "db"
      },
      "input_skill": "iOS",
      "llm_role": null,
      "roles_from_db": []
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "Native Mobile Languages",
        "id": 274,
        "rationale": "Primary implementation languages used to build platform-specific app features, UI logic, and device integrations. This is the core coding surface for native mobile work on one platform.",
        "slug": "native-mobile-languages",
        "source": "db"
      },
      "input_skill": "Objective-C",
      "llm_role": null,
      "roles_from_db": [
        {
          "display_name": "Native Mobile Developer",
          "id": 75,
          "rationale": null,
          "role_archetype": "Engineering",
          "slug": "native-mobile-developer",
          "source": "db"
        }
      ]
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "Swift and Objective-C",
        "id": 81,
        "rationale": "Primary implementation languages for native iOS app features, platform APIs, and client-side business logic. This is the core coding surface for building and maintaining iPhone and iPad experiences.",
        "slug": "swift-and-objective-c",
        "source": "db"
      },
      "input_skill": "Objective-C",
      "llm_role": null,
      "roles_from_db": [
        {
          "display_name": "iOS Developer",
          "id": 6,
          "rationale": null,
          "role_archetype": null,
          "slug": "ios-engineer",
          "source": "db"
        }
      ]
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "Native Mobile Languages",
        "id": 274,
        "rationale": "Primary implementation languages used to build platform-specific app features, UI logic, and device integrations. This is the core coding surface for native mobile work on one platform.",
        "slug": "native-mobile-languages",
        "source": "db"
      },
      "input_skill": "Swift",
      "llm_role": null,
      "roles_from_db": [
        {
          "display_name": "Native Mobile Developer",
          "id": 75,
          "rationale": null,
          "role_archetype": "Engineering",
          "slug": "native-mobile-developer",
          "source": "db"
        }
      ]
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "Swift and Objective-C",
        "id": 81,
        "rationale": "Primary implementation languages for native iOS app features, platform APIs, and client-side business logic. This is the core coding surface for building and maintaining iPhone and iPad experiences.",
        "slug": "swift-and-objective-c",
        "source": "db"
      },
      "input_skill": "Swift",
      "llm_role": null,
      "roles_from_db": [
        {
          "display_name": "iOS Developer",
          "id": 6,
          "rationale": null,
          "role_archetype": null,
          "slug": "ios-engineer",
          "source": "db"
        }
      ]
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "Local Persistence and Offline Behavior",
        "id": 85,
        "rationale": "On-device storage used for caching, offline support, and durable client state. This cluster is coherent because iOS apps often need to preserve user progress and data when connectivity is limited.",
        "slug": "local-persistence-and-offline-behavior",
        "source": "db"
      },
      "input_skill": "Core Data",
      "llm_role": null,
      "roles_from_db": [
        {
          "display_name": "Android Developer",
          "id": 4,
          "rationale": null,
          "role_archetype": null,
          "slug": "android-engineer",
          "source": "db"
        },
        {
          "display_name": "Flutter Developer",
          "id": 74,
          "rationale": null,
          "role_archetype": "Engineering",
          "slug": "flutter-developer",
          "source": "db"
        },
        {
          "display_name": "Hybrid Mobile Developer",
          "id": 11,
          "rationale": null,
          "role_archetype": null,
          "slug": "hybrid-mobile-developer",
          "source": "db"
        },
        {
          "display_name": "Native Mobile Developer",
          "id": 75,
          "rationale": null,
          "role_archetype": "Engineering",
          "slug": "native-mobile-developer",
          "source": "db"
        },
        {
          "display_name": "React Native Developer",
          "id": 73,
          "rationale": null,
          "role_archetype": "Engineering",
          "slug": "react-native-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": "API Design and Contracts",
        "id": 3,
        "rationale": "Designing request/response shapes and the rules that govern client-server interaction. This cluster is coherent because full stack engineers often own the contract between UI behavior and backend implementation.",
        "slug": "api-design-and-contracts",
        "source": "db"
      },
      "input_skill": "REST",
      "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": 15,
          "rationale": null,
          "role_archetype": null,
          "slug": "full-stack-engineer",
          "source": "db"
        },
        {
          "display_name": "Fullstack Developer",
          "id": 435,
          "rationale": null,
          "role_archetype": "Engineering",
          "slug": "fullstack-developer",
          "source": "db"
        }
      ]
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "API Interface and Contract Design",
        "id": 289,
        "rationale": "Designing backend service interfaces and contracts that other systems consume, including endpoint and operation shape, request/response payloads, schema and validation, pagination, filtering, idempotency, versioning, status codes, and backward compatibility across REST, GraphQL, gRPC, and OpenAPI-based APIs.",
        "slug": "api-interface-and-contract-design",
        "source": "db"
      },
      "input_skill": "REST",
      "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": "Go Backend Developer",
          "id": 81,
          "rationale": null,
          "role_archetype": "Engineering",
          "slug": "go-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"
        },
        {
          "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": "Integration Protocols \u0026 Standards",
        "id": 271,
        "rationale": "Standards and protocols for integrating Pega applications.",
        "slug": "integration-protocols-standards",
        "source": "db"
      },
      "input_skill": "REST",
      "llm_role": null,
      "roles_from_db": [
        {
          "display_name": "Pega Developer",
          "id": 24,
          "rationale": null,
          "role_archetype": null,
          "slug": "pega-developer",
          "source": "db"
        }
      ]
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "Standards, Protocols \u0026 Compliance",
        "id": 452,
        "rationale": "Ensure teams adhere to industry standards, security protocols, and regulatory compliance requirements.",
        "slug": "standards-protocols-compliance",
        "source": "db"
      },
      "input_skill": "REST",
      "llm_role": null,
      "roles_from_db": [
        {
          "display_name": "Engineering Manager",
          "id": 121,
          "rationale": null,
          "role_archetype": null,
          "slug": "engineering-manager",
          "source": "db"
        },
        {
          "display_name": "Sitecore Dev",
          "id": 233,
          "rationale": null,
          "role_archetype": "Engineering",
          "slug": "sitecore-dev",
          "source": "db"
        }
      ]
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "React Frontend Development",
        "id": 96,
        "rationale": "Building interactive web user interfaces with React.js, including component composition, state management, hooks, and rendering patterns. React.js belongs here because it is a core library for client-side UI development in modern web applications.",
        "slug": "d_init_01",
        "source": "db"
      },
      "input_skill": "UI/UX",
      "llm_role": null,
      "roles_from_db": []
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "Local Persistence and Offline Behavior",
        "id": 85,
        "rationale": "On-device storage used for caching, offline support, and durable client state. This cluster is coherent because iOS apps often need to preserve user progress and data when connectivity is limited.",
        "slug": "local-persistence-and-offline-behavior",
        "source": "db"
      },
      "input_skill": "SQLite",
      "llm_role": null,
      "roles_from_db": [
        {
          "display_name": "Android Developer",
          "id": 4,
          "rationale": null,
          "role_archetype": null,
          "slug": "android-engineer",
          "source": "db"
        },
        {
          "display_name": "Flutter Developer",
          "id": 74,
          "rationale": null,
          "role_archetype": "Engineering",
          "slug": "flutter-developer",
          "source": "db"
        },
        {
          "display_name": "Hybrid Mobile Developer",
          "id": 11,
          "rationale": null,
          "role_archetype": null,
          "slug": "hybrid-mobile-developer",
          "source": "db"
        },
        {
          "display_name": "Native Mobile Developer",
          "id": 75,
          "rationale": null,
          "role_archetype": "Engineering",
          "slug": "native-mobile-developer",
          "source": "db"
        },
        {
          "display_name": "React Native Developer",
          "id": 73,
          "rationale": null,
          "role_archetype": "Engineering",
          "slug": "react-native-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": "Offline Storage and Sync",
        "id": 378,
        "rationale": "On-device storage and synchronization patterns used to keep Ionic apps usable when connectivity is limited. This cluster covers caching, queued writes, and restoring client state after reconnecting.",
        "slug": "offline-storage-and-sync",
        "source": "db"
      },
      "input_skill": "SQLite",
      "llm_role": null,
      "roles_from_db": [
        {
          "display_name": "Ionic Developer",
          "id": 434,
          "rationale": null,
          "role_archetype": null,
          "slug": "ionic-developer",
          "source": "db"
        }
      ]
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "API Integration and Data Fetching",
        "id": 127,
        "rationale": "Client-side integration with backend endpoints and third-party services, including request shaping, response handling, and synchronization with UI state. This is central to frontend work because most screens depend on remote data.",
        "slug": "api-integration-and-data-fetching",
        "source": "db"
      },
      "input_skill": "JSON",
      "llm_role": null,
      "roles_from_db": [
        {
          "display_name": "Angular Frontend Developer",
          "id": 90,
          "rationale": null,
          "role_archetype": "Engineering",
          "slug": "angular-frontend-developer",
          "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": "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"
        },
        {
          "display_name": "Web Developer",
          "id": 25,
          "rationale": null,
          "role_archetype": null,
          "slug": "web-developer",
          "source": "db"
        }
      ]
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "API Interface and Contract Design",
        "id": 289,
        "rationale": "Designing backend service interfaces and contracts that other systems consume, including endpoint and operation shape, request/response payloads, schema and validation, pagination, filtering, idempotency, versioning, status codes, and backward compatibility across REST, GraphQL, gRPC, and OpenAPI-based APIs.",
        "slug": "api-interface-and-contract-design",
        "source": "db"
      },
      "input_skill": "JSON",
      "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": "Go Backend Developer",
          "id": 81,
          "rationale": null,
          "role_archetype": "Engineering",
          "slug": "go-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"
        },
        {
          "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": "Integration Protocols \u0026 Standards",
        "id": 271,
        "rationale": "Standards and protocols for integrating Pega applications.",
        "slug": "integration-protocols-standards",
        "source": "db"
      },
      "input_skill": "JSON",
      "llm_role": null,
      "roles_from_db": [
        {
          "display_name": "Pega Developer",
          "id": 24,
          "rationale": null,
          "role_archetype": null,
          "slug": "pega-developer",
          "source": "db"
        }
      ]
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "Integration Protocols \u0026 Standards",
        "id": 271,
        "rationale": "Standards and protocols for integrating Pega applications.",
        "slug": "integration-protocols-standards",
        "source": "db"
      },
      "input_skill": "XML",
      "llm_role": null,
      "roles_from_db": [
        {
          "display_name": "Pega Developer",
          "id": 24,
          "rationale": null,
          "role_archetype": null,
          "slug": "pega-developer",
          "source": "db"
        }
      ]
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "React Frontend Development",
        "id": 96,
        "rationale": "Building interactive web user interfaces with React.js, including component composition, state management, hooks, and rendering patterns. React.js belongs here because it is a core library for client-side UI development in modern web applications.",
        "slug": "d_init_01",
        "source": "db"
      },
      "input_skill": "XML",
      "llm_role": null,
      "roles_from_db": []
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "API Integration and Data Fetching",
        "id": 127,
        "rationale": "Client-side integration with backend endpoints and third-party services, including request shaping, response handling, and synchronization with UI state. This is central to frontend work because most screens depend on remote data.",
        "slug": "api-integration-and-data-fetching",
        "source": "db"
      },
      "input_skill": "API",
      "llm_role": null,
      "roles_from_db": [
        {
          "display_name": "Angular Frontend Developer",
          "id": 90,
          "rationale": null,
          "role_archetype": "Engineering",
          "slug": "angular-frontend-developer",
          "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": "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"
        },
        {
          "display_name": "Web Developer",
          "id": 25,
          "rationale": null,
          "role_archetype": null,
          "slug": "web-developer",
          "source": "db"
        }
      ]
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "Push Notifications and Deep Links",
        "id": 320,
        "rationale": "Mechanisms for receiving notifications and routing users into the right in-app destination from external entry points. React Native developers use these flows to re-engage users and restore context after taps or app launches.",
        "slug": "push-notifications-and-deep-links",
        "source": "db"
      },
      "input_skill": "Firebase Cloud Messaging",
      "llm_role": null,
      "roles_from_db": [
        {
          "display_name": "Ionic Developer",
          "id": 434,
          "rationale": null,
          "role_archetype": null,
          "slug": "ionic-developer",
          "source": "db"
        },
        {
          "display_name": "React Native Developer",
          "id": 73,
          "rationale": null,
          "role_archetype": "Engineering",
          "slug": "react-native-developer",
          "source": "db"
        }
      ]
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "Push Notifications and Messaging",
        "id": 88,
        "rationale": "Mechanisms for receiving, presenting, and acting on remote notifications and message-driven entry points on iOS. This cluster is distinct because notifications affect app engagement, deep linking, and background updates.",
        "slug": "push-notifications-and-messaging",
        "source": "db"
      },
      "input_skill": "Firebase Cloud Messaging",
      "llm_role": null,
      "roles_from_db": [
        {
          "display_name": "Android Developer",
          "id": 4,
          "rationale": null,
          "role_archetype": null,
          "slug": "android-engineer",
          "source": "db"
        },
        {
          "display_name": "Flutter Developer",
          "id": 74,
          "rationale": null,
          "role_archetype": "Engineering",
          "slug": "flutter-developer",
          "source": "db"
        },
        {
          "display_name": "Hybrid Mobile Developer",
          "id": 11,
          "rationale": null,
          "role_archetype": null,
          "slug": "hybrid-mobile-developer",
          "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"
        }
      ]
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "React Frontend Development",
        "id": 96,
        "rationale": "Building interactive web user interfaces with React.js, including component composition, state management, hooks, and rendering patterns. React.js belongs here because it is a core library for client-side UI development in modern web applications.",
        "slug": "d_init_01",
        "source": "db"
      },
      "input_skill": "Analytics",
      "llm_role": null,
      "roles_from_db": []
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "Background Execution and Lifecycle",
        "id": 87,
        "rationale": "App lifecycle handling and deferred work mechanisms that keep iOS behavior reliable when the app is backgrounded, suspended, or relaunched. This is important for sync, refresh, and user-visible continuity.",
        "slug": "background-execution-and-lifecycle",
        "source": "db"
      },
      "input_skill": "Push Notifications",
      "llm_role": null,
      "roles_from_db": [
        {
          "display_name": "Hybrid Mobile Developer",
          "id": 11,
          "rationale": null,
          "role_archetype": null,
          "slug": "hybrid-mobile-developer",
          "source": "db"
        },
        {
          "display_name": "React Native Developer",
          "id": 73,
          "rationale": null,
          "role_archetype": "Engineering",
          "slug": "react-native-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": "Push Notifications and Deep Links",
        "id": 320,
        "rationale": "Mechanisms for receiving notifications and routing users into the right in-app destination from external entry points. React Native developers use these flows to re-engage users and restore context after taps or app launches.",
        "slug": "push-notifications-and-deep-links",
        "source": "db"
      },
      "input_skill": "Push Notifications",
      "llm_role": null,
      "roles_from_db": [
        {
          "display_name": "Ionic Developer",
          "id": 434,
          "rationale": null,
          "role_archetype": null,
          "slug": "ionic-developer",
          "source": "db"
        },
        {
          "display_name": "React Native Developer",
          "id": 73,
          "rationale": null,
          "role_archetype": "Engineering",
          "slug": "react-native-developer",
          "source": "db"
        }
      ]
    }
  ],
  "input_final_skills": [
    "iOS",
    "Objective-C",
    "Swift",
    "Core Data",
    "Grand Central Dispatch",
    "Storyboards",
    "REST",
    "UI/UX",
    "SQLite",
    "JSON",
    "XML",
    "Web Services",
    "SDK",
    "API",
    "Firebase Cloud Messaging",
    "Pods",
    "Analytics",
    "Social Media APIs",
    "Apple Design Principles",
    "Interface Guidelines",
    "Cloud API",
    "Push Notifications"
  ],
  "input_llm_skills": [
    "iOS",
    "Objective-C",
    "Swift",
    "Core Data",
    "Grand Central Dispatch",
    "Storyboards",
    "REST",
    "UI/UX",
    "SQLite",
    "JSON",
    "XML",
    "Web Services",
    "SDK",
    "API",
    "Firebase Cloud Messaging",
    "Pods",
    "Analytics",
    "Social Media APIs",
    "Apple Design Principles",
    "Interface Guidelines",
    "Cloud API",
    "Push Notifications"
  ],
  "new_aliases_persisted": 0,
  "run_id": "bac893a9-7c21-41d9-a494-bcf2de7383c0",
  "skills_detail": [
    {
      "aliases_in_db": [
        {
          "alias_text": "iOS",
          "alias_type": "CANONICAL",
          "id": 2540,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        }
      ],
      "canonical": {
        "category_id": 9,
        "display_name": "iOS",
        "id": 1594,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "PLATFORM",
        "slug": "ios",
        "sub_category_id": 1200,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "dimensions": [
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "React Frontend Development",
            "id": 96,
            "rationale": "Building interactive web user interfaces with React.js, including component composition, state management, hooks, and rendering patterns. React.js belongs here because it is a core library for client-side UI development in modern web applications.",
            "slug": "d_init_01",
            "source": "db"
          },
          "input_skill": "iOS",
          "llm_role": null,
          "roles_from_db": []
        }
      ],
      "input_skill": "iOS",
      "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": "Objective-C",
          "alias_type": "CANONICAL",
          "id": 767,
          "is_primary": true,
          "match_strategy": "CASE_INSENSITIVE"
        }
      ],
      "canonical": {
        "category_id": 6,
        "display_name": "Objective-C",
        "id": 441,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "LANGUAGE",
        "slug": "objective-c",
        "sub_category_id": 96,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "dimensions": [
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "Native Mobile Languages",
            "id": 274,
            "rationale": "Primary implementation languages used to build platform-specific app features, UI logic, and device integrations. This is the core coding surface for native mobile work on one platform.",
            "slug": "native-mobile-languages",
            "source": "db"
          },
          "input_skill": "Objective-C",
          "llm_role": null,
          "roles_from_db": [
            {
              "display_name": "Native Mobile Developer",
              "id": 75,
              "rationale": null,
              "role_archetype": "Engineering",
              "slug": "native-mobile-developer",
              "source": "db"
            }
          ]
        },
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "Swift and Objective-C",
            "id": 81,
            "rationale": "Primary implementation languages for native iOS app features, platform APIs, and client-side business logic. This is the core coding surface for building and maintaining iPhone and iPad experiences.",
            "slug": "swift-and-objective-c",
            "source": "db"
          },
          "input_skill": "Objective-C",
          "llm_role": null,
          "roles_from_db": [
            {
              "display_name": "iOS Developer",
              "id": 6,
              "rationale": null,
              "role_archetype": null,
              "slug": "ios-engineer",
              "source": "db"
            }
          ]
        }
      ],
      "input_skill": "Objective-C",
      "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": "Swift",
          "alias_type": "CANONICAL",
          "id": 756,
          "is_primary": true,
          "match_strategy": "CASE_INSENSITIVE"
        },
        {
          "alias_text": "Swift 2.0",
          "alias_type": "VERSION",
          "id": 757,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        },
        {
          "alias_text": "Swift 2.x",
          "alias_type": "VERSION",
          "id": 758,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        },
        {
          "alias_text": "Swift 3.0",
          "alias_type": "VERSION",
          "id": 759,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        },
        {
          "alias_text": "Swift 3.x",
          "alias_type": "VERSION",
          "id": 760,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        },
        {
          "alias_text": "Swift 4.0",
          "alias_type": "VERSION",
          "id": 761,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        },
        {
          "alias_text": "Swift 4.x",
          "alias_type": "VERSION",
          "id": 762,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        },
        {
          "alias_text": "Swift 5.0",
          "alias_type": "VERSION",
          "id": 763,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        },
        {
          "alias_text": "Swift 5.x",
          "alias_type": "VERSION",
          "id": 764,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        },
        {
          "alias_text": "Swift 6.0",
          "alias_type": "VERSION",
          "id": 765,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        },
        {
          "alias_text": "Swift 6.x",
          "alias_type": "VERSION",
          "id": 766,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        }
      ],
      "canonical": {
        "category_id": 6,
        "display_name": "Swift",
        "id": 440,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "LANGUAGE",
        "slug": "swift",
        "sub_category_id": 96,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "dimensions": [
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "Native Mobile Languages",
            "id": 274,
            "rationale": "Primary implementation languages used to build platform-specific app features, UI logic, and device integrations. This is the core coding surface for native mobile work on one platform.",
            "slug": "native-mobile-languages",
            "source": "db"
          },
          "input_skill": "Swift",
          "llm_role": null,
          "roles_from_db": [
            {
              "display_name": "Native Mobile Developer",
              "id": 75,
              "rationale": null,
              "role_archetype": "Engineering",
              "slug": "native-mobile-developer",
              "source": "db"
            }
          ]
        },
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "Swift and Objective-C",
            "id": 81,
            "rationale": "Primary implementation languages for native iOS app features, platform APIs, and client-side business logic. This is the core coding surface for building and maintaining iPhone and iPad experiences.",
            "slug": "swift-and-objective-c",
            "source": "db"
          },
          "input_skill": "Swift",
          "llm_role": null,
          "roles_from_db": [
            {
              "display_name": "iOS Developer",
              "id": 6,
              "rationale": null,
              "role_archetype": null,
              "slug": "ios-engineer",
              "source": "db"
            }
          ]
        }
      ],
      "input_skill": "Swift",
      "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": "Core Data",
          "alias_type": "CANONICAL",
          "id": 785,
          "is_primary": true,
          "match_strategy": "CASE_INSENSITIVE"
        }
      ],
      "canonical": {
        "category_id": 5,
        "display_name": "Core Data",
        "id": 459,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "FRAMEWORK",
        "slug": "core-data",
        "sub_category_id": 336,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "dimensions": [
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "Local Persistence and Offline Behavior",
            "id": 85,
            "rationale": "On-device storage used for caching, offline support, and durable client state. This cluster is coherent because iOS apps often need to preserve user progress and data when connectivity is limited.",
            "slug": "local-persistence-and-offline-behavior",
            "source": "db"
          },
          "input_skill": "Core Data",
          "llm_role": null,
          "roles_from_db": [
            {
              "display_name": "Android Developer",
              "id": 4,
              "rationale": null,
              "role_archetype": null,
              "slug": "android-engineer",
              "source": "db"
            },
            {
              "display_name": "Flutter Developer",
              "id": 74,
              "rationale": null,
              "role_archetype": "Engineering",
              "slug": "flutter-developer",
              "source": "db"
            },
            {
              "display_name": "Hybrid Mobile Developer",
              "id": 11,
              "rationale": null,
              "role_archetype": null,
              "slug": "hybrid-mobile-developer",
              "source": "db"
            },
            {
              "display_name": "Native Mobile Developer",
              "id": 75,
              "rationale": null,
              "role_archetype": "Engineering",
              "slug": "native-mobile-developer",
              "source": "db"
            },
            {
              "display_name": "React Native Developer",
              "id": 73,
              "rationale": null,
              "role_archetype": "Engineering",
              "slug": "react-native-developer",
              "source": "db"
            },
            {
              "display_name": "iOS Developer",
              "id": 6,
              "rationale": null,
              "role_archetype": null,
              "slug": "ios-engineer",
              "source": "db"
            }
          ]
        }
      ],
      "input_skill": "Core Data",
      "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": "Grand Central Dispatch",
      "matched_via": null,
      "new_alias_persisted": false,
      "new_alias_text": null,
      "new_skill_meta": {
        "derived": {
          "category": "Concurrency Tools",
          "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": "grand-central-dispatch",
        "split_log": [],
        "typed": null,
        "warnings": []
      },
      "source_tag": "llm",
      "was_in_llm_skills": true
    },
    {
      "aliases_in_db": [],
      "canonical": null,
      "dimensions": [],
      "input_skill": "Storyboards",
      "matched_via": null,
      "new_alias_persisted": false,
      "new_alias_text": null,
      "new_skill_meta": {
        "derived": {
          "category": "User Interface Design",
          "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": "storyboards",
        "split_log": [],
        "typed": null,
        "warnings": []
      },
      "source_tag": "llm",
      "was_in_llm_skills": true
    },
    {
      "aliases_in_db": [
        {
          "alias_text": "REST",
          "alias_type": "CANONICAL",
          "id": 106,
          "is_primary": true,
          "match_strategy": "CASE_INSENSITIVE"
        }
      ],
      "canonical": {
        "category_id": 2,
        "display_name": "REST",
        "id": 11,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "CONCEPT",
        "slug": "rest",
        "sub_category_id": 2122,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "dimensions": [
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "API Design and Contracts",
            "id": 3,
            "rationale": "Designing request/response shapes and the rules that govern client-server interaction. This cluster is coherent because full stack engineers often own the contract between UI behavior and backend implementation.",
            "slug": "api-design-and-contracts",
            "source": "db"
          },
          "input_skill": "REST",
          "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": 15,
              "rationale": null,
              "role_archetype": null,
              "slug": "full-stack-engineer",
              "source": "db"
            },
            {
              "display_name": "Fullstack Developer",
              "id": 435,
              "rationale": null,
              "role_archetype": "Engineering",
              "slug": "fullstack-developer",
              "source": "db"
            }
          ]
        },
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "API Interface and Contract Design",
            "id": 289,
            "rationale": "Designing backend service interfaces and contracts that other systems consume, including endpoint and operation shape, request/response payloads, schema and validation, pagination, filtering, idempotency, versioning, status codes, and backward compatibility across REST, GraphQL, gRPC, and OpenAPI-based APIs.",
            "slug": "api-interface-and-contract-design",
            "source": "db"
          },
          "input_skill": "REST",
          "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": "Go Backend Developer",
              "id": 81,
              "rationale": null,
              "role_archetype": "Engineering",
              "slug": "go-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"
            },
            {
              "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": "Integration Protocols \u0026 Standards",
            "id": 271,
            "rationale": "Standards and protocols for integrating Pega applications.",
            "slug": "integration-protocols-standards",
            "source": "db"
          },
          "input_skill": "REST",
          "llm_role": null,
          "roles_from_db": [
            {
              "display_name": "Pega Developer",
              "id": 24,
              "rationale": null,
              "role_archetype": null,
              "slug": "pega-developer",
              "source": "db"
            }
          ]
        },
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "Standards, Protocols \u0026 Compliance",
            "id": 452,
            "rationale": "Ensure teams adhere to industry standards, security protocols, and regulatory compliance requirements.",
            "slug": "standards-protocols-compliance",
            "source": "db"
          },
          "input_skill": "REST",
          "llm_role": null,
          "roles_from_db": [
            {
              "display_name": "Engineering Manager",
              "id": 121,
              "rationale": null,
              "role_archetype": null,
              "slug": "engineering-manager",
              "source": "db"
            },
            {
              "display_name": "Sitecore Dev",
              "id": 233,
              "rationale": null,
              "role_archetype": "Engineering",
              "slug": "sitecore-dev",
              "source": "db"
            }
          ]
        }
      ],
      "input_skill": "REST",
      "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": "UI/UX",
          "alias_type": "CANONICAL",
          "id": 2632,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        }
      ],
      "canonical": {
        "category_id": 37,
        "display_name": "UI/UX",
        "id": 1662,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "CONCEPT",
        "slug": "ui-ux",
        "sub_category_id": 1255,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "dimensions": [
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "React Frontend Development",
            "id": 96,
            "rationale": "Building interactive web user interfaces with React.js, including component composition, state management, hooks, and rendering patterns. React.js belongs here because it is a core library for client-side UI development in modern web applications.",
            "slug": "d_init_01",
            "source": "db"
          },
          "input_skill": "UI/UX",
          "llm_role": null,
          "roles_from_db": []
        }
      ],
      "input_skill": "UI/UX",
      "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": "SQLite",
          "alias_type": "CANONICAL",
          "id": 786,
          "is_primary": true,
          "match_strategy": "CASE_INSENSITIVE"
        }
      ],
      "canonical": {
        "category_id": 3,
        "display_name": "SQLite",
        "id": 460,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "TOOL",
        "slug": "sqlite",
        "sub_category_id": 2714,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "dimensions": [
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "Local Persistence and Offline Behavior",
            "id": 85,
            "rationale": "On-device storage used for caching, offline support, and durable client state. This cluster is coherent because iOS apps often need to preserve user progress and data when connectivity is limited.",
            "slug": "local-persistence-and-offline-behavior",
            "source": "db"
          },
          "input_skill": "SQLite",
          "llm_role": null,
          "roles_from_db": [
            {
              "display_name": "Android Developer",
              "id": 4,
              "rationale": null,
              "role_archetype": null,
              "slug": "android-engineer",
              "source": "db"
            },
            {
              "display_name": "Flutter Developer",
              "id": 74,
              "rationale": null,
              "role_archetype": "Engineering",
              "slug": "flutter-developer",
              "source": "db"
            },
            {
              "display_name": "Hybrid Mobile Developer",
              "id": 11,
              "rationale": null,
              "role_archetype": null,
              "slug": "hybrid-mobile-developer",
              "source": "db"
            },
            {
              "display_name": "Native Mobile Developer",
              "id": 75,
              "rationale": null,
              "role_archetype": "Engineering",
              "slug": "native-mobile-developer",
              "source": "db"
            },
            {
              "display_name": "React Native Developer",
              "id": 73,
              "rationale": null,
              "role_archetype": "Engineering",
              "slug": "react-native-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": "Offline Storage and Sync",
            "id": 378,
            "rationale": "On-device storage and synchronization patterns used to keep Ionic apps usable when connectivity is limited. This cluster covers caching, queued writes, and restoring client state after reconnecting.",
            "slug": "offline-storage-and-sync",
            "source": "db"
          },
          "input_skill": "SQLite",
          "llm_role": null,
          "roles_from_db": [
            {
              "display_name": "Ionic Developer",
              "id": 434,
              "rationale": null,
              "role_archetype": null,
              "slug": "ionic-developer",
              "source": "db"
            }
          ]
        }
      ],
      "input_skill": "SQLite",
      "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": "JSON",
          "alias_type": "CANONICAL",
          "id": 3018,
          "is_primary": true,
          "match_strategy": "CASE_INSENSITIVE"
        }
      ],
      "canonical": {
        "category_id": 4,
        "display_name": "JSON",
        "id": 1984,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "STANDARD",
        "slug": "json",
        "sub_category_id": 1457,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "dimensions": [
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "API Integration and Data Fetching",
            "id": 127,
            "rationale": "Client-side integration with backend endpoints and third-party services, including request shaping, response handling, and synchronization with UI state. This is central to frontend work because most screens depend on remote data.",
            "slug": "api-integration-and-data-fetching",
            "source": "db"
          },
          "input_skill": "JSON",
          "llm_role": null,
          "roles_from_db": [
            {
              "display_name": "Angular Frontend Developer",
              "id": 90,
              "rationale": null,
              "role_archetype": "Engineering",
              "slug": "angular-frontend-developer",
              "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": "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"
            },
            {
              "display_name": "Web Developer",
              "id": 25,
              "rationale": null,
              "role_archetype": null,
              "slug": "web-developer",
              "source": "db"
            }
          ]
        },
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "API Interface and Contract Design",
            "id": 289,
            "rationale": "Designing backend service interfaces and contracts that other systems consume, including endpoint and operation shape, request/response payloads, schema and validation, pagination, filtering, idempotency, versioning, status codes, and backward compatibility across REST, GraphQL, gRPC, and OpenAPI-based APIs.",
            "slug": "api-interface-and-contract-design",
            "source": "db"
          },
          "input_skill": "JSON",
          "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": "Go Backend Developer",
              "id": 81,
              "rationale": null,
              "role_archetype": "Engineering",
              "slug": "go-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"
            },
            {
              "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": "Integration Protocols \u0026 Standards",
            "id": 271,
            "rationale": "Standards and protocols for integrating Pega applications.",
            "slug": "integration-protocols-standards",
            "source": "db"
          },
          "input_skill": "JSON",
          "llm_role": null,
          "roles_from_db": [
            {
              "display_name": "Pega Developer",
              "id": 24,
              "rationale": null,
              "role_archetype": null,
              "slug": "pega-developer",
              "source": "db"
            }
          ]
        }
      ],
      "input_skill": "JSON",
      "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": "XML",
          "alias_type": "CANONICAL",
          "id": 2600,
          "is_primary": true,
          "match_strategy": "CASE_INSENSITIVE"
        }
      ],
      "canonical": {
        "category_id": 4,
        "display_name": "XML",
        "id": 1636,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "STANDARD",
        "slug": "xml",
        "sub_category_id": 689,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "dimensions": [
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "Integration Protocols \u0026 Standards",
            "id": 271,
            "rationale": "Standards and protocols for integrating Pega applications.",
            "slug": "integration-protocols-standards",
            "source": "db"
          },
          "input_skill": "XML",
          "llm_role": null,
          "roles_from_db": [
            {
              "display_name": "Pega Developer",
              "id": 24,
              "rationale": null,
              "role_archetype": null,
              "slug": "pega-developer",
              "source": "db"
            }
          ]
        },
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "React Frontend Development",
            "id": 96,
            "rationale": "Building interactive web user interfaces with React.js, including component composition, state management, hooks, and rendering patterns. React.js belongs here because it is a core library for client-side UI development in modern web applications.",
            "slug": "d_init_01",
            "source": "db"
          },
          "input_skill": "XML",
          "llm_role": null,
          "roles_from_db": []
        }
      ],
      "input_skill": "XML",
      "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": "Web Services",
      "matched_via": null,
      "new_alias_persisted": false,
      "new_alias_text": null,
      "new_skill_meta": {
        "derived": {
          "category": "Web Development",
          "skill_nature": "CONCEPT",
          "sub_category": "general",
          "typical_lifespan": "EVERGREEN",
          "version_strategy": "UNVERSIONED",
          "volatility": "STABLE"
        },
        "enrichment": null,
        "keep_log": [],
        "locked_dimensions": [],
        "merge_log": [],
        "placed": null,
        "relationships": null,
        "skill_id": "web-services",
        "split_log": [],
        "typed": null,
        "warnings": []
      },
      "source_tag": "llm",
      "was_in_llm_skills": true
    },
    {
      "aliases_in_db": [],
      "canonical": null,
      "dimensions": [],
      "input_skill": "SDK",
      "matched_via": null,
      "new_alias_persisted": false,
      "new_alias_text": null,
      "new_skill_meta": {
        "derived": {
          "category": "Software Development",
          "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": "sdk",
        "split_log": [],
        "typed": null,
        "warnings": []
      },
      "source_tag": "llm",
      "was_in_llm_skills": true
    },
    {
      "aliases_in_db": [
        {
          "alias_text": "API",
          "alias_type": "CANONICAL",
          "id": 2514,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        }
      ],
      "canonical": {
        "category_id": 2,
        "display_name": "API",
        "id": 1568,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "CONCEPT",
        "slug": "api",
        "sub_category_id": 1174,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "dimensions": [
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "API Integration and Data Fetching",
            "id": 127,
            "rationale": "Client-side integration with backend endpoints and third-party services, including request shaping, response handling, and synchronization with UI state. This is central to frontend work because most screens depend on remote data.",
            "slug": "api-integration-and-data-fetching",
            "source": "db"
          },
          "input_skill": "API",
          "llm_role": null,
          "roles_from_db": [
            {
              "display_name": "Angular Frontend Developer",
              "id": 90,
              "rationale": null,
              "role_archetype": "Engineering",
              "slug": "angular-frontend-developer",
              "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": "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"
            },
            {
              "display_name": "Web Developer",
              "id": 25,
              "rationale": null,
              "role_archetype": null,
              "slug": "web-developer",
              "source": "db"
            }
          ]
        }
      ],
      "input_skill": "API",
      "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": "Firebase Cloud Messaging",
          "alias_type": "CANONICAL",
          "id": 1551,
          "is_primary": true,
          "match_strategy": "CASE_INSENSITIVE"
        }
      ],
      "canonical": {
        "category_id": 11,
        "display_name": "Firebase Cloud Messaging",
        "id": 948,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "CLOUD_SERVICE",
        "slug": "firebase-cloud-messaging",
        "sub_category_id": 2113,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "dimensions": [
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "Push Notifications and Deep Links",
            "id": 320,
            "rationale": "Mechanisms for receiving notifications and routing users into the right in-app destination from external entry points. React Native developers use these flows to re-engage users and restore context after taps or app launches.",
            "slug": "push-notifications-and-deep-links",
            "source": "db"
          },
          "input_skill": "Firebase Cloud Messaging",
          "llm_role": null,
          "roles_from_db": [
            {
              "display_name": "Ionic Developer",
              "id": 434,
              "rationale": null,
              "role_archetype": null,
              "slug": "ionic-developer",
              "source": "db"
            },
            {
              "display_name": "React Native Developer",
              "id": 73,
              "rationale": null,
              "role_archetype": "Engineering",
              "slug": "react-native-developer",
              "source": "db"
            }
          ]
        },
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "Push Notifications and Messaging",
            "id": 88,
            "rationale": "Mechanisms for receiving, presenting, and acting on remote notifications and message-driven entry points on iOS. This cluster is distinct because notifications affect app engagement, deep linking, and background updates.",
            "slug": "push-notifications-and-messaging",
            "source": "db"
          },
          "input_skill": "Firebase Cloud Messaging",
          "llm_role": null,
          "roles_from_db": [
            {
              "display_name": "Android Developer",
              "id": 4,
              "rationale": null,
              "role_archetype": null,
              "slug": "android-engineer",
              "source": "db"
            },
            {
              "display_name": "Flutter Developer",
              "id": 74,
              "rationale": null,
              "role_archetype": "Engineering",
              "slug": "flutter-developer",
              "source": "db"
            },
            {
              "display_name": "Hybrid Mobile Developer",
              "id": 11,
              "rationale": null,
              "role_archetype": null,
              "slug": "hybrid-mobile-developer",
              "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"
            }
          ]
        }
      ],
      "input_skill": "Firebase Cloud Messaging",
      "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": "Pods",
      "matched_via": null,
      "new_alias_persisted": false,
      "new_alias_text": null,
      "new_skill_meta": {
        "derived": {
          "category": "Dependency Management",
          "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": "pods",
        "split_log": [],
        "typed": null,
        "warnings": []
      },
      "source_tag": "llm",
      "was_in_llm_skills": true
    },
    {
      "aliases_in_db": [
        {
          "alias_text": "Analytics",
          "alias_type": "CANONICAL",
          "id": 2634,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        }
      ],
      "canonical": {
        "category_id": 37,
        "display_name": "Analytics",
        "id": 1664,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "CONCEPT",
        "slug": "analytics",
        "sub_category_id": 1257,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "dimensions": [
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "React Frontend Development",
            "id": 96,
            "rationale": "Building interactive web user interfaces with React.js, including component composition, state management, hooks, and rendering patterns. React.js belongs here because it is a core library for client-side UI development in modern web applications.",
            "slug": "d_init_01",
            "source": "db"
          },
          "input_skill": "Analytics",
          "llm_role": null,
          "roles_from_db": []
        }
      ],
      "input_skill": "Analytics",
      "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": "Social Media APIs",
      "matched_via": null,
      "new_alias_persisted": false,
      "new_alias_text": null,
      "new_skill_meta": {
        "derived": {
          "category": "APIs",
          "skill_nature": "TOOL",
          "sub_category": "general",
          "typical_lifespan": "SHORT_LIVED",
          "version_strategy": "VERSIONED",
          "volatility": "FAST"
        },
        "enrichment": null,
        "keep_log": [],
        "locked_dimensions": [],
        "merge_log": [],
        "placed": null,
        "relationships": null,
        "skill_id": "social-media-apis",
        "split_log": [],
        "typed": null,
        "warnings": []
      },
      "source_tag": "llm",
      "was_in_llm_skills": true
    },
    {
      "aliases_in_db": [],
      "canonical": null,
      "dimensions": [],
      "input_skill": "Apple Design Principles",
      "matched_via": null,
      "new_alias_persisted": false,
      "new_alias_text": null,
      "new_skill_meta": {
        "derived": {
          "category": "Design Guidelines",
          "skill_nature": "CONCEPT",
          "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": "apple-design-principles",
        "split_log": [],
        "typed": null,
        "warnings": []
      },
      "source_tag": "llm",
      "was_in_llm_skills": true
    },
    {
      "aliases_in_db": [],
      "canonical": null,
      "dimensions": [],
      "input_skill": "Interface Guidelines",
      "matched_via": null,
      "new_alias_persisted": false,
      "new_alias_text": null,
      "new_skill_meta": {
        "derived": {
          "category": "User Interface Design",
          "skill_nature": "CONCEPT",
          "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": "interface-guidelines",
        "split_log": [],
        "typed": null,
        "warnings": []
      },
      "source_tag": "llm",
      "was_in_llm_skills": true
    },
    {
      "aliases_in_db": [],
      "canonical": null,
      "dimensions": [],
      "input_skill": "Cloud API",
      "matched_via": null,
      "new_alias_persisted": false,
      "new_alias_text": null,
      "new_skill_meta": {
        "derived": {
          "category": "APIs",
          "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": "cloud-api",
        "split_log": [],
        "typed": null,
        "warnings": []
      },
      "source_tag": "llm",
      "was_in_llm_skills": true
    },
    {
      "aliases_in_db": [
        {
          "alias_text": "push notifications",
          "alias_type": "CANONICAL",
          "id": 4339,
          "is_primary": true,
          "match_strategy": "CASE_INSENSITIVE"
        },
        {
          "alias_text": "Push Notifications",
          "alias_type": "CANONICAL",
          "id": 2557,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        }
      ],
      "canonical": {
        "category_id": 2,
        "display_name": "push notifications",
        "id": 1605,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "CONCEPT",
        "slug": "push-notifications",
        "sub_category_id": 2134,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "dimensions": [
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "Background Execution and Lifecycle",
            "id": 87,
            "rationale": "App lifecycle handling and deferred work mechanisms that keep iOS behavior reliable when the app is backgrounded, suspended, or relaunched. This is important for sync, refresh, and user-visible continuity.",
            "slug": "background-execution-and-lifecycle",
            "source": "db"
          },
          "input_skill": "Push Notifications",
          "llm_role": null,
          "roles_from_db": [
            {
              "display_name": "Hybrid Mobile Developer",
              "id": 11,
              "rationale": null,
              "role_archetype": null,
              "slug": "hybrid-mobile-developer",
              "source": "db"
            },
            {
              "display_name": "React Native Developer",
              "id": 73,
              "rationale": null,
              "role_archetype": "Engineering",
              "slug": "react-native-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": "Push Notifications and Deep Links",
            "id": 320,
            "rationale": "Mechanisms for receiving notifications and routing users into the right in-app destination from external entry points. React Native developers use these flows to re-engage users and restore context after taps or app launches.",
            "slug": "push-notifications-and-deep-links",
            "source": "db"
          },
          "input_skill": "Push Notifications",
          "llm_role": null,
          "roles_from_db": [
            {
              "display_name": "Ionic Developer",
              "id": 434,
              "rationale": null,
              "role_archetype": null,
              "slug": "ionic-developer",
              "source": "db"
            },
            {
              "display_name": "React Native Developer",
              "id": 73,
              "rationale": null,
              "role_archetype": "Engineering",
              "slug": "react-native-developer",
              "source": "db"
            }
          ]
        }
      ],
      "input_skill": "Push Notifications",
      "matched_via": "alias",
      "new_alias_persisted": false,
      "new_alias_text": null,
      "new_skill_meta": null,
      "source_tag": "db",
      "was_in_llm_skills": true
    }
  ],
  "unmatched_skills": [
    "Grand Central Dispatch",
    "Storyboards",
    "Web Services",
    "SDK",
    "Pods",
    "Social Media APIs",
    "Apple Design Principles",
    "Interface Guidelines",
    "Cloud API"
  ]
}
API 3 — final-role-output
{
  "chosen_role": {
    "display_name": "Native Mobile Developer",
    "id": 75,
    "rationale": "Domain=Software Engineering \u2192 sub-role ios-engineer; The JD is clearly for an iOS native mobile app developer focused on Swift/Objective-C, iOS frameworks, APIs, and App Store deployment.",
    "role_archetype": "Engineering",
    "slug": "native-mobile-developer",
    "source": "db"
  },
  "chosen_role_resolution": "in_db",
  "final_input_skills": [
    {
      "skill": "iOS",
      "tag": "in_db"
    },
    {
      "skill": "Objective-C",
      "tag": "in_db"
    },
    {
      "skill": "Swift",
      "tag": "in_db"
    },
    {
      "skill": "Core Data",
      "tag": "in_db"
    },
    {
      "skill": "Grand Central Dispatch",
      "tag": "new"
    },
    {
      "skill": "Storyboards",
      "tag": "new"
    },
    {
      "skill": "REST",
      "tag": "in_db"
    },
    {
      "skill": "UI/UX",
      "tag": "in_db"
    },
    {
      "skill": "SQLite",
      "tag": "in_db"
    },
    {
      "skill": "JSON",
      "tag": "in_db"
    },
    {
      "skill": "XML",
      "tag": "in_db"
    },
    {
      "skill": "Web Services",
      "tag": "new"
    },
    {
      "skill": "SDK",
      "tag": "new"
    },
    {
      "skill": "API",
      "tag": "in_db"
    },
    {
      "skill": "Firebase Cloud Messaging",
      "tag": "in_db"
    },
    {
      "skill": "Pods",
      "tag": "new"
    },
    {
      "skill": "Analytics",
      "tag": "in_db"
    },
    {
      "skill": "Social Media APIs",
      "tag": "new"
    },
    {
      "skill": "Apple Design Principles",
      "tag": "new"
    },
    {
      "skill": "Interface Guidelines",
      "tag": "new"
    },
    {
      "skill": "Cloud API",
      "tag": "new"
    },
    {
      "skill": "Push Notifications",
      "tag": "in_db"
    }
  ],
  "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": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "React Frontend Development",
          "id": 96,
          "rationale": "Building interactive web user interfaces with React.js, including component composition, state management, hooks, and rendering patterns. React.js belongs here because it is a core library for client-side UI development in modern web applications.",
          "slug": "d_init_01",
          "source": "db"
        },
        "dimension_id": 96,
        "input_skill": "iOS",
        "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": [],
        "skill_dimension_saved": true,
        "skill_id": 1594,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "Native Mobile Languages",
          "id": 274,
          "rationale": "Primary implementation languages used to build platform-specific app features, UI logic, and device integrations. This is the core coding surface for native mobile work on one platform.",
          "slug": "native-mobile-languages",
          "source": "db"
        },
        "dimension_id": 274,
        "input_skill": "Objective-C",
        "llm_role": null,
        "matched_chosen_role": true,
        "outcome_line": "Existing dimension (library) \u00b7 Role\u2194dimension saved",
        "role_dimension_saved": true,
        "roles_from_db": [
          {
            "display_name": "Native Mobile Developer",
            "id": 75,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "native-mobile-developer",
            "source": "db"
          }
        ],
        "skill_dimension_saved": true,
        "skill_id": 441,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "Swift and Objective-C",
          "id": 81,
          "rationale": "Primary implementation languages for native iOS app features, platform APIs, and client-side business logic. This is the core coding surface for building and maintaining iPhone and iPad experiences.",
          "slug": "swift-and-objective-c",
          "source": "db"
        },
        "dimension_id": 81,
        "input_skill": "Objective-C",
        "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": "iOS Developer",
            "id": 6,
            "rationale": null,
            "role_archetype": null,
            "slug": "ios-engineer",
            "source": "db"
          }
        ],
        "skill_dimension_saved": true,
        "skill_id": 441,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "Native Mobile Languages",
          "id": 274,
          "rationale": "Primary implementation languages used to build platform-specific app features, UI logic, and device integrations. This is the core coding surface for native mobile work on one platform.",
          "slug": "native-mobile-languages",
          "source": "db"
        },
        "dimension_id": 274,
        "input_skill": "Swift",
        "llm_role": null,
        "matched_chosen_role": true,
        "outcome_line": "Existing dimension (library) \u00b7 Role\u2194dimension saved",
        "role_dimension_saved": true,
        "roles_from_db": [
          {
            "display_name": "Native Mobile Developer",
            "id": 75,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "native-mobile-developer",
            "source": "db"
          }
        ],
        "skill_dimension_saved": true,
        "skill_id": 440,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "Swift and Objective-C",
          "id": 81,
          "rationale": "Primary implementation languages for native iOS app features, platform APIs, and client-side business logic. This is the core coding surface for building and maintaining iPhone and iPad experiences.",
          "slug": "swift-and-objective-c",
          "source": "db"
        },
        "dimension_id": 81,
        "input_skill": "Swift",
        "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": "iOS Developer",
            "id": 6,
            "rationale": null,
            "role_archetype": null,
            "slug": "ios-engineer",
            "source": "db"
          }
        ],
        "skill_dimension_saved": true,
        "skill_id": 440,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "Local Persistence and Offline Behavior",
          "id": 85,
          "rationale": "On-device storage used for caching, offline support, and durable client state. This cluster is coherent because iOS apps often need to preserve user progress and data when connectivity is limited.",
          "slug": "local-persistence-and-offline-behavior",
          "source": "db"
        },
        "dimension_id": 85,
        "input_skill": "Core Data",
        "llm_role": null,
        "matched_chosen_role": true,
        "outcome_line": "Existing dimension (library) \u00b7 Role\u2194dimension saved",
        "role_dimension_saved": true,
        "roles_from_db": [
          {
            "display_name": "Android Developer",
            "id": 4,
            "rationale": null,
            "role_archetype": null,
            "slug": "android-engineer",
            "source": "db"
          },
          {
            "display_name": "Flutter Developer",
            "id": 74,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "flutter-developer",
            "source": "db"
          },
          {
            "display_name": "Hybrid Mobile Developer",
            "id": 11,
            "rationale": null,
            "role_archetype": null,
            "slug": "hybrid-mobile-developer",
            "source": "db"
          },
          {
            "display_name": "Native Mobile Developer",
            "id": 75,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "native-mobile-developer",
            "source": "db"
          },
          {
            "display_name": "React Native Developer",
            "id": 73,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "react-native-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": 459,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "API Design and Contracts",
          "id": 3,
          "rationale": "Designing request/response shapes and the rules that govern client-server interaction. This cluster is coherent because full stack engineers often own the contract between UI behavior and backend implementation.",
          "slug": "api-design-and-contracts",
          "source": "db"
        },
        "dimension_id": 3,
        "input_skill": "REST",
        "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": 15,
            "rationale": null,
            "role_archetype": null,
            "slug": "full-stack-engineer",
            "source": "db"
          },
          {
            "display_name": "Fullstack Developer",
            "id": 435,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "fullstack-developer",
            "source": "db"
          }
        ],
        "skill_dimension_saved": true,
        "skill_id": 11,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "API Interface and Contract Design",
          "id": 289,
          "rationale": "Designing backend service interfaces and contracts that other systems consume, including endpoint and operation shape, request/response payloads, schema and validation, pagination, filtering, idempotency, versioning, status codes, and backward compatibility across REST, GraphQL, gRPC, and OpenAPI-based APIs.",
          "slug": "api-interface-and-contract-design",
          "source": "db"
        },
        "dimension_id": 289,
        "input_skill": "REST",
        "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": "Go Backend Developer",
            "id": 81,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "go-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"
          },
          {
            "display_name": "Scala Backend Developer",
            "id": 87,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "scala-backend-developer",
            "source": "db"
          }
        ],
        "skill_dimension_saved": true,
        "skill_id": 11,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "Integration Protocols \u0026 Standards",
          "id": 271,
          "rationale": "Standards and protocols for integrating Pega applications.",
          "slug": "integration-protocols-standards",
          "source": "db"
        },
        "dimension_id": 271,
        "input_skill": "REST",
        "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": "Pega Developer",
            "id": 24,
            "rationale": null,
            "role_archetype": null,
            "slug": "pega-developer",
            "source": "db"
          }
        ],
        "skill_dimension_saved": true,
        "skill_id": 11,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "Standards, Protocols \u0026 Compliance",
          "id": 452,
          "rationale": "Ensure teams adhere to industry standards, security protocols, and regulatory compliance requirements.",
          "slug": "standards-protocols-compliance",
          "source": "db"
        },
        "dimension_id": 452,
        "input_skill": "REST",
        "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": "Engineering Manager",
            "id": 121,
            "rationale": null,
            "role_archetype": null,
            "slug": "engineering-manager",
            "source": "db"
          },
          {
            "display_name": "Sitecore Dev",
            "id": 233,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "sitecore-dev",
            "source": "db"
          }
        ],
        "skill_dimension_saved": true,
        "skill_id": 11,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "React Frontend Development",
          "id": 96,
          "rationale": "Building interactive web user interfaces with React.js, including component composition, state management, hooks, and rendering patterns. React.js belongs here because it is a core library for client-side UI development in modern web applications.",
          "slug": "d_init_01",
          "source": "db"
        },
        "dimension_id": 96,
        "input_skill": "UI/UX",
        "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": [],
        "skill_dimension_saved": true,
        "skill_id": 1662,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "Local Persistence and Offline Behavior",
          "id": 85,
          "rationale": "On-device storage used for caching, offline support, and durable client state. This cluster is coherent because iOS apps often need to preserve user progress and data when connectivity is limited.",
          "slug": "local-persistence-and-offline-behavior",
          "source": "db"
        },
        "dimension_id": 85,
        "input_skill": "SQLite",
        "llm_role": null,
        "matched_chosen_role": true,
        "outcome_line": "Existing dimension (library) \u00b7 Role\u2194dimension saved",
        "role_dimension_saved": true,
        "roles_from_db": [
          {
            "display_name": "Android Developer",
            "id": 4,
            "rationale": null,
            "role_archetype": null,
            "slug": "android-engineer",
            "source": "db"
          },
          {
            "display_name": "Flutter Developer",
            "id": 74,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "flutter-developer",
            "source": "db"
          },
          {
            "display_name": "Hybrid Mobile Developer",
            "id": 11,
            "rationale": null,
            "role_archetype": null,
            "slug": "hybrid-mobile-developer",
            "source": "db"
          },
          {
            "display_name": "Native Mobile Developer",
            "id": 75,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "native-mobile-developer",
            "source": "db"
          },
          {
            "display_name": "React Native Developer",
            "id": 73,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "react-native-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": 460,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "Offline Storage and Sync",
          "id": 378,
          "rationale": "On-device storage and synchronization patterns used to keep Ionic apps usable when connectivity is limited. This cluster covers caching, queued writes, and restoring client state after reconnecting.",
          "slug": "offline-storage-and-sync",
          "source": "db"
        },
        "dimension_id": 378,
        "input_skill": "SQLite",
        "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": "Ionic Developer",
            "id": 434,
            "rationale": null,
            "role_archetype": null,
            "slug": "ionic-developer",
            "source": "db"
          }
        ],
        "skill_dimension_saved": true,
        "skill_id": 460,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "API Integration and Data Fetching",
          "id": 127,
          "rationale": "Client-side integration with backend endpoints and third-party services, including request shaping, response handling, and synchronization with UI state. This is central to frontend work because most screens depend on remote data.",
          "slug": "api-integration-and-data-fetching",
          "source": "db"
        },
        "dimension_id": 127,
        "input_skill": "JSON",
        "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"
          },
          {
            "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": "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"
          },
          {
            "display_name": "Web Developer",
            "id": 25,
            "rationale": null,
            "role_archetype": null,
            "slug": "web-developer",
            "source": "db"
          }
        ],
        "skill_dimension_saved": true,
        "skill_id": 1984,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "API Interface and Contract Design",
          "id": 289,
          "rationale": "Designing backend service interfaces and contracts that other systems consume, including endpoint and operation shape, request/response payloads, schema and validation, pagination, filtering, idempotency, versioning, status codes, and backward compatibility across REST, GraphQL, gRPC, and OpenAPI-based APIs.",
          "slug": "api-interface-and-contract-design",
          "source": "db"
        },
        "dimension_id": 289,
        "input_skill": "JSON",
        "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": "Go Backend Developer",
            "id": 81,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "go-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"
          },
          {
            "display_name": "Scala Backend Developer",
            "id": 87,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "scala-backend-developer",
            "source": "db"
          }
        ],
        "skill_dimension_saved": true,
        "skill_id": 1984,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "Integration Protocols \u0026 Standards",
          "id": 271,
          "rationale": "Standards and protocols for integrating Pega applications.",
          "slug": "integration-protocols-standards",
          "source": "db"
        },
        "dimension_id": 271,
        "input_skill": "JSON",
        "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": "Pega Developer",
            "id": 24,
            "rationale": null,
            "role_archetype": null,
            "slug": "pega-developer",
            "source": "db"
          }
        ],
        "skill_dimension_saved": true,
        "skill_id": 1984,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "Integration Protocols \u0026 Standards",
          "id": 271,
          "rationale": "Standards and protocols for integrating Pega applications.",
          "slug": "integration-protocols-standards",
          "source": "db"
        },
        "dimension_id": 271,
        "input_skill": "XML",
        "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": "Pega Developer",
            "id": 24,
            "rationale": null,
            "role_archetype": null,
            "slug": "pega-developer",
            "source": "db"
          }
        ],
        "skill_dimension_saved": true,
        "skill_id": 1636,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "React Frontend Development",
          "id": 96,
          "rationale": "Building interactive web user interfaces with React.js, including component composition, state management, hooks, and rendering patterns. React.js belongs here because it is a core library for client-side UI development in modern web applications.",
          "slug": "d_init_01",
          "source": "db"
        },
        "dimension_id": 96,
        "input_skill": "XML",
        "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": [],
        "skill_dimension_saved": true,
        "skill_id": 1636,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "API Integration and Data Fetching",
          "id": 127,
          "rationale": "Client-side integration with backend endpoints and third-party services, including request shaping, response handling, and synchronization with UI state. This is central to frontend work because most screens depend on remote data.",
          "slug": "api-integration-and-data-fetching",
          "source": "db"
        },
        "dimension_id": 127,
        "input_skill": "API",
        "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"
          },
          {
            "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": "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"
          },
          {
            "display_name": "Web Developer",
            "id": 25,
            "rationale": null,
            "role_archetype": null,
            "slug": "web-developer",
            "source": "db"
          }
        ],
        "skill_dimension_saved": true,
        "skill_id": 1568,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "Push Notifications and Deep Links",
          "id": 320,
          "rationale": "Mechanisms for receiving notifications and routing users into the right in-app destination from external entry points. React Native developers use these flows to re-engage users and restore context after taps or app launches.",
          "slug": "push-notifications-and-deep-links",
          "source": "db"
        },
        "dimension_id": 320,
        "input_skill": "Firebase Cloud Messaging",
        "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": "Ionic Developer",
            "id": 434,
            "rationale": null,
            "role_archetype": null,
            "slug": "ionic-developer",
            "source": "db"
          },
          {
            "display_name": "React Native Developer",
            "id": 73,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "react-native-developer",
            "source": "db"
          }
        ],
        "skill_dimension_saved": true,
        "skill_id": 948,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "Push Notifications and Messaging",
          "id": 88,
          "rationale": "Mechanisms for receiving, presenting, and acting on remote notifications and message-driven entry points on iOS. This cluster is distinct because notifications affect app engagement, deep linking, and background updates.",
          "slug": "push-notifications-and-messaging",
          "source": "db"
        },
        "dimension_id": 88,
        "input_skill": "Firebase Cloud Messaging",
        "llm_role": null,
        "matched_chosen_role": true,
        "outcome_line": "Existing dimension (library) \u00b7 Role\u2194dimension saved",
        "role_dimension_saved": true,
        "roles_from_db": [
          {
            "display_name": "Android Developer",
            "id": 4,
            "rationale": null,
            "role_archetype": null,
            "slug": "android-engineer",
            "source": "db"
          },
          {
            "display_name": "Flutter Developer",
            "id": 74,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "flutter-developer",
            "source": "db"
          },
          {
            "display_name": "Hybrid Mobile Developer",
            "id": 11,
            "rationale": null,
            "role_archetype": null,
            "slug": "hybrid-mobile-developer",
            "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"
          }
        ],
        "skill_dimension_saved": true,
        "skill_id": 948,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "React Frontend Development",
          "id": 96,
          "rationale": "Building interactive web user interfaces with React.js, including component composition, state management, hooks, and rendering patterns. React.js belongs here because it is a core library for client-side UI development in modern web applications.",
          "slug": "d_init_01",
          "source": "db"
        },
        "dimension_id": 96,
        "input_skill": "Analytics",
        "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": [],
        "skill_dimension_saved": true,
        "skill_id": 1664,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "Background Execution and Lifecycle",
          "id": 87,
          "rationale": "App lifecycle handling and deferred work mechanisms that keep iOS behavior reliable when the app is backgrounded, suspended, or relaunched. This is important for sync, refresh, and user-visible continuity.",
          "slug": "background-execution-and-lifecycle",
          "source": "db"
        },
        "dimension_id": 87,
        "input_skill": "Push Notifications",
        "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": "Hybrid Mobile Developer",
            "id": 11,
            "rationale": null,
            "role_archetype": null,
            "slug": "hybrid-mobile-developer",
            "source": "db"
          },
          {
            "display_name": "React Native Developer",
            "id": 73,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "react-native-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": 1605,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 75,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "Push Notifications and Deep Links",
          "id": 320,
          "rationale": "Mechanisms for receiving notifications and routing users into the right in-app destination from external entry points. React Native developers use these flows to re-engage users and restore context after taps or app launches.",
          "slug": "push-notifications-and-deep-links",
          "source": "db"
        },
        "dimension_id": 320,
        "input_skill": "Push Notifications",
        "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": "Ionic Developer",
            "id": 434,
            "rationale": null,
            "role_archetype": null,
            "slug": "ionic-developer",
            "source": "db"
          },
          {
            "display_name": "React Native Developer",
            "id": 73,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "react-native-developer",
            "source": "db"
          }
        ],
        "skill_dimension_saved": true,
        "skill_id": 1605,
        "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": "bac893a9-7c21-41d9-a494-bcf2de7383c0"
}