<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Geets</title>
    <description>The latest articles on DEV Community by Geets (@geets_a1be902588b38e52740).</description>
    <link>https://dev.to/geets_a1be902588b38e52740</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3772057%2Fa087ba76-edcd-4ffd-8f52-74fd220c24da.jpg</url>
      <title>DEV Community: Geets</title>
      <link>https://dev.to/geets_a1be902588b38e52740</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/geets_a1be902588b38e52740"/>
    <language>en</language>
    <item>
      <title>GlowInspo: When AI Dresses My Monday Anxiety</title>
      <dc:creator>Geets</dc:creator>
      <pubDate>Sun, 01 Mar 2026 08:00:31 +0000</pubDate>
      <link>https://dev.to/geets_a1be902588b38e52740/glowinspo-when-ai-dresses-my-monday-anxiety-47np</link>
      <guid>https://dev.to/geets_a1be902588b38e52740/glowinspo-when-ai-dresses-my-monday-anxiety-47np</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/weekend-2026-02-28"&gt;DEV Weekend Challenge: Community&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Community
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GlowInspo is built for women navigating high-context mornings.&lt;/strong&gt;&lt;br&gt;
Remote workers. Founders. Creators. Consultants.&lt;br&gt;
Women who move between emotional states before 9AM.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7:03AM scenario:&lt;/strong&gt; &lt;br&gt;
Rain. Back-to-back meetings. Overwhelmed. &lt;br&gt;
Instead of grabbing the first clean sweater, I want something that &lt;em&gt;stabilizes&lt;/em&gt; me.&lt;/p&gt;

&lt;p&gt;GlowInspo serves the &lt;strong&gt;the decision-fatigued morning crowd&lt;/strong&gt; — women who want clothing to support their mental state, not compete with it.&lt;/p&gt;

&lt;p&gt;It’s not about trends.&lt;br&gt;
It’s about operational energy.&lt;br&gt;
Just the 2-minutes reset!&lt;/p&gt;

&lt;p&gt;Move quickly between emotional states&lt;br&gt;
Use clothing as psychological support&lt;br&gt;
Need fast, aligned decisions before work begins&lt;/p&gt;
&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GlowInspo: 2-minute AI-powered emotional dressing reset&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Check-in: "overwhelmed monday morning"&lt;/li&gt;
&lt;li&gt;Energy: "Stabilize" (Soften/Stabilize/Brighten/Amplify)&lt;/li&gt;
&lt;li&gt;Claude Ritual: Arrival → Reframe → Direction&lt;/li&gt;
&lt;li&gt;Gallery: 900+ Pinterest outfits (energy + tone matched)&lt;/li&gt;
&lt;li&gt;Memory: OOTD uploads → identity snapshots&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://glowinspo-cp4otqkvuwuzdukvy4nkvn.streamlit.app/?embed_options=dark_theme" rel="noopener noreferrer"&gt;https://glowinspo-cp4otqkvuwuzdukvy4nkvn.streamlit.app/?embed_options=dark_theme&lt;/a&gt; &lt;br&gt;
&lt;strong&gt;Video:&lt;/strong&gt; &lt;a href="https://youtu.be/x679HuRIklU" rel="noopener noreferrer"&gt;https://youtu.be/x679HuRIklU&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Geets1810" rel="noopener noreferrer"&gt;
        Geets1810
      &lt;/a&gt; / &lt;a href="https://github.com/Geets1810/Glowinspo" rel="noopener noreferrer"&gt;
        Glowinspo
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;GlowInspo&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;A 2-Minute Styling Ritual for Women Who Dress With Intention&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;GlowInspo is an emotion-aware styling ritual built for women balancing busy workdays, creative lives, and internal emotional shifts
Instead of dressing for trends, it helps you dress for the energy you want to bring into your day.
This version was built for the DEV Challenge to serve women who want less decision fatigue and more emotional alignment.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;💛 The Community&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;GlowInspo is designed for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Women in fast-paced professional roles&lt;/li&gt;
&lt;li&gt;Creatives navigating identity and visibility&lt;/li&gt;
&lt;li&gt;Anyone who uses clothing as self-expression&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Women who want to feel intentional, not overwhelmed
Getting dressed shouldn’t feel like another task.&lt;/p&gt;
&lt;p&gt;It can be a reset.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;✨ How It Works&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;You check in: How are you arriving today?
You choose how you want to show up:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Soften&lt;/li&gt;
&lt;li&gt;Stabilize&lt;/li&gt;
&lt;li&gt;Brighten&lt;/li&gt;
&lt;li&gt;Amplify&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;GlowInspo generates emotionally aligned guidance.&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;You explore curated outfit suggestions
If inspired, you upload your…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Geets1810/Glowinspo" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;




