← Back to history

Pipeline run

7de45273-69bb-4a7a-8bfe-73ace34d001f

Pipeline LLM cost (USD)
API 1: $0.0122 API 2: $0.0002 API 3: $0.0000 Total: $0.0124

Client output enrichment

v2 Skill cluster · Nature of work · AI index · Tech stack maturity · Evidence · KRA description
role baseline loaded sources · ai_index: jd · nature_of_work: jd · tech_stack_maturity: jd
Nature of work · Cross-platform feature development
Lead cross-platform mobile app development for iOS and Android, turning UI/UX into reusable code, integrating secure backend APIs, and tuning performance. Also handle App Store/Google Play releases, post-launch support, and mentor engineers.
"“Lead development and delivery of cross-platform (Kotlin Multiplatform, React Native) mobile applications.”"
Tech stack maturity
Mainstream Modern
The skill set centers on React Native and mobile platform development (Android/iOS) with API and SQLite integration, which is characteristic of widely adopted, current mobile engineering practices rather than bleeding-edge or legacy-only stacks.
AI index (0 = no AI use, 5 = totally AI-dependent · v2.1)
0.00 / 5
· Title match
· Has AI skill
· AI skill (primary)
· AI skill (secondary)
· On AI team
· Builds AI products
vocab breakdown (legacy)
Assistants (×1):
Frameworks (×2):
Models / concepts (×3):
Evidence — skills matched in JD (12)
Android iOS Kotlin Multiplatform React Native App Store Google Play SQLite API Object-Oriented Programming Flutter Internationalization Localization
Skill cluster (4 dimension groups, role-scoped)
UI Frameworks and Rendering
React Native Flutter
Accessibility and Internationalization
Localization
Local Persistence and Offline Behavior
SQLite
Cross-cutting / unaligned
Android iOS Kotlin Multiplatform App Store Google Play API Object-Oriented Programming Internationalization
Show KRA description ↓
Wadhwani Foundation is looking for a Senior Mobile Application Developer to drive the development and enhancement of our mobile clients (iOS and Android). The developer will design the entire app lifecycle right from PoC stage until delivery and post launch support. In this role, you will design and build, high performance, user-friendly and secure mobile applications. As a Senior Mobile Application developer, you will work closely with engineering and product teams to deliver a seamless mobile experience. You will play a key role in ensuring that our mobile apps meet high standards for usability, performance, security across both platforms and serves beneficiaries in multiple countries. • Lead development and delivery of cross-platform (Kotlin Multiplatform, React Native) mobile applications. • Translate UI/UX designs into clean, efficient, and reusable code following best practices. • Collaborate with cross-functional teams to develop and maintain application. • Mentor junior engineers, enforce coding standards, and promote best practices in mobile development. • Proven experience with App Store and Google Play deployment processes, including provisioning, certificate management, release automation, beta testing and compliance. • Experience developing reusable or cross-platform components using technologies like Kotlin Multiplatform, , React Native or Flutter. • Integrate apps with backend APIs, ensuring secure data handling and high performance. • Proficient in debugging, profiling, and optimizing performance for mobile applications on both platforms. • Proven ability to lead complex technical initiatives, manage multiple priorities, and deliver on deadlines. • Excellent communication and interpersonal skills, with the ability to influence and align cross-functional stakeholders. • 5:8 years of professional experience in mobile application development, with a strong track record on Kotlin multi-platform and React Native. • Should be well versed with the concepts of Object-Oriented Programming (OOP). • Must be able to demonstrate strong knowledge of UI design principles, patterns, and best practices. • A sound understanding of the full mobile development life cycle and should have published multiple native apps. • Experience with relational databases (SQLite), web services and API integration. • Exposure to internationalization/localization for multi-country and multi-lingual deployments. • Ability to evaluate and adopt new frameworks, libraries, and tools to keep the technology stack up to date.

Signals

Skill full-stack-engineer
0.22
Alias android-engineer
1.00
KRA hybrid-mobile-developer
0.68

Post-classification

Centroidupdated · n=82
Alias collision log
New-role queue
New skills captured5
New KRA captured

Captured for admin review

Kotlin Multiplatform primary Hybrid Mobile Developer pending
App Store primary Hybrid Mobile Developer pending
Google Play primary Hybrid Mobile Developer pending
Object-Oriented Programming primary Hybrid Mobile Developer pending
Internationalization Hybrid Mobile Developer pending
Status: completed Created: 2026-05-27T17:18:31.553989Z Updated: 2026-05-27T17:19:13.106493Z API 3 duration: 8139 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

Hybrid Mobile Developer

React Native Developer

sub-role · 0.94 domain · Software Engineering CASE DOMAIN

slug: hybrid-mobile-developer · id: 11 · source: db · sub-role slug: react-native-developer

Domain=Software Engineering → sub-role react-native-developer; The JD is centered on cross-platform mobile app development with React Native, Kotlin Multiplatform, and deployment to iOS/Android stores, which best matches Hybrid Mobile Developer.

Matched skills

Kotlin MultiplatformReact NativeFlutterApp StoreGoogle Playprovisioningcertificate managementrelease automationbeta testingSQLiteweb servicesAPI integrationObject-Oriented Programming (OOP)UI design principlesinternationalization/localization

Matched dimensions

Cross-platform mobile application developmentMobile app lifecycle ownershipUI/UX implementationMobile performance optimizationMobile security and secure data handlingStore release and deployment managementCross-functional collaboration and mentoringMulti-country, multilingual app support

Matched KRAs

Drive development and enhancement of mobile clientsDesign the entire app lifecycle from PoC to deliveryLead development and delivery of cross-platform mobile applicationsTranslate UI/UX designs into clean, efficient, reusable codeCollaborate with cross-functional teams to develop and maintain applicationMentor junior engineers, enforce coding standardsIntegrate apps with backend APIsDebug, profile, and optimize performanceEnsure usability, performance, security across both platforms

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
2
Skipped

Job description

Job Title: Sr Mobile Application Developer (Android and iOS)


Location: Bangalore [Hybrid]
Department: Platform Engineering
Reports to: Engineering Manager

Job Summary:

Wadhwani Foundation is looking for a  Senior Mobile Application Developer to drive the development and enhancement of our mobile clients (iOS and Android). The developer will design the entire app lifecycle right from PoC stage until delivery and post launch support. In this role, you will design and build, high performance, user-friendly and secure mobile applications. As a Senior Mobile Application developer, you will work closely with engineering and product teams to deliver a seamless mobile experience. You will play a key role in ensuring that our mobile apps meet high standards for usability,  performance, security across both platforms and serves beneficiaries in multiple countries.

Core Responsibilities:

 • Lead development and delivery of cross-platform (Kotlin Multiplatform, React Native) mobile applications.

 • Translate UI/UX designs into clean, efficient, and reusable code following best practices.

 • Collaborate with cross-functional teams to develop and maintain application.

 • Mentor junior engineers, enforce coding standards, and promote best practices in mobile development.


Required Qualifications:

 • Proven experience with App Store and Google Play deployment processes, including provisioning, certificate management, release automation, beta testing and compliance.

 • Experience developing reusable or cross-platform components using technologies like Kotlin Multiplatform, , React Native or Flutter.

 • Integrate apps with backend APIs, ensuring secure data handling and high performance.

 • Proficient in debugging, profiling, and optimizing performance for mobile applications on both platforms.

 • Proven ability to lead complex technical initiatives, manage multiple priorities, and deliver on deadlines.

 • Excellent communication and interpersonal skills, with the ability to influence and align cross-functional stakeholders.


Technical Expertise:

 • 5:8 years of professional experience in mobile application development, with a strong track record on Kotlin multi-platform and React Native.

 • Should be well versed with the concepts of Object-Oriented Programming (OOP).

 • Must be able to demonstrate strong knowledge of UI design principles, patterns, and best practices.

 • A sound understanding of the full mobile development life cycle and should have published multiple native apps.

 • Experience with relational databases (SQLite), web services  and API integration.

 • Exposure to internationalization/localization for multi-country and multi-lingual deployments.

 • Ability to evaluate and adopt new frameworks, libraries, and tools to keep the technology stack up to date.

Skills from this JD

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

Android Primary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: Android id=1595 · android

Aliases — catalog

  • Android (CANONICAL)

Context tags (catalog)

API Level Android SDK Android Studio Firebase Gradle Java Jetpack Kotlin LiveData MVVM Material Design RecyclerView Retrofit Room XML

Stored enrichment (catalog DB)

Category
Platform
Sub-category
Mobile Platform
Vendor
Google
License
apache_2
Year introduced
2008
Confidence
0.95
Version strategy
NOT_APPLICABLE

Maturity reasoning: Android appears in large volumes of mobile job postings and remains a standard platform in hiring pipelines; Google continues active platform releases and OEM ecosystem support, indicating broad adoption.

Skill profile (library / DB)