&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;GlowInspo is built as a lightweight, stateful Streamlit application designed for fast emotional interaction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Architecture&lt;/strong&gt;&lt;br&gt;
The app runs as a single-page Streamlit interface using session state to manage:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Current recommendation set&lt;/li&gt;
&lt;li&gt;Feedback state (Inspired / Not Quite / Self-Styled)&lt;/li&gt;
&lt;li&gt;Emotional memory history&lt;/li&gt;
&lt;li&gt;Controlled reshuffle logic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Session state prevents unnecessary recomputation and stabilizes UI behavior across interactions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Model &amp;amp; Tagging&lt;/strong&gt;&lt;br&gt;
Outfit data is stored in a structured CSV dataset.&lt;br&gt;
Each item contains:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;energy_bucket (Soften, Stabilize, Brighten, Amplify)&lt;/li&gt;
&lt;li&gt;tone_tags_v2 (multi-label descriptors such as structured, minimal, bold)&lt;/li&gt;
&lt;li&gt;category&lt;/li&gt;
&lt;li&gt;image_url&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Tagging is multi-layered:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Primary filter → energy bucket&lt;/li&gt;
&lt;li&gt;Secondary ranking → tone overlap score&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Tone overlap is calculated dynamically:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;filtered["match_score"] = filtered["tone_list"].apply(
    lambda tl: len(set(tl).intersection(set(tones)))
)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This ensures emotional alignment before aesthetic variation.&lt;br&gt;
AI-Assisted Tagging&lt;/p&gt;

&lt;p&gt;Tone tags were refined using a constrained prompt-based GenAI workflow.&lt;br&gt;
Claude was used to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Normalize tone vocabulary across 990 items&lt;/li&gt;
&lt;li&gt;Ensure consistent multi-label tagging (2–3 tones per item)&lt;/li&gt;
&lt;li&gt;Align items to one of four defined energy buckets&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The model was restricted to a fixed tone taxonomy to prevent uncontrolled label drift.&lt;/p&gt;