Skill nature
PLATFORM
Volatility
STABLE
Typical lifespan
EVERGREEN
Category id
9
Sub-category id
1201
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)
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)
Kotlin Multiplatform 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
Programming Languages
Sub-category
general
Skill nature
CONCEPT
Volatility
MEDIUM
Typical lifespan
MULTI_YEAR
Version strategy
UNVERSIONED
React Native Primary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: React Native id=1040 · react-native

Aliases — catalog

  • React Native (CANONICAL) primary

Context tags (catalog)

Android Component Lifecycle Cross-Platform Expo Firebase GraphQL Hooks Hot Reloading JavaScript Jest MobX Mobile UI Native Modules REST API React Hooks React Navigation Redux State Management Styled Components TypeScript UI Kitten iOS

Stored enrichment (catalog DB)

Category
Framework
Sub-category
Mobile App Framework
Vendor
Meta
License
mit
Year introduced
2015
Confidence
0.98
Version strategy
NOT_APPLICABLE

Maturity reasoning: React Native appears in many mobile engineer job descriptions and is widely used in production apps by major vendors, indicating strong hiring-pipeline demand rather than niche adoption.

Skill profile (library / DB)

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

Dimensions (API 2 worklist)

  • Cross-Platform Mobile UI Frameworks Catalog dimension db id 319

    Library dimension (catalog)

    Roles linked in library: React Native Developer

  • UI Frameworks and Rendering Catalog dimension db id 115

    Library dimension (catalog)

    Roles linked in library: Frontend Developer, Fullstack Developer, Fullstack Developer, Hybrid Mobile Developer, Ionic Developer, Web Developer

API 3 link attempts (this skill)

Dimension Skill↔dim Role↔dim Outcome
Cross-Platform Mobile UI Frameworks
cross-platform-mobile-ui-frameworks
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
UI Frameworks and Rendering
ui-frameworks-and-rendering
Existing dimension (library) · Role↔dimension saved
Flutter Secondary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: Flutter id=1041 · flutter

Aliases — catalog

  • Flutter (CANONICAL) primary
  • Flutter 3 (VERSION)
  • Flutter 3.x (VERSION)
  • Flutter3 (VERSION)
  • flutter (VERSION)
  • flutter 3 (VERSION)
  • flutter 3.x (VERSION)
  • flutter3 (VERSION)

Context tags (catalog)

Animation Animations BuildContext Cross-Platform Cupertino Dart Firebase Integration Flutter CLI Flutter Desktop Flutter DevTools Flutter Packages Flutter SDK Flutter Web Hot Reload Material Design Pub.dev Responsive Design State Management Widget Tree Widgets

Stored enrichment (catalog DB)

Category
Framework
Sub-category
Ui Framework
Vendor
Google
License
bsd
Year introduced
2015
Confidence
0.99
Version strategy
SEPARATE_ENTITY
Version tag
3.x

Maturity reasoning: Flutter appears in many mobile/full-stack job postings and is a common cross-platform UI framework; Google continues active releases and ecosystem growth, indicating broad adoption rather than niche use.

Skill profile (library / DB)

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

Dimensions (API 2 worklist)

  • Flutter UI Framework Catalog dimension db id 312

    Library dimension (catalog)

    Roles linked in library: Flutter Developer

  • UI Frameworks and Rendering Catalog dimension db id 115

    Library dimension (catalog)

    Roles linked in library: Frontend Developer, Fullstack Developer, Fullstack Developer, Hybrid Mobile Developer, Ionic Developer, Web Developer

API 3 link attempts (this skill)

Dimension Skill↔dim Role↔dim Outcome
Flutter UI Framework
flutter-ui-framework
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
UI Frameworks and Rendering
ui-frameworks-and-rendering
Existing dimension (library) · Role↔dimension saved
App Store Primary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: Apple App Store id=1085 · apple-app-store

Aliases — catalog

  • Apple App Store (CANONICAL) primary

Context tags (catalog)

App Analytics App Review Guidelines App Store Connect App Store Optimization App Store listing SwiftUI TestFlight UI/UX design Xcode beta testing iOS distribution iTunes Connect in-app purchases monetization strategies user engagement

Stored enrichment (catalog DB)

Category
Platform
Sub-category
App Distribution Platform
Vendor
Apple Inc.
License
proprietary
Year introduced
2008
Confidence
0.98
Version strategy
NOT_APPLICABLE

Maturity reasoning: Broadly used app distribution platform; App Store review and release management appear in many iOS job descriptions and are a standard requirement for shipping Apple apps.

Skill profile (library / DB)

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

Dimensions (API 2 worklist)

  • Mobile Vendor Platforms Catalog dimension db id 172

    Library dimension (catalog)

    Roles linked in library: Hybrid Mobile Developer

API 3 link attempts (this skill)

Dimension Skill↔dim Role↔dim Outcome
Mobile Vendor Platforms
mobile-vendor-platforms
Skipped — no persistable v3 meta for new skill
skill_not_in_db_v3_proposed
Google Play Primary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: Google Play Store id=1086 · google-play-store

Aliases — catalog

  • Google Play Store (CANONICAL) primary

Context tags (catalog)

APK ASO Android apps Google Play Console Play Store policies analytics app distribution app monetization app optimization app updates beta testing developer account in-app purchases user acquisition user reviews

Stored enrichment (catalog DB)

Category
Platform
Sub-category
App Distribution Platform
Vendor
Google
License
proprietary
Year introduced
2012
Confidence
0.98
Version strategy
NOT_APPLICABLE

Maturity reasoning: Google Play Store is a standard Android app distribution channel and appears in many mobile app JDs for release, publishing, and store optimization; it remains the default marketplace rather than a niche tool.

Skill profile (library / DB)

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

Dimensions (API 2 worklist)

  • Mobile Vendor Platforms Catalog dimension db id 172

    Library dimension (catalog)

    Roles linked in library: Hybrid Mobile Developer

API 3 link attempts (this skill)

Dimension Skill↔dim Role↔dim Outcome
Mobile Vendor Platforms
mobile-vendor-platforms
Skipped — no persistable v3 meta for new skill
skill_not_in_db_v3_proposed
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)
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)
Object-Oriented Programming 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
Concepts
Sub-category
general
Skill nature
CONCEPT
Volatility
STABLE
Typical lifespan
EVERGREEN
Version strategy
UNVERSIONED
Internationalization 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
Concepts
Sub-category
general
Skill nature
CONCEPT
Volatility
MEDIUM
Typical lifespan
MULTI_YEAR
Version strategy
UNVERSIONED
Localization Secondary Library skill API 3: existing canonical (in_db) Existing skill (matched library)
Canonical: Localization id=502 · localization

Aliases — catalog

  • Localization (CANONICAL) primary
  • localization (CANONICAL)

Context tags (catalog)

CAT tools CLDR Cultural adaptation QA testing RTL TMS UI/UX localization Unicode character encoding content adaptation content localization cultural adaptation cultural nuances gettext globalization glossary management i18n international standards internationalization l10n language assets language packs language quality assurance language support locale locale-specific localization management system localization strategy localization testing localization tools market research multilingual multilingual support pseudo-localization resource bundles resource files software localization string extraction terminology management transcreation translatable content translation translation management translation memory translators user experience user interface localization

Stored enrichment (catalog DB)

Category
Methodology
Sub-category
Localization Workflow
Confidence
0.84
Version strategy
NOT_APPLICABLE

Maturity reasoning: Localization is broadly requested in product, mobile, and SaaS JDs, often alongside i18n/l10n tooling and translation management platforms; major vendors like Google, Apple, and Microsoft document it as a standard release workflow.

Skill profile (library / DB)

Skill nature
METHODOLOGY
Volatility
STABLE
Typical lifespan
EVERGREEN
Category id
8
Sub-category id
2258
Extractable
True
Also category
False

Dimensions (API 2 worklist)

  • Accessibility and Internationalization Catalog dimension db id 93

    Library dimension (catalog)

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

API 3 link attempts (this skill)

Dimension Skill↔dim Role↔dim Outcome
Accessibility and Internationalization
accessibility-and-internationalization
Existing dimension (library) · Role↔dimension saved

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
Android in_db
React Frontend Development
d_init_01
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
iOS in_db
React Frontend Development
d_init_01
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
React Native in_db
Cross-Platform Mobile UI Frameworks
cross-platform-mobile-ui-frameworks
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
React Native in_db
UI Frameworks and Rendering
ui-frameworks-and-rendering
Existing dimension (library) · Role↔dimension saved
Flutter in_db
Flutter UI Framework
flutter-ui-framework
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
Flutter in_db
UI Frameworks and Rendering
ui-frameworks-and-rendering
Existing dimension (library) · Role↔dimension saved
App Store new
Mobile Vendor Platforms
mobile-vendor-platforms
Skipped — no persistable v3 meta for new skill skill_not_in_db_v3_proposed
Google Play new
Mobile Vendor Platforms
mobile-vendor-platforms
Skipped — no persistable v3 meta for new skill skill_not_in_db_v3_proposed
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)
API in_db
API Integration and Data Fetching
api-integration-and-data-fetching
Existing dimension (library) · Role↔dimension skipped (dimension not under chosen role)
Localization in_db
Accessibility and Internationalization
accessibility-and-internationalization
Existing dimension (library) · Role↔dimension saved

Library artifacts (this run)

Kind Detail DB id
canonical_skill_proposed Kotlin Multiplatform | type=Programming Languages subtype=general nature=CONCEPT lifespan=MULTI_YEAR
canonical_skill_proposed Object-Oriented Programming | type=Concepts subtype=general nature=CONCEPT lifespan=EVERGREEN
canonical_skill_proposed Internationalization | type=Concepts subtype=general nature=CONCEPT lifespan=MULTI_YEAR
dimension_skill_link_proposed App Store ↔ Mobile Vendor Platforms
role_dimension_link_proposed Hybrid Mobile Developer ↔ Mobile Vendor Platforms
dimension_skill_link_proposed Google Play ↔ Mobile Vendor Platforms
role_dimension_link_proposed Hybrid Mobile Developer ↔ Mobile Vendor Platforms
nano JD Parser — gpt-4.1-nano click to toggle
RoleSr Mobile Application Developer (Android and iOS)
CompanyWadhwani Foundation
Experience5:8 years of professional experience in mobile application development
DomainIT Services & Consulting
Location Bangalore, India (hybrid)
JD type pass
Show raw JSON
{
  "JD_type": "pass",
  "about_company": null,
  "certifications": [],
  "company_name": "Wadhwani Foundation",
  "ctc": null,
  "domain": {
    "primary": {
      "aliases": [
        "ITES",
        "BPO"
      ],
      "domain": "IT Services \u0026 Consulting"
    },
    "secondary": null
  },
  "education": [],
  "experience": {
    "max": 8,
    "min": 5,
    "raw": "5:8 years of professional experience in mobile application development"
  },
  "job_locations": [
    {
      "aliases": [
        "Bengaluru"
      ],
      "city": "Bangalore",
      "country": "India",
      "state": null,
      "work_mode": "hybrid"
    }
  ],
  "role": "Sr Mobile Application Developer (Android and iOS)",
  "role_aliases": [
    "Mobile Developer",
    "Mobile Application Developer",
    "Senior Mobile Developer"
  ],
  "role_archetype": "Engineering",
  "roles_and_responsibilities": [
    {
      "bullet_count": 0,
      "heading": "Job Summary",
      "heading_was_present": true,
      "source_marker": {
        "first_5_words": "Wadhwani Foundation is looking for",
        "last_5_words": "and serves beneficiaries in multiple countries."
      },
      "text": "Wadhwani Foundation is looking for a  Senior Mobile Application Developer to drive the development and enhancement of our mobile clients (iOS and Android). The developer will design the entire app lifecycle right from PoC stage until delivery and post launch support. In this role, you will design and build, high performance, user-friendly and secure mobile applications. As a Senior Mobile Application developer, you will work closely with engineering and product teams to deliver a seamless mobile experience. You will play a key role in ensuring that our mobile apps meet high standards for usability,  performance, security across both platforms and serves beneficiaries in multiple countries.",
      "word_count": 87
    },
    {
      "bullet_count": 4,
      "heading": "Core Responsibilities",
      "heading_was_present": true,
      "source_marker": {
        "first_5_words": "\u2022 Lead development and delivery",
        "last_5_words": "and promote best practices in mobile development."
      },
      "text": " \u2022 Lead development and delivery of cross-platform (Kotlin Multiplatform, React Native) mobile applications.\n\n \u2022 Translate UI/UX designs into clean, efficient, and reusable code following best practices.\n\n \u2022 Collaborate with cross-functional teams to develop and maintain application.\n\n \u2022 Mentor junior engineers, enforce coding standards, and promote best practices in mobile development.",
      "word_count": 56
    },
    {
      "bullet_count": 6,
      "heading": "Required Qualifications",
      "heading_was_present": true,
      "source_marker": {
        "first_5_words": " \u2022 Proven experience with App Store",
        "last_5_words": "influence and align cross-functional stakeholders."
      },
      "text": " \u2022 Proven experience with App Store and Google Play deployment processes, including provisioning, certificate management, release automation, beta testing and compliance.\n\n \u2022 Experience developing reusable or cross-platform components using technologies like Kotlin Multiplatform, , React Native or Flutter.\n\n \u2022 Integrate apps with backend APIs, ensuring secure data handling and high performance.\n\n \u2022 Proficient in debugging, profiling, and optimizing performance for mobile applications on both platforms.\n\n \u2022 Proven ability to lead complex technical initiatives, manage multiple priorities, and deliver on deadlines.\n\n \u2022 Excellent communication and interpersonal skills, with the ability to influence and align cross-functional stakeholders.",
      "word_count": 92
    },
    {
      "bullet_count": 7,
      "heading": "Technical Expertise",
      "heading_was_present": true,
      "source_marker": {
        "first_5_words": " \u2022 5:8 years of professional experience",
        "last_5_words": "to keep the technology stack up to date."
      },
      "text": " \u2022 5:8 years of professional experience in mobile application development, with a strong track record on Kotlin multi-platform and React Native.\n\n \u2022 Should be well versed with the concepts of Object-Oriented Programming (OOP).\n\n \u2022 Must be able to demonstrate strong knowledge of UI design principles, patterns, and best practices.\n\n \u2022 A sound understanding of the full mobile development life cycle and should have published multiple native apps.\n\n \u2022 Experience with relational databases (SQLite), web services  and API integration.\n\n \u2022 Exposure to internationalization/localization for multi-country and multi-lingual deployments.\n\n \u2022 Ability to evaluate and adopt new frameworks, libraries, and tools to keep the technology stack up to date.",
      "word_count": 103
    }
  ],
  "urls": []
}
API 1 — extract-from-jd click to toggle
{
  "final_skills": [
    {
      "is_primary": true,
      "skill_name": "Android"
    },
    {
      "is_primary": true,
      "skill_name": "iOS"
    },
    {
      "is_primary": true,
      "skill_name": "Kotlin Multiplatform"
    },
    {
      "is_primary": true,
      "skill_name": "React Native"
    },
    {
      "is_primary": false,
      "skill_name": "Flutter"
    },
    {
      "is_primary": true,
      "skill_name": "App Store"
    },
    {
      "is_primary": true,
      "skill_name": "Google Play"
    },
    {
      "is_primary": true,
      "skill_name": "SQLite"
    },
    {
      "is_primary": true,
      "skill_name": "API"
    },
    {
      "is_primary": true,
      "skill_name": "Object-Oriented Programming"
    },
    {
      "is_primary": false,
      "skill_name": "Internationalization"
    },
    {
      "is_primary": false,
      "skill_name": "Localization"
    }
  ],
  "jd_role": {
    "display_name": "Sr Mobile Application Developer (Android and iOS)",
    "rationale": null,
    "role_aliases": [
      "Mobile Developer",
      "Mobile Application Developer",
      "Senior Mobile Developer"
    ],
    "role_archetype": "Engineering",
    "slug": ""
  },
  "nano_parsed": {
    "JD_type": "pass",
    "about_company": null,
    "certifications": [],
    "company_name": "Wadhwani Foundation",
    "ctc": null,
    "domain": {
      "primary": {
        "aliases": [
          "ITES",
          "BPO"
        ],
        "domain": "IT Services \u0026 Consulting"
      },
      "secondary": null
    },
    "education": [],
    "experience": {
      "max": 8,
      "min": 5,
      "raw": "5:8 years of professional experience in mobile application development"
    },
    "job_locations": [
      {
        "aliases": [
          "Bengaluru"
        ],
        "city": "Bangalore",
        "country": "India",
        "state": null,
        "work_mode": "hybrid"
      }
    ],
    "role": "Sr Mobile Application Developer (Android and iOS)",
    "role_aliases": [
      "Mobile Developer",
      "Mobile Application Developer",
      "Senior Mobile Developer"
    ],
    "role_archetype": "Engineering",
    "roles_and_responsibilities": [
      {
        "bullet_count": 0,
        "heading": "Job Summary",
        "heading_was_present": true,
        "source_marker": {
          "first_5_words": "Wadhwani Foundation is looking for",
          "last_5_words": "and serves beneficiaries in multiple countries."
        },
        "text": "Wadhwani Foundation is looking for a  Senior Mobile Application Developer to drive the development and enhancement of our mobile clients (iOS and Android). The developer will design the entire app lifecycle right from PoC stage until delivery and post launch support. In this role, you will design and build, high performance, user-friendly and secure mobile applications. As a Senior Mobile Application developer, you will work closely with engineering and product teams to deliver a seamless mobile experience. You will play a key role in ensuring that our mobile apps meet high standards for usability,  performance, security across both platforms and serves beneficiaries in multiple countries.",
        "word_count": 87
      },
      {
        "bullet_count": 4,
        "heading": "Core Responsibilities",
        "heading_was_present": true,
        "source_marker": {
          "first_5_words": "\u2022 Lead development and delivery",
          "last_5_words": "and promote best practices in mobile development."
        },
        "text": " \u2022 Lead development and delivery of cross-platform (Kotlin Multiplatform, React Native) mobile applications.\n\n \u2022 Translate UI/UX designs into clean, efficient, and reusable code following best practices.\n\n \u2022 Collaborate with cross-functional teams to develop and maintain application.\n\n \u2022 Mentor junior engineers, enforce coding standards, and promote best practices in mobile development.",
        "word_count": 56
      },
      {
        "bullet_count": 6,
        "heading": "Required Qualifications",
        "heading_was_present": true,
        "source_marker": {
          "first_5_words": " \u2022 Proven experience with App Store",
          "last_5_words": "influence and align cross-functional stakeholders."
        },
        "text": " \u2022 Proven experience with App Store and Google Play deployment processes, including provisioning, certificate management, release automation, beta testing and compliance.\n\n \u2022 Experience developing reusable or cross-platform components using technologies like Kotlin Multiplatform, , React Native or Flutter.\n\n \u2022 Integrate apps with backend APIs, ensuring secure data handling and high performance.\n\n \u2022 Proficient in debugging, profiling, and optimizing performance for mobile applications on both platforms.\n\n \u2022 Proven ability to lead complex technical initiatives, manage multiple priorities, and deliver on deadlines.\n\n \u2022 Excellent communication and interpersonal skills, with the ability to influence and align cross-functional stakeholders.",
        "word_count": 92
      },
      {
        "bullet_count": 7,
        "heading": "Technical Expertise",
        "heading_was_present": true,
        "source_marker": {
          "first_5_words": " \u2022 5:8 years of professional experience",
          "last_5_words": "to keep the technology stack up to date."
        },
        "text": " \u2022 5:8 years of professional experience in mobile application development, with a strong track record on Kotlin multi-platform and React Native.\n\n \u2022 Should be well versed with the concepts of Object-Oriented Programming (OOP).\n\n \u2022 Must be able to demonstrate strong knowledge of UI design principles, patterns, and best practices.\n\n \u2022 A sound understanding of the full mobile development life cycle and should have published multiple native apps.\n\n \u2022 Experience with relational databases (SQLite), web services  and API integration.\n\n \u2022 Exposure to internationalization/localization for multi-country and multi-lingual deployments.\n\n \u2022 Ability to evaluate and adopt new frameworks, libraries, and tools to keep the technology stack up to date.",
        "word_count": 103
      }
    ],
    "urls": []
  },
  "rejected": false,
  "rejection_reason": null,
  "run_id": "7de45273-69bb-4a7a-8bfe-73ace34d001f",
  "stage3_signals": {
    "alias_found": true,
    "alias_match_roles": [
      {
        "display_name": "Android Developer",
        "kra_matches": null,
        "matched_count": null,
        "matched_skills": null,
        "role_id": 4,
        "score": 1.0,
        "slug": "android-engineer",
        "total_count": null
      },
      {
        "display_name": "Native Mobile Developer",
        "kra_matches": null,
        "matched_count": null,
        "matched_skills": null,
        "role_id": 75,
        "score": 1.0,
        "slug": "native-mobile-developer",
        "total_count": null
      }
    ],
    "kra_match_roles": [
      {
        "display_name": "Hybrid Mobile Developer",
        "kra_matches": [
          {
            "kra_text": "Manages build configurations, code signing certificates, and app store release submissions for both Google Play and Apple App Store.",
            "sentence": "Proven experience with App Store and Google Play deployment processes, including provisioning, certificate management, release automation, beta testing and compliance.",
            "similarity": 0.7115
          },
          {
            "kra_text": "Implements cross-platform mobile features using React Native, Flutter, or Ionic targeting both iOS and Android platforms from a shared codebase.",
            "sentence": "Experience developing reusable or cross-platform components using technologies like Kotlin Multiplatform, , React Native or Flutter.",
            "similarity": 0.7021
          },
          {
            "kra_text": "Integrates cross-platform mobile apps with REST and GraphQL backend APIs, handling JWT authentication, token refresh, and error recovery.",
            "sentence": "Integrate apps with backend APIs, ensuring secure data handling and high performance.",
            "similarity": 0.6364
          }
        ],
        "matched_count": null,
        "matched_skills": null,
        "role_id": 11,
        "score": 0.6833,
        "slug": "hybrid-mobile-developer",
        "total_count": null
      },
      {
        "display_name": "Android Developer",
        "kra_matches": [
          {
            "kra_text": "Develops native Android features using Kotlin or Java with Android SDK, Jetpack Compose, and Material Design components following platform conventions.",
            "sentence": "Experience developing reusable or cross-platform components using technologies like Kotlin Multiplatform, , React Native or Flutter.",
            "similarity": 0.6604
          },
          {
            "kra_text": "Develops native Android features using Kotlin or Java with Android SDK, Jetpack Compose, and Material Design components following platform conventions.",
            "sentence": "Lead development and delivery of cross-platform (Kotlin Multiplatform, React Native) mobile applications.",
            "similarity": 0.6099
          },
          {
            "kra_text": "Integrates Android apps with RESTful backend APIs using Retrofit and OkHttp, handling JSON parsing, authentication headers, and network error recovery.",
            "sentence": "Integrate apps with backend APIs, ensuring secure data handling and high performance.",
            "similarity": 0.6085
          }
        ],
        "matched_count": null,
        "matched_skills": null,
        "role_id": 4,
        "score": 0.6263,
        "slug": "android-engineer",
        "total_count": null
      },
      {
        "display_name": "Flutter Developer",
        "kra_matches": [
          {
            "kra_text": "collaborate with design, product, and backend teams",
            "sentence": "Collaborate with cross-functional teams to develop and maintain application.",
            "similarity": 0.6647
          },
          {
            "kra_text": "integrate external APIs and data sources",
            "sentence": "Integrate apps with backend APIs, ensuring secure data handling and high performance.",
            "similarity": 0.6153
          },
          {
            "kra_text": "translate product and design requirements",
            "sentence": "Translate UI/UX designs into clean, efficient, and reusable code following best practices.",
            "similarity": 0.552
          }
        ],
        "matched_count": null,
        "matched_skills": null,
        "role_id": 74,
        "score": 0.6107,
        "slug": "flutter-developer",
        "total_count": null
      },
      {
        "display_name": "React Native Developer",
        "kra_matches": [
          {
            "kra_text": "integrate backend APIs",
            "sentence": "Integrate apps with backend APIs, ensuring secure data handling and high performance.",
            "similarity": 0.7607
          },
          {
            "kra_text": "maintain code quality",
            "sentence": "Mentor junior engineers, enforce coding standards, and promote best practices in mobile development.",
            "similarity": 0.5012
          },
          {
            "kra_text": "maintain code quality",
            "sentence": "Translate UI/UX designs into clean, efficient, and reusable code following best practices.",
            "similarity": 0.4955
          }
        ],
        "matched_count": null,
        "matched_skills": null,
        "role_id": 73,
        "score": 0.5858,
        "slug": "react-native-developer",
        "total_count": null
      },
      {
        "display_name": "Frontend Developer",
        "kra_matches": [
          {
            "kra_text": "Maintains reusable component libraries, design system tokens, and shared UI patterns across the application to ensure visual and behavioral consistency.",
            "sentence": "Translate UI/UX designs into clean, efficient, and reusable code following best practices.",
            "similarity": 0.5947
          },
          {
            "kra_text": "Integrates frontend views with RESTful or GraphQL backend APIs, handling async data fetching, loading states, error boundaries, and cache invalidation.",
            "sentence": "Integrate apps with backend APIs, ensuring secure data handling and high performance.",
            "similarity": 0.5834
          },
          {
            "kra_text": "Collaborates with UX designers to refine interaction details, animations, responsive breakpoints, and micro-interaction behavior.",
            "sentence": "Must be able to demonstrate strong knowledge of UI design principles, patterns, and best practices.",
            "similarity": 0.533
          }
        ],
        "matched_count": null,
        "matched_skills": null,
        "role_id": 7,
        "score": 0.5704,
        "slug": "frontend-engineer",
        "total_count": null
      }
    ],
    "skill_match_roles": [
      {
        "display_name": "Fullstack Developer",
        "kra_matches": null,
        "matched_count": 2,
        "matched_skills": [
          "API",
          "React Native"
        ],
        "role_id": 15,
        "score": 0.2222,
        "slug": "full-stack-engineer",
        "total_count": 9
      },
      {
        "display_name": "Web Developer",
        "kra_matches": null,
        "matched_count": 2,
        "matched_skills": [
          "API",
          "React Native"
        ],
        "role_id": 25,
        "score": 0.2222,
        "slug": "web-developer",
        "total_count": 9
      },
      {
        "display_name": "Frontend Developer",
        "kra_matches": null,
        "matched_count": 2,
        "matched_skills": [
          "API",
          "React Native"
        ],
        "role_id": 7,
        "score": 0.2222,
        "slug": "frontend-engineer",
        "total_count": 9
      },
      {
        "display_name": "Hybrid Mobile Developer",
        "kra_matches": null,
        "matched_count": 2,
        "matched_skills": [
          "React Native",
          "SQLite"
        ],
        "role_id": 11,
        "score": 0.2222,
        "slug": "hybrid-mobile-developer",
        "total_count": 9
      },
      {
        "display_name": "React Native Developer",
        "kra_matches": null,
        "matched_count": 2,
        "matched_skills": [
          "React Native",
          "SQLite"
        ],
        "role_id": 73,
        "score": 0.2222,
        "slug": "react-native-developer",
        "total_count": 9
      }
    ]
  },
  "stage4_decision": {
    "alias_collision_detected": false,
    "case": "DOMAIN",
    "chosen_role": {
      "display_name": "Hybrid Mobile Developer",
      "kra_matches": null,
      "matched_count": null,
      "matched_skills": null,
      "role_id": 11,
      "score": 0.98,
      "slug": "hybrid-mobile-developer",
      "total_count": null
    },
    "confidence": 0.98,
    "is_new_role": false,
    "llm2_fired": false,
    "llm2_reasoning": null,
    "matched_dimensions": [
      "Cross-platform mobile application development",
      "Mobile app lifecycle ownership",
      "UI/UX implementation",
      "Mobile performance optimization",
      "Mobile security and secure data handling",
      "Store release and deployment management",
      "Cross-functional collaboration and mentoring",
      "Multi-country, multilingual app support"
    ],
    "matched_kras": [
      "Drive development and enhancement of mobile clients",
      "Design the entire app lifecycle from PoC to delivery",
      "Lead development and delivery of cross-platform mobile applications",
      "Translate UI/UX designs into clean, efficient, reusable code",
      "Collaborate with cross-functional teams to develop and maintain application",
      "Mentor junior engineers, enforce coding standards",
      "Integrate apps with backend APIs",
      "Debug, profile, and optimize performance",
      "Ensure usability, performance, security across both platforms"
    ],
    "matched_skills": [
      "Kotlin Multiplatform",
      "React Native",
      "Flutter",
      "App Store",
      "Google Play",
      "provisioning",
      "certificate management",
      "release automation",
      "beta testing",
      "SQLite",
      "web services",
      "API integration",
      "Object-Oriented Programming (OOP)",
      "UI design principles",
      "internationalization/localization"
    ],
    "new_role_display_name": null,
    "new_role_slug": null,
    "queued": false,
    "reasoning": "Domain=Software Engineering \u2192 sub-role react-native-developer; The JD is centered on cross-platform mobile app development with React Native, Kotlin Multiplatform, and deployment to iOS/Android stores, which best matches Hybrid Mobile Developer.",
    "sub_role": {
      "confidence": 0.94,
      "display_name": "React Native Developer",
      "reasoning": "The JD repeatedly emphasizes React Native and cross-platform mobile development, while Flutter and Ionic are only incidental mentions.",
      "role_id": 73,
      "slug": "react-native-developer"
    }
  },
  "stage5_updates": {
    "centroid_n_after": 82,
    "centroid_updated": true,
    "collision_log_id": null,
    "new_kra_attached": null,
    "new_skills_attached": [
      {
        "is_primary": true,
        "queue_id": 23354,
        "role_display_name": "Hybrid Mobile Developer",
        "role_slug": "hybrid-mobile-developer",
        "skill_name": "Kotlin Multiplatform",
        "status": "pending"
      },
      {
        "is_primary": true,
        "queue_id": 23355,
        "role_display_name": "Hybrid Mobile Developer",
        "role_slug": "hybrid-mobile-developer",
        "skill_name": "App Store",
        "status": "pending"
      },
      {
        "is_primary": true,
        "queue_id": 23356,
        "role_display_name": "Hybrid Mobile Developer",
        "role_slug": "hybrid-mobile-developer",
        "skill_name": "Google Play",
        "status": "pending"
      },
      {
        "is_primary": true,
        "queue_id": 23357,
        "role_display_name": "Hybrid Mobile Developer",
        "role_slug": "hybrid-mobile-developer",
        "skill_name": "Object-Oriented Programming",
        "status": "pending"
      },
      {
        "is_primary": false,
        "queue_id": 23358,
        "role_display_name": "Hybrid Mobile Developer",
        "role_slug": "hybrid-mobile-developer",
        "skill_name": "Internationalization",
        "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": 2541,
      "existing_alias_text": "Android",
      "input_term": "Android",
      "matched_canonical": {
        "category_id": 9,
        "display_name": "Android",
        "id": 1595,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "PLATFORM",
        "slug": "android",
        "sub_category_id": 1201,
        "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": 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": 1657,
      "existing_alias_text": "React Native",
      "input_term": "React Native",
      "matched_canonical": {
        "category_id": 5,
        "display_name": "React Native",
        "id": 1040,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "FRAMEWORK",
        "slug": "react-native",
        "sub_category_id": 2146,
        "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": 1659,
      "existing_alias_text": "flutter",
      "input_term": "Flutter",
      "matched_canonical": {
        "category_id": 5,
        "display_name": "Flutter",
        "id": 1041,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "FRAMEWORK",
        "slug": "flutter",
        "sub_category_id": 341,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "matched_via": "alias"
    },
    {
      "alias_persist_skipped_reason": "TODO: REMOVE AFTER TESTING \u2014 alias DB write disabled",
      "alias_persisted": false,
      "existing_alias_id": 1711,
      "existing_alias_text": "Apple App Store",
      "input_term": "App Store",
      "matched_canonical": {
        "category_id": 9,
        "display_name": "Apple App Store",
        "id": 1085,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "PLATFORM",
        "slug": "apple-app-store",
        "sub_category_id": 347,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "matched_via": "embedding_alias"
    },
    {
      "alias_persist_skipped_reason": "TODO: REMOVE AFTER TESTING \u2014 alias DB write disabled",
      "alias_persisted": false,
      "existing_alias_id": 1712,
      "existing_alias_text": "Google Play Store",
      "input_term": "Google Play",
      "matched_canonical": {
        "category_id": 9,
        "display_name": "Google Play Store",
        "id": 1086,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "PLATFORM",
        "slug": "google-play-store",
        "sub_category_id": 347,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "matched_via": "embedding_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": 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": 828,
      "existing_alias_text": "localization",
      "input_term": "Localization",
      "matched_canonical": {
        "category_id": 8,
        "display_name": "Localization",
        "id": 502,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "METHODOLOGY",
        "slug": "localization",
        "sub_category_id": 2258,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "matched_via": "alias"
    }
  ],
  "candidate_roles": [
    {
      "display_name": "React Native Developer",
      "id": 73,
      "rationale": null,
      "role_archetype": "Engineering",
      "slug": "react-native-developer",
      "source": "db"
    },
    {
      "display_name": "Frontend Developer",
      "id": 7,
      "rationale": null,
      "role_archetype": null,
      "slug": "frontend-engineer",
      "source": "db"
    },
    {
      "display_name": "Fullstack Developer",
      "id": 15,
      "rationale": null,
      "role_archetype": null,
      "slug": "full-stack-engineer",
      "source": "db"
    },
    {
      "display_name": "Fullstack Developer",
      "id": 435,
      "rationale": null,
      "role_archetype": "Engineering",
      "slug": "fullstack-developer",
      "source": "db"
    },
    {
      "display_name": "Hybrid Mobile Developer",
      "id": 11,
      "rationale": null,
      "role_archetype": null,
      "slug": "hybrid-mobile-developer",
      "source": "db"
    },
    {
      "display_name": "Ionic Developer",
      "id": 434,
      "rationale": null,
      "role_archetype": null,
      "slug": "ionic-developer",
      "source": "db"
    },
    {
      "display_name": "Web Developer",
      "id": 25,
      "rationale": null,
      "role_archetype": null,
      "slug": "web-developer",
      "source": "db"
    },
    {
      "display_name": "Flutter Developer",
      "id": 74,
      "rationale": null,
      "role_archetype": "Engineering",
      "slug": "flutter-developer",
      "source": "db"
    },
    {
      "display_name": "Android Developer",
      "id": 4,
      "rationale": null,
      "role_archetype": null,
      "slug": "android-engineer",
      "source": "db"
    },
    {
      "display_name": "Native Mobile Developer",
      "id": 75,
      "rationale": null,
      "role_archetype": "Engineering",
      "slug": "native-mobile-developer",
      "source": "db"
    },
    {
      "display_name": "iOS Developer",
      "id": 6,
      "rationale": null,
      "role_archetype": null,
      "slug": "ios-engineer",
      "source": "db"
    },
    {
      "display_name": "Angular Frontend Developer",
      "id": 90,
      "rationale": null,
      "role_archetype": "Engineering",
      "slug": "angular-frontend-developer",
      "source": "db"
    },
    {
      "display_name": "React Frontend Developer",
      "id": 89,
      "rationale": null,
      "role_archetype": "Engineering",
      "slug": "react-frontend-developer",
      "source": "db"
    },
    {
      "display_name": "Svelte Frontend Developer",
      "id": 92,
      "rationale": null,
      "role_archetype": "Engineering",
      "slug": "svelte-frontend-developer",
      "source": "db"
    },
    {
      "display_name": "Vue Frontend Developer",
      "id": 91,
      "rationale": null,
      "role_archetype": "Engineering",
      "slug": "vue-frontend-developer",
      "source": "db"
    }
  ],
  "chosen_role": {
    "display_name": "Hybrid Mobile Developer",
    "id": 11,
    "rationale": "Domain=Software Engineering \u2192 sub-role react-native-developer; The JD is centered on cross-platform mobile app development with React Native, Kotlin Multiplatform, and deployment to iOS/Android stores, which best matches Hybrid Mobile Developer.",
    "role_archetype": null,
    "slug": "hybrid-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": "Android",
      "llm_role": null,
      "roles_from_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": "iOS",
      "llm_role": null,
      "roles_from_db": []
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "Cross-Platform Mobile UI Frameworks",
        "id": 319,
        "rationale": "Frameworks, rendering models, and component libraries used to build shared mobile screens, layouts, and interactive experiences across platforms. This includes React Native and related tooling such as React Native CLI and Expo, as well as cross-platform UI libraries and interaction patterns like React Native Paper, NativeBase, gesture handlers, and animated components; it also covers comparable hybrid mobile UI frameworks such as Flutter. Excludes browser-only frontend frameworks and native platform UI toolkits such as SwiftUI, UIKit, Jetpack Compose, and Android Views.",
        "slug": "cross-platform-mobile-ui-frameworks",
        "source": "db"
      },
      "input_skill": "React Native",
      "llm_role": null,
      "roles_from_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": "UI Frameworks and Rendering",
        "id": 115,
        "rationale": "Component frameworks and rendering models used to build browser screens, reusable UI, and interactive client flows. This is a core cluster because frontend engineers spend much of their time composing and updating view hierarchies.",
        "slug": "ui-frameworks-and-rendering",
        "source": "db"
      },
      "input_skill": "React Native",
      "llm_role": null,
      "roles_from_db": [
        {
          "display_name": "Frontend Developer",
          "id": 7,
          "rationale": null,
          "role_archetype": null,
          "slug": "frontend-engineer",
          "source": "db"
        },
        {
          "display_name": "Fullstack Developer",
          "id": 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": "Hybrid Mobile Developer",
          "id": 11,
          "rationale": null,
          "role_archetype": null,
          "slug": "hybrid-mobile-developer",
          "source": "db"
        },
        {
          "display_name": "Ionic Developer",
          "id": 434,
          "rationale": null,
          "role_archetype": null,
          "slug": "ionic-developer",
          "source": "db"
        },
        {
          "display_name": "Web Developer",
          "id": 25,
          "rationale": null,
          "role_archetype": null,
          "slug": "web-developer",
          "source": "db"
        }
      ]
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "Flutter UI Framework",
        "id": 312,
        "rationale": "Flutter framework primitives used to build screens, reusable components, and interactive client experiences. This cluster is coherent because Flutter developers spend much of their time composing widgets and managing rendering behavior.",
        "slug": "flutter-ui-framework",
        "source": "db"
      },
      "input_skill": "Flutter",
      "llm_role": null,
      "roles_from_db": [
        {
          "display_name": "Flutter Developer",
          "id": 74,
          "rationale": null,
          "role_archetype": "Engineering",
          "slug": "flutter-developer",
          "source": "db"
        }
      ]
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "UI Frameworks and Rendering",
        "id": 115,
        "rationale": "Component frameworks and rendering models used to build browser screens, reusable UI, and interactive client flows. This is a core cluster because frontend engineers spend much of their time composing and updating view hierarchies.",
        "slug": "ui-frameworks-and-rendering",
        "source": "db"
      },
      "input_skill": "Flutter",
      "llm_role": null,
      "roles_from_db": [
        {
          "display_name": "Frontend Developer",
          "id": 7,
          "rationale": null,
          "role_archetype": null,
          "slug": "frontend-engineer",
          "source": "db"
        },
        {
          "display_name": "Fullstack Developer",
          "id": 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": "Hybrid Mobile Developer",
          "id": 11,
          "rationale": null,
          "role_archetype": null,
          "slug": "hybrid-mobile-developer",
          "source": "db"
        },
        {
          "display_name": "Ionic Developer",
          "id": 434,
          "rationale": null,
          "role_archetype": null,
          "slug": "ionic-developer",
          "source": "db"
        },
        {
          "display_name": "Web Developer",
          "id": 25,
          "rationale": null,
          "role_archetype": null,
          "slug": "web-developer",
          "source": "db"
        }
      ]
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "Mobile Vendor Platforms",
        "id": 172,
        "rationale": "Knowledge of major mobile vendor platforms and their services for app distribution, testing, and analytics.",
        "slug": "mobile-vendor-platforms",
        "source": "db"
      },
      "input_skill": "App Store",
      "llm_role": null,
      "roles_from_db": [
        {
          "display_name": "Hybrid Mobile Developer",
          "id": 11,
          "rationale": null,
          "role_archetype": null,
          "slug": "hybrid-mobile-developer",
          "source": "db"
        }
      ]
    },
    {
      "dimension": {
        "difficulty_hint": "well_known",
        "display_name": "Mobile Vendor Platforms",
        "id": 172,
        "rationale": "Knowledge of major mobile vendor platforms and their services for app distribution, testing, and analytics.",
        "slug": "mobile-vendor-platforms",
        "source": "db"
      },
      "input_skill": "Google Play",
      "llm_role": null,
      "roles_from_db": [
        {
          "display_name": "Hybrid Mobile Developer",
          "id": 11,
          "rationale": null,
          "role_archetype": null,
          "slug": "hybrid-mobile-developer",
          "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": "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": "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": "Accessibility and Internationalization",
        "id": 93,
        "rationale": "Client experience practices that make Ionic apps usable across assistive technologies, locales, and device settings. This is a distinct cluster because shared mobile/browser apps must support keyboard, screen reader, and multilingual behavior.",
        "slug": "accessibility-and-internationalization",
        "source": "db"
      },
      "input_skill": "Localization",
      "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": "Ionic Developer",
          "id": 434,
          "rationale": null,
          "role_archetype": null,
          "slug": "ionic-developer",
          "source": "db"
        },
        {
          "display_name": "Native Mobile Developer",
          "id": 75,
          "rationale": null,
          "role_archetype": "Engineering",
          "slug": "native-mobile-developer",
          "source": "db"
        },
        {
          "display_name": "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_final_skills": [
    "Android",
    "iOS",
    "Kotlin Multiplatform",
    "React Native",
    "Flutter",
    "App Store",
    "Google Play",
    "SQLite",
    "API",
    "Object-Oriented Programming",
    "Internationalization",
    "Localization"
  ],
  "input_llm_skills": [
    "Android",
    "iOS",
    "Kotlin Multiplatform",
    "React Native",
    "Flutter",
    "App Store",
    "Google Play",
    "SQLite",
    "API",
    "Object-Oriented Programming",
    "Internationalization",
    "Localization"
  ],
  "new_aliases_persisted": 0,
  "run_id": "7de45273-69bb-4a7a-8bfe-73ace34d001f",
  "skills_detail": [
    {
      "aliases_in_db": [
        {
          "alias_text": "Android",
          "alias_type": "CANONICAL",
          "id": 2541,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        }
      ],
      "canonical": {
        "category_id": 9,
        "display_name": "Android",
        "id": 1595,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "PLATFORM",
        "slug": "android",
        "sub_category_id": 1201,
        "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": "Android",
          "llm_role": null,
          "roles_from_db": []
        }
      ],
      "input_skill": "Android",
      "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": "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": [],
      "canonical": null,
      "dimensions": [],
      "input_skill": "Kotlin Multiplatform",
      "matched_via": null,
      "new_alias_persisted": false,
      "new_alias_text": null,
      "new_skill_meta": {
        "derived": {
          "category": "Programming Languages",
          "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": "kotlin-multiplatform",
        "split_log": [],
        "typed": null,
        "warnings": []
      },
      "source_tag": "llm",
      "was_in_llm_skills": true
    },
    {
      "aliases_in_db": [
        {
          "alias_text": "React Native",
          "alias_type": "CANONICAL",
          "id": 1657,
          "is_primary": true,
          "match_strategy": "CASE_INSENSITIVE"
        }
      ],
      "canonical": {
        "category_id": 5,
        "display_name": "React Native",
        "id": 1040,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "FRAMEWORK",
        "slug": "react-native",
        "sub_category_id": 2146,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "dimensions": [
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "Cross-Platform Mobile UI Frameworks",
            "id": 319,
            "rationale": "Frameworks, rendering models, and component libraries used to build shared mobile screens, layouts, and interactive experiences across platforms. This includes React Native and related tooling such as React Native CLI and Expo, as well as cross-platform UI libraries and interaction patterns like React Native Paper, NativeBase, gesture handlers, and animated components; it also covers comparable hybrid mobile UI frameworks such as Flutter. Excludes browser-only frontend frameworks and native platform UI toolkits such as SwiftUI, UIKit, Jetpack Compose, and Android Views.",
            "slug": "cross-platform-mobile-ui-frameworks",
            "source": "db"
          },
          "input_skill": "React Native",
          "llm_role": null,
          "roles_from_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": "UI Frameworks and Rendering",
            "id": 115,
            "rationale": "Component frameworks and rendering models used to build browser screens, reusable UI, and interactive client flows. This is a core cluster because frontend engineers spend much of their time composing and updating view hierarchies.",
            "slug": "ui-frameworks-and-rendering",
            "source": "db"
          },
          "input_skill": "React Native",
          "llm_role": null,
          "roles_from_db": [
            {
              "display_name": "Frontend Developer",
              "id": 7,
              "rationale": null,
              "role_archetype": null,
              "slug": "frontend-engineer",
              "source": "db"
            },
            {
              "display_name": "Fullstack Developer",
              "id": 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": "Hybrid Mobile Developer",
              "id": 11,
              "rationale": null,
              "role_archetype": null,
              "slug": "hybrid-mobile-developer",
              "source": "db"
            },
            {
              "display_name": "Ionic Developer",
              "id": 434,
              "rationale": null,
              "role_archetype": null,
              "slug": "ionic-developer",
              "source": "db"
            },
            {
              "display_name": "Web Developer",
              "id": 25,
              "rationale": null,
              "role_archetype": null,
              "slug": "web-developer",
              "source": "db"
            }
          ]
        }
      ],
      "input_skill": "React Native",
      "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": "Flutter",
          "alias_type": "CANONICAL",
          "id": 1658,
          "is_primary": true,
          "match_strategy": "CASE_INSENSITIVE"
        },
        {
          "alias_text": "Flutter 3",
          "alias_type": "VERSION",
          "id": 4372,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        },
        {
          "alias_text": "Flutter 3.x",
          "alias_type": "VERSION",
          "id": 4373,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        },
        {
          "alias_text": "Flutter3",
          "alias_type": "VERSION",
          "id": 4371,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        },
        {
          "alias_text": "flutter",
          "alias_type": "VERSION",
          "id": 1659,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        },
        {
          "alias_text": "flutter 3",
          "alias_type": "VERSION",
          "id": 1661,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        },
        {
          "alias_text": "flutter 3.x",
          "alias_type": "VERSION",
          "id": 1662,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        },
        {
          "alias_text": "flutter3",
          "alias_type": "VERSION",
          "id": 1660,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        }
      ],
      "canonical": {
        "category_id": 5,
        "display_name": "Flutter",
        "id": 1041,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "FRAMEWORK",
        "slug": "flutter",
        "sub_category_id": 341,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "dimensions": [
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "Flutter UI Framework",
            "id": 312,
            "rationale": "Flutter framework primitives used to build screens, reusable components, and interactive client experiences. This cluster is coherent because Flutter developers spend much of their time composing widgets and managing rendering behavior.",
            "slug": "flutter-ui-framework",
            "source": "db"
          },
          "input_skill": "Flutter",
          "llm_role": null,
          "roles_from_db": [
            {
              "display_name": "Flutter Developer",
              "id": 74,
              "rationale": null,
              "role_archetype": "Engineering",
              "slug": "flutter-developer",
              "source": "db"
            }
          ]
        },
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "UI Frameworks and Rendering",
            "id": 115,
            "rationale": "Component frameworks and rendering models used to build browser screens, reusable UI, and interactive client flows. This is a core cluster because frontend engineers spend much of their time composing and updating view hierarchies.",
            "slug": "ui-frameworks-and-rendering",
            "source": "db"
          },
          "input_skill": "Flutter",
          "llm_role": null,
          "roles_from_db": [
            {
              "display_name": "Frontend Developer",
              "id": 7,
              "rationale": null,
              "role_archetype": null,
              "slug": "frontend-engineer",
              "source": "db"
            },
            {
              "display_name": "Fullstack Developer",
              "id": 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": "Hybrid Mobile Developer",
              "id": 11,
              "rationale": null,
              "role_archetype": null,
              "slug": "hybrid-mobile-developer",
              "source": "db"
            },
            {
              "display_name": "Ionic Developer",
              "id": 434,
              "rationale": null,
              "role_archetype": null,
              "slug": "ionic-developer",
              "source": "db"
            },
            {
              "display_name": "Web Developer",
              "id": 25,
              "rationale": null,
              "role_archetype": null,
              "slug": "web-developer",
              "source": "db"
            }
          ]
        }
      ],
      "input_skill": "Flutter",
      "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": "Apple App Store",
          "alias_type": "CANONICAL",
          "id": 1711,
          "is_primary": true,
          "match_strategy": "CASE_INSENSITIVE"
        }
      ],
      "canonical": {
        "category_id": 9,
        "display_name": "Apple App Store",
        "id": 1085,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "PLATFORM",
        "slug": "apple-app-store",
        "sub_category_id": 347,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "dimensions": [
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "Mobile Vendor Platforms",
            "id": 172,
            "rationale": "Knowledge of major mobile vendor platforms and their services for app distribution, testing, and analytics.",
            "slug": "mobile-vendor-platforms",
            "source": "db"
          },
          "input_skill": "App Store",
          "llm_role": null,
          "roles_from_db": [
            {
              "display_name": "Hybrid Mobile Developer",
              "id": 11,
              "rationale": null,
              "role_archetype": null,
              "slug": "hybrid-mobile-developer",
              "source": "db"
            }
          ]
        }
      ],
      "input_skill": "App Store",
      "matched_via": "embedding_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": "Google Play Store",
          "alias_type": "CANONICAL",
          "id": 1712,
          "is_primary": true,
          "match_strategy": "CASE_INSENSITIVE"
        }
      ],
      "canonical": {
        "category_id": 9,
        "display_name": "Google Play Store",
        "id": 1086,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "PLATFORM",
        "slug": "google-play-store",
        "sub_category_id": 347,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "dimensions": [
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "Mobile Vendor Platforms",
            "id": 172,
            "rationale": "Knowledge of major mobile vendor platforms and their services for app distribution, testing, and analytics.",
            "slug": "mobile-vendor-platforms",
            "source": "db"
          },
          "input_skill": "Google Play",
          "llm_role": null,
          "roles_from_db": [
            {
              "display_name": "Hybrid Mobile Developer",
              "id": 11,
              "rationale": null,
              "role_archetype": null,
              "slug": "hybrid-mobile-developer",
              "source": "db"
            }
          ]
        }
      ],
      "input_skill": "Google Play",
      "matched_via": "embedding_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": "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": [],
      "canonical": null,
      "dimensions": [],
      "input_skill": "Object-Oriented Programming",
      "matched_via": null,
      "new_alias_persisted": false,
      "new_alias_text": null,
      "new_skill_meta": {
        "derived": {
          "category": "Concepts",
          "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": "object-oriented-programming",
        "split_log": [],
        "typed": null,
        "warnings": []
      },
      "source_tag": "llm",
      "was_in_llm_skills": true
    },
    {
      "aliases_in_db": [],
      "canonical": null,
      "dimensions": [],
      "input_skill": "Internationalization",
      "matched_via": null,
      "new_alias_persisted": false,
      "new_alias_text": null,
      "new_skill_meta": {
        "derived": {
          "category": "Concepts",
          "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": "internationalization",
        "split_log": [],
        "typed": null,
        "warnings": []
      },
      "source_tag": "llm",
      "was_in_llm_skills": true
    },
    {
      "aliases_in_db": [
        {
          "alias_text": "Localization",
          "alias_type": "CANONICAL",
          "id": 4428,
          "is_primary": true,
          "match_strategy": "CASE_INSENSITIVE"
        },
        {
          "alias_text": "localization",
          "alias_type": "CANONICAL",
          "id": 828,
          "is_primary": false,
          "match_strategy": "CASE_INSENSITIVE"
        }
      ],
      "canonical": {
        "category_id": 8,
        "display_name": "Localization",
        "id": 502,
        "is_also_category": false,
        "is_extractable": true,
        "skill_nature": "METHODOLOGY",
        "slug": "localization",
        "sub_category_id": 2258,
        "typical_lifespan": "EVERGREEN",
        "volatility": "STABLE"
      },
      "dimensions": [
        {
          "dimension": {
            "difficulty_hint": "well_known",
            "display_name": "Accessibility and Internationalization",
            "id": 93,
            "rationale": "Client experience practices that make Ionic apps usable across assistive technologies, locales, and device settings. This is a distinct cluster because shared mobile/browser apps must support keyboard, screen reader, and multilingual behavior.",
            "slug": "accessibility-and-internationalization",
            "source": "db"
          },
          "input_skill": "Localization",
          "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": "Ionic Developer",
              "id": 434,
              "rationale": null,
              "role_archetype": null,
              "slug": "ionic-developer",
              "source": "db"
            },
            {
              "display_name": "Native Mobile Developer",
              "id": 75,
              "rationale": null,
              "role_archetype": "Engineering",
              "slug": "native-mobile-developer",
              "source": "db"
            },
            {
              "display_name": "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": "Localization",
      "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": [
    "Kotlin Multiplatform",
    "Object-Oriented Programming",
    "Internationalization"
  ]
}
API 3 — final-role-output
{
  "chosen_role": {
    "display_name": "Hybrid Mobile Developer",
    "id": 11,
    "rationale": "Domain=Software Engineering \u2192 sub-role react-native-developer; The JD is centered on cross-platform mobile app development with React Native, Kotlin Multiplatform, and deployment to iOS/Android stores, which best matches Hybrid Mobile Developer.",
    "role_archetype": null,
    "slug": "hybrid-mobile-developer",
    "source": "db"
  },
  "chosen_role_resolution": "in_db",
  "final_input_skills": [
    {
      "skill": "Android",
      "tag": "in_db"
    },
    {
      "skill": "iOS",
      "tag": "in_db"
    },
    {
      "skill": "Kotlin Multiplatform",
      "tag": "new"
    },
    {
      "skill": "React Native",
      "tag": "in_db"
    },
    {
      "skill": "Flutter",
      "tag": "in_db"
    },
    {
      "skill": "App Store",
      "tag": "in_db"
    },
    {
      "skill": "Google Play",
      "tag": "in_db"
    },
    {
      "skill": "SQLite",
      "tag": "in_db"
    },
    {
      "skill": "API",
      "tag": "in_db"
    },
    {
      "skill": "Object-Oriented Programming",
      "tag": "new"
    },
    {
      "skill": "Internationalization",
      "tag": "new"
    },
    {
      "skill": "Localization",
      "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": 11,
        "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": "Android",
        "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": 1595,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 11,
        "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": 11,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "Cross-Platform Mobile UI Frameworks",
          "id": 319,
          "rationale": "Frameworks, rendering models, and component libraries used to build shared mobile screens, layouts, and interactive experiences across platforms. This includes React Native and related tooling such as React Native CLI and Expo, as well as cross-platform UI libraries and interaction patterns like React Native Paper, NativeBase, gesture handlers, and animated components; it also covers comparable hybrid mobile UI frameworks such as Flutter. Excludes browser-only frontend frameworks and native platform UI toolkits such as SwiftUI, UIKit, Jetpack Compose, and Android Views.",
          "slug": "cross-platform-mobile-ui-frameworks",
          "source": "db"
        },
        "dimension_id": 319,
        "input_skill": "React Native",
        "llm_role": null,
        "matched_chosen_role": false,
        "outcome_line": "Existing dimension (library) \u00b7 Role\u2194dimension skipped (dimension not under chosen role)",
        "role_dimension_saved": false,
        "roles_from_db": [
          {
            "display_name": "React Native Developer",
            "id": 73,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "react-native-developer",
            "source": "db"
          }
        ],
        "skill_dimension_saved": true,
        "skill_id": 1040,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 11,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "UI Frameworks and Rendering",
          "id": 115,
          "rationale": "Component frameworks and rendering models used to build browser screens, reusable UI, and interactive client flows. This is a core cluster because frontend engineers spend much of their time composing and updating view hierarchies.",
          "slug": "ui-frameworks-and-rendering",
          "source": "db"
        },
        "dimension_id": 115,
        "input_skill": "React Native",
        "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": "Frontend Developer",
            "id": 7,
            "rationale": null,
            "role_archetype": null,
            "slug": "frontend-engineer",
            "source": "db"
          },
          {
            "display_name": "Fullstack Developer",
            "id": 15,
            "rationale": null,
            "role_archetype": null,
            "slug": "full-stack-engineer",
            "source": "db"
          },
          {
            "display_name": "Fullstack Developer",
            "id": 435,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "fullstack-developer",
            "source": "db"
          },
          {
            "display_name": "Hybrid Mobile Developer",
            "id": 11,
            "rationale": null,
            "role_archetype": null,
            "slug": "hybrid-mobile-developer",
            "source": "db"
          },
          {
            "display_name": "Ionic Developer",
            "id": 434,
            "rationale": null,
            "role_archetype": null,
            "slug": "ionic-developer",
            "source": "db"
          },
          {
            "display_name": "Web Developer",
            "id": 25,
            "rationale": null,
            "role_archetype": null,
            "slug": "web-developer",
            "source": "db"
          }
        ],
        "skill_dimension_saved": true,
        "skill_id": 1040,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 11,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "Flutter UI Framework",
          "id": 312,
          "rationale": "Flutter framework primitives used to build screens, reusable components, and interactive client experiences. This cluster is coherent because Flutter developers spend much of their time composing widgets and managing rendering behavior.",
          "slug": "flutter-ui-framework",
          "source": "db"
        },
        "dimension_id": 312,
        "input_skill": "Flutter",
        "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": "Flutter Developer",
            "id": 74,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "flutter-developer",
            "source": "db"
          }
        ],
        "skill_dimension_saved": true,
        "skill_id": 1041,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 11,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "UI Frameworks and Rendering",
          "id": 115,
          "rationale": "Component frameworks and rendering models used to build browser screens, reusable UI, and interactive client flows. This is a core cluster because frontend engineers spend much of their time composing and updating view hierarchies.",
          "slug": "ui-frameworks-and-rendering",
          "source": "db"
        },
        "dimension_id": 115,
        "input_skill": "Flutter",
        "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": "Frontend Developer",
            "id": 7,
            "rationale": null,
            "role_archetype": null,
            "slug": "frontend-engineer",
            "source": "db"
          },
          {
            "display_name": "Fullstack Developer",
            "id": 15,
            "rationale": null,
            "role_archetype": null,
            "slug": "full-stack-engineer",
            "source": "db"
          },
          {
            "display_name": "Fullstack Developer",
            "id": 435,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "fullstack-developer",
            "source": "db"
          },
          {
            "display_name": "Hybrid Mobile Developer",
            "id": 11,
            "rationale": null,
            "role_archetype": null,
            "slug": "hybrid-mobile-developer",
            "source": "db"
          },
          {
            "display_name": "Ionic Developer",
            "id": 434,
            "rationale": null,
            "role_archetype": null,
            "slug": "ionic-developer",
            "source": "db"
          },
          {
            "display_name": "Web Developer",
            "id": 25,
            "rationale": null,
            "role_archetype": null,
            "slug": "web-developer",
            "source": "db"
          }
        ],
        "skill_dimension_saved": true,
        "skill_id": 1041,
        "skill_tag": "in_db",
        "skipped_reason": null
      },
      {
        "chosen_role_id": 11,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "Mobile Vendor Platforms",
          "id": 172,
          "rationale": "Knowledge of major mobile vendor platforms and their services for app distribution, testing, and analytics.",
          "slug": "mobile-vendor-platforms",
          "source": "db"
        },
        "dimension_id": 172,
        "input_skill": "App Store",
        "llm_role": null,
        "matched_chosen_role": true,
        "outcome_line": "Skipped \u2014 no persistable v3 meta for new skill",
        "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"
          }
        ],
        "skill_dimension_saved": false,
        "skill_id": null,
        "skill_tag": "new",
        "skipped_reason": "skill_not_in_db_v3_proposed"
      },
      {
        "chosen_role_id": 11,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "Mobile Vendor Platforms",
          "id": 172,
          "rationale": "Knowledge of major mobile vendor platforms and their services for app distribution, testing, and analytics.",
          "slug": "mobile-vendor-platforms",
          "source": "db"
        },
        "dimension_id": 172,
        "input_skill": "Google Play",
        "llm_role": null,
        "matched_chosen_role": true,
        "outcome_line": "Skipped \u2014 no persistable v3 meta for new skill",
        "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"
          }
        ],
        "skill_dimension_saved": false,
        "skill_id": null,
        "skill_tag": "new",
        "skipped_reason": "skill_not_in_db_v3_proposed"
      },
      {
        "chosen_role_id": 11,
        "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": 11,
        "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": 11,
        "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": 11,
        "dimension": {
          "difficulty_hint": "well_known",
          "display_name": "Accessibility and Internationalization",
          "id": 93,
          "rationale": "Client experience practices that make Ionic apps usable across assistive technologies, locales, and device settings. This is a distinct cluster because shared mobile/browser apps must support keyboard, screen reader, and multilingual behavior.",
          "slug": "accessibility-and-internationalization",
          "source": "db"
        },
        "dimension_id": 93,
        "input_skill": "Localization",
        "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": "Ionic Developer",
            "id": 434,
            "rationale": null,
            "role_archetype": null,
            "slug": "ionic-developer",
            "source": "db"
          },
          {
            "display_name": "Native Mobile Developer",
            "id": 75,
            "rationale": null,
            "role_archetype": "Engineering",
            "slug": "native-mobile-developer",
            "source": "db"
          },
          {
            "display_name": "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": 502,
        "skill_tag": "in_db",
        "skipped_reason": null
      }
    ],
    "new_skills_created": 0,
    "role_dimension_saved": 0,
    "skill_dimension_saved": 0,
    "skipped": 2
  },
  "planner_output": null,
  "run_id": "7de45273-69bb-4a7a-8bfe-73ace34d001f"
}