&lt;p&gt;This hybrid approach (AI-assisted tagging + structured constraints) allowed scalable tagging while maintaining emotional consistency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Emotional Guidance Layer&lt;/strong&gt;&lt;br&gt;
Claude (Anthropic API) generates constrained structured output:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Arrival&lt;/li&gt;
&lt;li&gt;Reframe&lt;/li&gt;
&lt;li&gt;Direction&lt;/li&gt;
&lt;li&gt;Energy&lt;/li&gt;
&lt;li&gt;Tone tags&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The prompt restricts output format and allowed tone vocabulary to maintain system consistency and prevent drift.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Controlled Recommendation Logic&lt;/strong&gt;&lt;br&gt;
Outfits are sampled with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Category-aware diversification&lt;/li&gt;
&lt;li&gt;Frozen suggestions until explicit reshuffle&lt;/li&gt;
&lt;li&gt;Manual reset only via “Not Quite”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This avoids infinite scroll behavior and reduces cognitive overload.&lt;br&gt;
&lt;strong&gt;Identity Memory&lt;/strong&gt;&lt;br&gt;
User-uploaded OOTDs are stored in session state with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mood&lt;/li&gt;
&lt;li&gt;Energy&lt;/li&gt;
&lt;li&gt;Composite identity label (e.g., “Tired + Amplify”)&lt;/li&gt;
&lt;li&gt;Image
Memory retrieval is energy-matched to surface prior successful identity states.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This prevents unnecessary reshuffling and reduces scroll fatigue.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scaling &amp;amp; Future Extensions - Designing Human Centered AI Products&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GlowInspo is currently session-based and lightweight by design, but the architecture can scale in several directions:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Persistent Storage&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Move emotional memory and user-uploaded images to cloud storage (e.g., S3 or GCS)&lt;/li&gt;
&lt;li&gt;Store structured mood + energy snapshots in a database (Postgres / Firestore)&lt;/li&gt;
&lt;li&gt;Enable cross-session identity memory instead of session-only state&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Richer Recommendation Engine&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Replace CSV filtering with a vector-based similarity layer&lt;/li&gt;
&lt;li&gt;Embed tone tags and outfit descriptions for semantic retrieval&lt;/li&gt;
&lt;li&gt;Introduce personalization based on historical energy patterns&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Generative Outfit Composition&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use multimodal GenAI models to:&lt;/li&gt;
&lt;li&gt;Generate full outfit combinations instead of single items&lt;/li&gt;
&lt;li&gt;Create personalized styling boards&lt;/li&gt;
&lt;li&gt;Suggest complementary pieces dynamically&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Future iteration could include image-to-image refinement where users upload a piece and receive AI-generated styled variations&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Community Layer&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enable opt-in sharing of energy-based looks&lt;/li&gt;
&lt;li&gt;Surface “Popular Amplify Looks” or community-curated energy boards&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>showdev</category>
      <category>ai</category>
    </item>
    <item>
      <title>How do you approach semantic analysis in your pipelines? Are you using LLMs for enrichment, or sticking with traditional NLP? I'd love to hear what's working (and what's not).</title>
      <dc:creator>Geets</dc:creator>
      <pubDate>Sat, 14 Feb 2026 05:58:18 +0000</pubDate>
      <link>https://dev.to/geets_a1be902588b38e52740/how-do-you-approach-semantic-analysis-in-your-pipelines-are-you-using-llms-for-enrichment-or-2j05</link>
      <guid>https://dev.to/geets_a1be902588b38e52740/how-do-you-approach-semantic-analysis-in-your-pipelines-are-you-using-llms-for-enrichment-or-2j05</guid>
      <description>&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/geets_a1be902588b38e52740/designing-a-layered-youtube-analytics-pipeline-with-aws-bedrock-architecture-overview-1ba4" class="crayons-story__hidden-navigation-link"&gt;Designing a Layered YouTube Analytics Pipeline with AWS Bedrock (Architecture Overview)&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/geets_a1be902588b38e52740" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3772057%2Fa087ba76-edcd-4ffd-8f52-74fd220c24da.jpg" alt="geets_a1be902588b38e52740 profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/geets_a1be902588b38e52740" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Geets
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Geets
                
              
              &lt;div id="story-author-preview-content-3255479" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/geets_a1be902588b38e52740" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3772057%2Fa087ba76-edcd-4ffd-8f52-74fd220c24da.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Geets&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/geets_a1be902588b38e52740/designing-a-layered-youtube-analytics-pipeline-with-aws-bedrock-architecture-overview-1ba4" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 14&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/geets_a1be902588b38e52740/designing-a-layered-youtube-analytics-pipeline-with-aws-bedrock-architecture-overview-1ba4" id="article-link-3255479"&gt;
          Designing a Layered YouTube Analytics Pipeline with AWS Bedrock (Architecture Overview)
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/aws"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;aws&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/llm"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;llm&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/architecture"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;architecture&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/dataengineering"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;dataengineering&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/geets_a1be902588b38e52740/designing-a-layered-youtube-analytics-pipeline-with-aws-bedrock-architecture-overview-1ba4#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;




</description>
      <category>aws</category>
      <category>llm</category>
      <category>architecture</category>
      <category>dataengineering</category>
    </item>
    <item>
      <title>Designing a Layered YouTube Analytics Pipeline with AWS Bedrock (Architecture Overview)</title>
      <dc:creator>Geets</dc:creator>
      <pubDate>Sat, 14 Feb 2026 05:20:04 +0000</pubDate>
      <link>https://dev.to/geets_a1be902588b38e52740/designing-a-layered-youtube-analytics-pipeline-with-aws-bedrock-architecture-overview-1ba4</link>
      <guid>https://dev.to/geets_a1be902588b38e52740/designing-a-layered-youtube-analytics-pipeline-with-aws-bedrock-architecture-overview-1ba4</guid>
      <description>&lt;p&gt;Most analytics pipelines measure what happened. I wanted to measure why it matters, using LLM-powered semantic enrichment to understand content quality, not just view counts.&lt;br&gt;
Here's the architecture that makes it possible: a medallion-style YouTube analytics pipeline with AWS Bedrock for semantic intelligence.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk2bf06chuw0h5bn86txb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk2bf06chuw0h5bn86txb.jpg" alt=" " width="800" height="442"&gt;&lt;/a&gt;&lt;br&gt;
A layered approach: EventBridge orchestration → AWS Glue processing → Bedrock semantic enrichment → Athena analytics&lt;/p&gt;

&lt;p&gt;Key Design Decisions&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. **Medallion Architecture (Bronze → Silver → Gold)&lt;/strong&gt;**&lt;/p&gt;

&lt;p&gt;Bronze: Raw YouTube API snapshots (append-only historical record)&lt;br&gt;
Silver: Cleaned, normalized data with growth metrics&lt;br&gt;
Gold: Behavioral metrics + LLM-enriched semantic attributes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. **Semantic Enrichment as a Separate Layer&lt;/strong&gt;**&lt;br&gt;
The critical choice: enrich in Gold, not Silver.&lt;br&gt;
Why? Content attributes (educational depth, emotional tone, clickbait score) are static. View counts change daily. Enriching in Gold means:&lt;/p&gt;

&lt;p&gt;Enrich once, not on every daily run&lt;br&gt;
30x cost savings on Bedrock API calls&lt;br&gt;
Can backfill semantic analysis without reprocessing historical data&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Constrained LLM Outputs&lt;/strong&gt;&lt;br&gt;
Structured prompts that return JSON with bounded fields:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;{&lt;br&gt;
  "educational_depth": 7,&lt;br&gt;
  "sensationalism": 3,&lt;br&gt;
  "emotional_tone": "positive",&lt;br&gt;
  "clickbait_coefficient": 2&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This reduced parsing errors from 35% to under 5%.&lt;/p&gt;

&lt;p&gt;What This Enables&lt;br&gt;
Instead of asking "How many views did this video get?"&lt;br&gt;
I can ask:&lt;/p&gt;

&lt;p&gt;Do sensational videos grow faster but decay quicker?&lt;br&gt;
Does educational depth predict long-term stability?&lt;br&gt;
Is clickbait sustainable?&lt;/p&gt;

&lt;p&gt;This is about measuring content quality vs. growth sustainability—not just counting clicks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Stack&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Orchestration: EventBridge + Lambda&lt;br&gt;
Storage: S3 (partitioned by date)&lt;br&gt;
Processing: AWS Glue (PySpark)&lt;br&gt;
LLM Enrichment: Amazon Bedrock (Claude)&lt;br&gt;
Analytics: Athena + SQL&lt;/p&gt;

&lt;p&gt;Read More&lt;br&gt;
Want the full technical breakdown including:&lt;/p&gt;

&lt;p&gt;Schema evolution failures and fixes&lt;br&gt;
IAM debugging for Bedrock&lt;br&gt;
Cost optimization strategies&lt;br&gt;
What I'd do differently (dbt, feature stores)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📝 Full article:&lt;/strong&gt; &lt;a href="https://geethanjalivivekanandan.medium.com/building-an-end-to-end-analytics-pipeline-with-llm-enrichment-3c37e7bc4355" rel="noopener noreferrer"&gt;Medium&lt;/a&gt; &lt;br&gt;
&lt;strong&gt;📝 The product thinking behind it:&lt;/strong&gt; &lt;a href="https://medium.com/womenintechnology/mood-meets-media-1-5-designing-a-human-centered-mood-engine-a-product-perspective-eb897653b4d0" rel="noopener noreferrer"&gt;Mood Meets Media&lt;/a&gt;&lt;br&gt;
*&lt;em&gt;💻 GitHub: *&lt;/em&gt;&lt;a href="https://github.com/Geets1810/youtube-analytics-llm-pipeline" rel="noopener noreferrer"&gt;Live code&lt;/a&gt; &lt;/p&gt;

</description>
      <category>aws</category>
      <category>llm</category>
      <category>architecture</category>
      <category>dataengineering</category>
    </item>
  </channel>
</rss>
