<?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>Forem: kareemblessed</title>
    <description>The latest articles on Forem by kareemblessed (@kareemblessed).</description>
    <link>https://forem.com/kareemblessed</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%2F867243%2F4863493b-b43d-4a05-b713-eb6821fea0fc.png</url>
      <title>Forem: kareemblessed</title>
      <link>https://forem.com/kareemblessed</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/kareemblessed"/>
    <language>en</language>
    <item>
      <title>Inside My AI/ML Engineer Portfolio</title>
      <dc:creator>kareemblessed</dc:creator>
      <pubDate>Wed, 28 Jan 2026 09:12:57 +0000</pubDate>
      <link>https://forem.com/kareemblessed/inside-my-aiml-engineer-portfolio-315o</link>
      <guid>https://forem.com/kareemblessed/inside-my-aiml-engineer-portfolio-315o</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/new-year-new-you-google-ai-2025-12-31"&gt;New Year, New You Portfolio Challenge Presented by Google AI&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About Me
&lt;/h2&gt;

&lt;p&gt;Most AI engineers stop at 96% accuracy on test data. I keep going until the system retrains itself when performance drifts.&lt;/p&gt;

&lt;p&gt;While much of the industry is racing to build ChatGPT wrappers, I focus on AI systems that survive contact with reality. These systems detect their own failures, recover at 3 AM, and operate on edge devices, not just cloud servers with unlimited resources.&lt;/p&gt;

&lt;p&gt;I'm Angira Ronan. For three years, I've been building &lt;strong&gt;AI systems&lt;/strong&gt; that survive reality. Self-healing vision models. Automated recruitment pipelines. IoT solutions delivering 30% efficiency gains. &lt;strong&gt;My job? Taking the impossibly complex and making it effortlessly simple.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Great engineering isn't just about making things work. It's about making them work beautifully.&lt;/p&gt;

&lt;p&gt;Because if I can't make my own portfolio compelling, why would you trust me with your &lt;strong&gt;production systems?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Portfolio
&lt;/h2&gt;

&lt;p&gt;Here is my Portfolio &lt;a href="https://angira-portfolio-47462643941.europe-west1.run.app/" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__cloud-run"&gt;
  &lt;iframe height="600px" src="https://angira-portfolio-47462643941.europe-west1.run.app"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;




&lt;p&gt;--labels dev-tutorial=devnewyear2026&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Tech Stack
&lt;/h3&gt;

&lt;p&gt;The portfolio is built on a modern &lt;strong&gt;React stack&lt;/strong&gt;. I used &lt;strong&gt;Vite&lt;/strong&gt; for blazing-fast development and builds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TypeScript&lt;/strong&gt; provides type safety throughout the codebase. &lt;strong&gt;Tailwind CSS&lt;/strong&gt; handles utility-first styling, keeping everything clean and maintainable.&lt;/p&gt;

&lt;p&gt;For the component library, I leveraged &lt;strong&gt;shadcn/ui&lt;/strong&gt; components. I customized them extensively to match my design vision.&lt;/p&gt;

&lt;h3&gt;
  
  
  Animation &amp;amp; Interaction
&lt;/h3&gt;

&lt;p&gt;Framer Motion powers all the sophisticated animations you see. This includes the floating bubble backgrounds in the Hero section and the staggered card reveals.&lt;/p&gt;

&lt;p&gt;The typing effect that cycles through my professional roles uses custom React hooks. I implemented &lt;strong&gt;useTypingAnimation&lt;/strong&gt; and &lt;strong&gt;useCountAnimation&lt;/strong&gt; hooks that trigger only when elements enter the viewport.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;typescript

useEffect(() =&amp;gt; {
  const role = roles[currentRole];
  const timeout = setTimeout(() =&amp;gt; {
    if (!isDeleting &amp;amp;&amp;amp; displayText.length &amp;lt; role.length) {
      setDisplayText(role.slice(0, displayText.length + 1));
    } else if (!isDeleting) {
      setTimeout(() =&amp;gt; setIsDeleting(true), 2000);
    } else if (displayText.length &amp;gt; 0) {
      setDisplayText(displayText.slice(0, -1));
    } else {
      setIsDeleting(false);
      setCurrentRole((prev) =&amp;gt; (prev + 1) % roles.length);
    }
  }, isDeleting ? 50 : 100);
  return () =&amp;gt; clearTimeout(timeout);
}, [displayText, isDeleting, currentRole]);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These hooks use intersection observers for optimal performance. They ensure animations run only when users can actually see them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Design System
&lt;/h3&gt;

&lt;p&gt;I established a comprehensive design token system in &lt;strong&gt;CSS&lt;/strong&gt;. Semantic variables for colours ensure consistent theming across light and dark modes.&lt;/p&gt;

&lt;p&gt;The colour palette features a vibrant purple-to-pink gradient accent. This creates visual cohesion throughout the site.&lt;/p&gt;

&lt;p&gt;For typography, I paired &lt;strong&gt;Space Grotesk display&lt;/strong&gt; font with &lt;strong&gt;Inter&lt;/strong&gt;. This combination creates a modern, professional hierarchy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Backend &amp;amp; Infrastructure
&lt;/h3&gt;

&lt;p&gt;The project runs on &lt;strong&gt;Google Cloud Run&lt;/strong&gt;. This provides full backend infrastructure for potential future features like contact form submissions or analytics.&lt;/p&gt;

&lt;p&gt;The architecture is designed to be easily extensible. I can add new features without major refactoring.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI-Assisted Development
&lt;/h3&gt;

&lt;p&gt;I used Google's AI tools throughout the development process. &lt;strong&gt;Gemini&lt;/strong&gt; helped with code generation and debugging complex animation logic.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Google AI Studio&lt;/strong&gt; also assisted in refining the design system. It suggested optimizations for performance-critical animations.&lt;/p&gt;

&lt;p&gt;This allowed me to iterate quickly on component architecture. The development process was significantly faster than traditional methods.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'm Most Proud Of
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Skills Section Animation System
&lt;/h3&gt;

&lt;p&gt;I'm particularly proud of the sophisticated typing and counting animation system in the Skills section.&lt;/p&gt;

&lt;p&gt;Each technology name types out character-by-character with variable speeds (50-80ms). A blinking cursor accompanies the typing effect.&lt;/p&gt;

&lt;p&gt;Proficiency percentages count up from 0% using &lt;strong&gt;easeOutExpo&lt;/strong&gt; easing. This creates that satisfying deceleration effect.&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%2Ftgizj3ax74z27kuj22ob.png" 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%2Ftgizj3ax74z27kuj22ob.png" alt="Skills Section"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Users can even replay animations by clicking individual skills. This adds an interactive element that engages visitors.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dark &amp;amp; Light Mode Excellence
&lt;/h3&gt;

&lt;p&gt;Dark mode features luminous gradients and glowing text shadows.&lt;/p&gt;

&lt;p&gt;Light mode uses softer tones with refined contrast for comfortable reading.&lt;/p&gt;

&lt;p&gt;I calibrated contrast ratios specifically for each theme, ensuring content pops in dark mode and stays crisp in light mode. &lt;/p&gt;

&lt;p&gt;Users can switch between them instantly—both feel intentional, not like one mode was an afterthought.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dynamic Projects Showcase
&lt;/h3&gt;

&lt;p&gt;The Projects section features an innovative card system with floating, rotating display. Cards dynamically shift positions, creating an engaging &lt;strong&gt;3D carousel effect&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Each project card uses distinct gradient backgrounds (blue, orange, green) that maintain visibility in dark mode. The cards tilt and scale on hover, adding depth perception.&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%2Fuoqmg9vgekmj982u6ta4.png" 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%2Fuoqmg9vgekmj982u6ta4.png" alt="Project Cards"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The technology badges at the top of each card use semi-transparent overlays. This ensures they remain readable against varied gradient backgrounds.&lt;/p&gt;

&lt;p&gt;The rotating animation uses &lt;strong&gt;transform3d&lt;/strong&gt; for hardware acceleration. This ensures smooth 60fps performance even with multiple cards animating simultaneously.&lt;/p&gt;

&lt;p&gt;Users can navigate through projects intuitively. The cards respond to mouse movement and clicks, creating an immersive browsing experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Final Verdict
&lt;/h3&gt;

&lt;p&gt;This portfolio proves a simple point: you don't choose between technical excellence and beautiful design. &lt;strong&gt;You deliver both, or you're not done yet.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every line of code here has a job. Every animation earns its place. That's not &lt;strong&gt;perfectionism—it's professionalism&lt;/strong&gt;. It's how production systems should be built.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>googleaichallenge</category>
      <category>portfolio</category>
      <category>gemini</category>
    </item>
    <item>
      <title>No More Firefighting: Your n8n Workflow Blueprint</title>
      <dc:creator>kareemblessed</dc:creator>
      <pubDate>Thu, 20 Nov 2025 16:58:42 +0000</pubDate>
      <link>https://forem.com/kareemblessed/no-more-firefighting-your-n8n-workflow-blueprint-3pnc</link>
      <guid>https://forem.com/kareemblessed/no-more-firefighting-your-n8n-workflow-blueprint-3pnc</guid>
      <description>&lt;p&gt;A few months ago, I was thrown into a project where six disconnected spreadsheets kept breaking every manual report. &lt;/p&gt;

&lt;p&gt;Every day &lt;strong&gt;felt like firefighting&lt;/strong&gt;. That &lt;strong&gt;frustration pushed me&lt;/strong&gt; to build a clean, automated workflow — one reliable enough that anyone could trust.&lt;/p&gt;

&lt;p&gt;I once spent a full week debugging a workflow that kept collapsing because three spreadsheets disagreed on what “miles” meant.&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%2Frc3pjh47k4wh9s9utkho.gif" 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%2Frc3pjh47k4wh9s9utkho.gif" alt="Exhausted" width="480" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That chaos taught me a simple truth: &lt;strong&gt;great automations aren’t fast — they’re disciplined.&lt;/strong&gt; And that’s what this guide gives you. ⚡&lt;/p&gt;

&lt;p&gt;Below is &lt;strong&gt;a practical guide&lt;/strong&gt; for building &lt;strong&gt;strong n8n data-analysis workflows&lt;/strong&gt;, avoiding the &lt;strong&gt;common traps&lt;/strong&gt;, and using concrete merging and validation patterns you can implement immediately.&lt;/p&gt;

&lt;h2&gt;
  
  
  No Clarity, No Pipeline—Simple as That
&lt;/h2&gt;

&lt;p&gt;Before writing a single line of automation logic, please follow one rule:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If the data is unclear, the pipeline will fail.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The number one cause of broken AI automations isn’t &lt;strong&gt;AI.&lt;/strong&gt;&lt;br&gt;
It’s messy, misunderstood inputs.&lt;/p&gt;

&lt;p&gt;Once you master the pattern below, you can automate literally any data analysis workflow with confidence — trucks, inventory, CRM, logistics, finance, anything&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Learn Your Data Before You Touch n8n
&lt;/h2&gt;

&lt;p&gt;A pipeline &lt;strong&gt;succeeds or dies&lt;/strong&gt; at this stage.&lt;/p&gt;

&lt;p&gt;Inspect each &lt;strong&gt;sheet or source&lt;/strong&gt;. Understand the shape.&lt;br&gt;
Build a quick checklist:&lt;/p&gt;

&lt;p&gt;What fields are trustworthy?&lt;/p&gt;

&lt;p&gt;Which names are inconsistent?&lt;/p&gt;

&lt;p&gt;Where are the &lt;strong&gt;duplicates or empty rows?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Which values look suspicious?&lt;/p&gt;

&lt;p&gt;What conversions will &lt;strong&gt;I need&lt;/strong&gt; (text to number, date parsing, etc.)?&lt;/p&gt;

&lt;p&gt;If you don’t know your data, AI won't help you — it will just hallucinate around your mistakes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Start With One Mission Statement&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ask yourself, "What is the desired output of my pipeline."&lt;br&gt;
Every automation needs one sentence:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Produce a clean combined dataset with all sources, calculated fields, and a final action-ready output.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For example: &lt;br&gt;
When I built the truck analysis pipeline, my mission statement was:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Create a daily unified per-truck record that merges all sheets, validates numbers, runs mileage logic, and outputs one final decision.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That one sentence forced every node, merge, and calculation to serve the same target — no wandering, no bloat.&lt;/p&gt;

&lt;p&gt;This is your &lt;strong&gt;compass&lt;/strong&gt;. It prevents you from adding &lt;strong&gt;useless&lt;/strong&gt; steps.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Ingest Each Source Separately
&lt;/h2&gt;

&lt;p&gt;Never dump everything into one &lt;strong&gt;giant node.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Use individual “Read Sheet / API / DB” nodes for each input.&lt;/p&gt;

&lt;p&gt;This makes debugging clean and predictable:&lt;/p&gt;

&lt;p&gt;Key Take: &lt;strong&gt;If one source breaks, the rest survive.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Clean Early Using Function Nodes
&lt;/h2&gt;

&lt;p&gt;Each input gets its own cleanup Function node. This is where you:&lt;/p&gt;

&lt;p&gt;Validate&lt;/p&gt;

&lt;p&gt;Standardize&lt;/p&gt;

&lt;p&gt;Convert&lt;/p&gt;

&lt;p&gt;Remove broken rows&lt;/p&gt;

&lt;p&gt;Add calculated columns&lt;/p&gt;

&lt;p&gt;Perform your calculations.&lt;/p&gt;

&lt;p&gt;This &lt;strong&gt;isolates issues&lt;/strong&gt; and keeps your downstream nodes clean.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Merge With Purpose
&lt;/h2&gt;

&lt;p&gt;Merging is the moment most people create chaos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Simple Rule to Remember&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You &lt;strong&gt;merge&lt;/strong&gt; only when:&lt;/p&gt;

&lt;p&gt;The datasets describe the &lt;strong&gt;same object&lt;/strong&gt;, and&lt;/p&gt;

&lt;p&gt;You have a &lt;strong&gt;strong key&lt;/strong&gt; ie) (id, timestamp, transaction_id, route_id)&lt;/p&gt;

&lt;p&gt;You &lt;strong&gt;do not merge&lt;/strong&gt; when:&lt;/p&gt;

&lt;p&gt;The sheets describe &lt;strong&gt;different entities&lt;/strong&gt;, or&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No reliable&lt;/strong&gt; key exists.&lt;/p&gt;

&lt;p&gt;Your workflow already uses the correct pattern: merge in layers.&lt;/p&gt;

&lt;p&gt;Rules for senior-level merging:&lt;/p&gt;

&lt;p&gt;Merge two datasets at a time&lt;/p&gt;

&lt;p&gt;Use a strong key (like unit_id)&lt;/p&gt;

&lt;p&gt;Preserve original fields&lt;/p&gt;

&lt;p&gt;Build a merge chain: Merge1 → Merge2 → Merge3 → Merge4&lt;/p&gt;

&lt;p&gt;Layered merging = predictable debugging + cleaner final logic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Apply Business Logic at the End&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Only after merging should you apply intelligence.&lt;/p&gt;

&lt;p&gt;Use a single code node to evaluate signals such as: High miles, High outstanding balance, Profitability.&lt;/p&gt;

&lt;p&gt;Do You remember &lt;strong&gt;step 2? Creating a Mission statement?&lt;/strong&gt; The next step would be to return the output based on well-thought decisions such as: Keep / Sell / Inspect.&lt;/p&gt;

&lt;p&gt;This makes the &lt;strong&gt;logic easy to review&lt;/strong&gt; and &lt;strong&gt;change&lt;/strong&gt; without breaking the entire workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Export One Source of Truth&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;All good automations end in a &lt;strong&gt;clean export.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Append or update to a final sheet so your team gets stable, human-readable results.&lt;/p&gt;

&lt;p&gt;This becomes your daily &lt;strong&gt;operational dashboard.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. Why This Pattern Works for Any Data Analysis AI Automation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This structure scales because it is universal:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understand your data deeply&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ingest each source separately&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Validate early&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Clean and calculate&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Merge in layers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Add signals&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Produce a final decision&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Export cleanly&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AI only works when your &lt;strong&gt;foundation is consistent&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. Mistakes to Avoid (That Break 90 Percent of Pipelines)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A real engineer learns these the &lt;strong&gt;hard way&lt;/strong&gt; — so you don't have to.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;❌ Comparing strings to numbers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Example: "12000" &amp;gt; 5000&lt;br&gt;
This returns false even when it should be true.&lt;br&gt;
Always convert with Number() before comparisons.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;❌ Destroying original source fields&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Never overwrite Raw_Data_Column with “cleaned” data.&lt;br&gt;
Keep originals untouched.&lt;br&gt;
You will need them for audits, debugging, and reconciliation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;❌ Triggering global overrides on empty rows&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If your automation fires blank updates, you corrupt downstream data.&lt;br&gt;
Always filter empty rows at the start.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Verdict
&lt;/h2&gt;

&lt;p&gt;Automation isn’t magic—it’s &lt;strong&gt;mastery&lt;/strong&gt;.Clean data, layered merges, and disciplined logic transform &lt;strong&gt;chaos into clarity&lt;/strong&gt;. Nail the foundation once, and every workflow runs smoothly, decisions become certain, and spreadsheets stop breaking.&lt;br&gt;
That’s the power of smart automation. ⚡&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>tooling</category>
      <category>automation</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Building a Self-Healing Parking Detection System: MLOps on Autopilot 🚗</title>
      <dc:creator>kareemblessed</dc:creator>
      <pubDate>Sat, 18 Oct 2025 18:48:33 +0000</pubDate>
      <link>https://forem.com/kareemblessed/building-a-self-healing-parking-detection-system-mlops-on-autopilot-2gd8</link>
      <guid>https://forem.com/kareemblessed/building-a-self-healing-parking-detection-system-mlops-on-autopilot-2gd8</guid>
      <description>&lt;p&gt;Ever deployed a machine learning model only to watch it slowly deteriorate in production?&lt;/p&gt;

&lt;p&gt;Your parking detection model performs flawlessly on day one, but three months later, it confidently labels empty spaces as “occupied,” leaving users frustrated.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Welcome to model drift - No burnout. No downtime. Just intelligent, autonomous recovery&lt;/strong&gt;&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%2F7j3krkmu7jgoq418kl2f.gif" 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%2F7j3krkmu7jgoq418kl2f.gif" alt="Fuyooh!" width="360" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I wanted something smarter. So, I built a &lt;strong&gt;self-healing parking detection system that continuously monitors its own performance, detects when accuracy declines, and automatically triggers retraining&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;No manual babysitting. No hidden degradation. Just &lt;strong&gt;intelligent, autonomous MLOps&lt;/strong&gt; built for longevity.&lt;/p&gt;

&lt;p&gt;Being future-minded means &lt;strong&gt;building systems that anticipate problems before they occur&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;This project embodies that belief — creating ML models that not only works today, but adapts and heals itself for tomorrow.&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%2Fhwp3qdi6tggrlwnb992w.gif" 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%2Fhwp3qdi6tggrlwnb992w.gif" alt="Wowed" width="600" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 The Problem: Models Don’t Age Well
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Machine learning models&lt;/strong&gt; are like milk — they eventually go bad.&lt;/p&gt;

&lt;p&gt;Lighting changes, weather patterns, and new vehicle shapes can all confuse your once-accurate detector. Traditionally, engineers manually check metrics weekly, realize too late that performance has dropped, and rush to retrain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The result?&lt;/strong&gt;&lt;br&gt;
Frustrated drivers, wasted fuel circling parking lots, and lost revenue for operators. More importantly, this reveals a deeper flaw — we often treat ML models as static, when they actually need constant care and feedback.&lt;/p&gt;

&lt;p&gt;I wanted to solve that once and for all — &lt;strong&gt;build once, monitor forever&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  🏗️ System Architecture: Four Layers of Intelligence
&lt;/h2&gt;

&lt;p&gt;My architecture is built on four tightly connected components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;YOLOv8&lt;/strong&gt; handles real-time object detection — identifying empty and occupied parking spaces with bounding boxes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MySQL&lt;/strong&gt; logs every prediction with timestamps, confidence scores, and metadata.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flask API&lt;/strong&gt; tracks performance and calculates drift scores by comparing live metrics with baseline data.
-** n8n** orchestrates health checks, runs drift tests every six hours, and sends alerts when retraining is needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of it as an AI-powered feedback loop:&lt;br&gt;
Detection → Logging → Monitoring → Self-Repair.&lt;/p&gt;

&lt;p&gt;Each component does its job independently yet collaborates for a single mission — resilience.&lt;/p&gt;
&lt;h2&gt;
  
  
  📊 Part 1: Setting Up the Dataset Configuration
&lt;/h2&gt;

&lt;p&gt;I started with &lt;strong&gt;12,416 overhead&lt;/strong&gt; parking lot images from diverse conditions. Sunny days, rain, different times, various occupancy levels.&lt;/p&gt;

&lt;p&gt;The first step was creating a proper dataset structure for YOLOv8.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python
import yaml

dataset_config = {
    'path': 'D:/Project_Nova',
    'train': 'train/images',
    'val': 'valid/images',
    'nc': 2,
    'names': ['space-empty', 'space-occupied']
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This configuration tells YOLOv8 where to find training and validation images. &lt;br&gt;
The &lt;strong&gt;nc: 2&lt;/strong&gt; specifies two classes: empty and occupied spaces. &lt;/p&gt;

&lt;p&gt;The names array maps class IDs (0, 1) to human-readable labels.&lt;/p&gt;

&lt;p&gt;I kept it simple—just two states, no partial occupancy confusion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎓 Part 2: Training the YOLOv8 Model&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With the dataset configured, training becomes straightforward. YOLOv8's API handles the heavy lifting.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python
from ultralytics import YOLO

model = YOLO('yolov8n.pt')
results = model.train(
    data='dataset.yaml',
    epochs=50,
    imgsz=640
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The trained model achieved 93% confidence on test data — this became my baseline health metric.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔍 Part 3: Real-Time Detection &amp;amp; Database Logging
&lt;/h2&gt;

&lt;p&gt;Every prediction is logged.&lt;br&gt;
Each frame from the video feed is analyzed, and results are stored in MySQL along with timestamps and confidence levels — providing data for continuous drift monitoring.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Python
import cv2
from ultralytics import YOLO
import mysql.connector
from datetime import datetime

model = YOLO('best.pt')
cap = cv2.VideoCapture('parking_lot.mp4')

while cap.isOpened():
    ret, frame = cap.read()
    if not ret: break

    results = model(frame, conf=0.5)

    for box in results[0].boxes:
        class_id = int(box.cls[0])
        confidence = float(box.conf[0])

        cursor.execute("""INSERT INTO predictions 
            (timestamp, class_label, confidence_score) 
            VALUES (%s, %s, %s)""",
            (datetime.now(), CLASS_NAMES[class_id], confidence))

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

&lt;/div&gt;



&lt;p&gt;Batch inserts every 50 frames reduced database lag 10x — from minutes to seconds — making real-time monitoring actually real.&lt;/p&gt;

&lt;h2&gt;
  
  
  🗄️ Part 4: Setting Up the Drift Detection Database Schema
&lt;/h2&gt;

&lt;p&gt;Before detecting drift, proper database tables were set. The schema stores both baseline metrics and current performance data.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python

cursor.execute("""CREATE TABLE IF NOT EXISTS baseline_metrics (
    id INT PRIMARY KEY AUTO_INCREMENT,
    avg_confidence FLOAT,
    total_detections INT,
    empty_count INT,
    occupied_count INT,
    created_at DATETIME
)""")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This table captures a snapshot of "healthy" model performance.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;avg_confidence&lt;/strong&gt; tracks how certain the model is on average. &lt;strong&gt;total_detections&lt;/strong&gt; counts all predictions made during baseline establishment. &lt;strong&gt;empty_count&lt;/strong&gt; and &lt;strong&gt;occupied_count&lt;/strong&gt; record class distribution—important for detecting when the model starts seeing everything as one class. &lt;/p&gt;

&lt;h2&gt;
  
  
  ⚙️ Part 5: Calculating Baseline Metrics Automatically
&lt;/h2&gt;

&lt;p&gt;Automate baseline creation by analyzing all existing predictions in the database. No manual entry needed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python
cursor.execute("""SELECT 
    AVG(confidence_score),
    COUNT(*),
    SUM(CASE WHEN class_label='space-empty' THEN 1 ELSE 0 END),
    SUM(CASE WHEN class_label='space-occupied' THEN 1 ELSE 0 END)
    FROM predictions""")

stats = cursor.fetchone()

cursor.execute("""INSERT INTO baseline_metrics 
    (avg_confidence, total_detections, empty_count, occupied_count, created_at)
    VALUES (%s, %s, %s, %s, %s)""",
    (float(stats[0]), int(stats[1]), int(stats[2]), int(stats[3]), datetime.now()))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The SQL query calculates four metrics in one pass.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔬 Part 6: Building the Flask Drift Detection API
&lt;/h2&gt;

&lt;p&gt;The Flask API serves as the brain of the system. It compares current performance to baseline and calculates drift scores.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python
from flask import Flask, jsonify
import mysql.connector
from datetime import datetime, timedelta

app = Flask(__name__)

@app.route('/check-drift')
def check_drift():
    baseline_conf = get_baseline_confidence()

    cursor.execute("""SELECT AVG(confidence_score)
        FROM predictions 
        WHERE timestamp &amp;gt;= %s""", 
        (datetime.now() - timedelta(hours=24),))
    current_conf = cursor.fetchone()[0]

    confidence_drop = ((baseline_conf - current_conf) / baseline_conf) * 100
    drift_score = confidence_drop * 0.6
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🤖 Part 7: Integrating AI Analysis with n8n
&lt;/h2&gt;

&lt;p&gt;The final piece brings everything together. The n8n workflow calls the drift API, feeds results to GPT-4, and sends intelligent email alerts.&lt;/p&gt;

&lt;p&gt;The workflow structure is simple: Schedule Trigger runs every 6 hours. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HTTP Request node&lt;/strong&gt; calls the Flask API.&lt;br&gt;
&lt;strong&gt;OpenAI node&lt;/strong&gt; receives the JSON response and analyzes it with this prompt:&lt;br&gt;
"You are analyzing parking detection model drift. Extract confidence scores from the data and explain why drift occurred. Provide 3 specific actions, timeline, and prevention strategy."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Email node&lt;/strong&gt; sends email with detailed AI analysis. &lt;/p&gt;

&lt;p&gt;The AI doesn't just parrot numbers back.&lt;/p&gt;

&lt;p&gt;It provides context: &lt;strong&gt;"Confidence dropped from 0.927 to 0.850 likely due to seasonal lighting changes. Collect 500 morning/evening images and retrain within 48 hours."&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;That's actionable intelligence, not just data.&lt;/p&gt;

&lt;p&gt;Every six hours, n8n calls the Flask API, checks drift, and uses GPT-4 for automated analysis.&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%2Fwwueymr8rzk375rpxolo.png" 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%2Fwwueymr8rzk375rpxolo.png" alt="n8n workflow" width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The workflow identifies the root cause — for example, “Confidence dropped from 0.927 to 0.850 due to morning glare; recommend collecting 500+ images at sunrise and retraining within 48h.”&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%2Fvp8dsu9eaxd28yqvw19k.png" 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%2Fvp8dsu9eaxd28yqvw19k.png" alt="Email" width="800" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That’s not just monitoring — it’s autonomous diagnostics.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚧 Challenges I Overcame
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Database Schema Issues:&lt;/strong&gt; Rebuilt tables with strict column definitions to ensure consistency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Camera Angle Variations:&lt;/strong&gt; Restricted testing to top-down views after model failure on angled inputs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IPv6 Conflicts:&lt;/strong&gt; Forced localhost to 127.0.0.1 to resolve n8n connectivity.&lt;/p&gt;

&lt;p&gt;Each bug reinforced one truth: AI isn’t fragile — it’s just precise.&lt;/p&gt;

&lt;h2&gt;
  
  
  📈 Results &amp;amp; Impact
&lt;/h2&gt;

&lt;p&gt;✅ Average confidence: 0.927&lt;/p&gt;

&lt;p&gt;Check the model in action &lt;a href="https://youtube.com/shorts/IvjWsnbJE2I?feature=share" rel="noopener noreferrer"&gt;&lt;strong&gt;here!&lt;/strong&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's &lt;strong&gt;93% certainty&lt;/strong&gt; on every prediction.&lt;br&gt;
✅ Detection latency: Under 2 seconds&lt;/p&gt;

&lt;p&gt;Before this system, someone spent &lt;strong&gt;2 hours&lt;/strong&gt; weekly checking dashboards, exporting CSVs, calculating metrics manually. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Now?&lt;/strong&gt; Automated checks every 6 hours with AI-powered insights. That's 104 hours saved annually per project.&lt;/p&gt;

&lt;p&gt;✅ Monitoring overhead: Reduced by 90%&lt;/p&gt;

&lt;p&gt;The system self-monitors, self-alerts, and maintains accuracy without human intervention — the definition of a self-healing AI system.&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 Why It Matters
&lt;/h2&gt;

&lt;p&gt;At its core, this project isn’t just about detecting parked cars — it’s about teaching AI to take care of itself.&lt;/p&gt;

&lt;p&gt;In **traditional model **workflows, humans chase errors after they happen. But in this system, the AI detects, diagnoses, and recommends fixes before failure ever reaches production. That’s the leap from automation to autonomy. ⚙️&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Self-healing models&lt;/strong&gt; means fewer outages, less manual intervention, and more time spent innovating instead of firefighting. It represents a world where engineers design once — and systems sustain themselves indefinitely. ♻️&lt;/p&gt;

&lt;p&gt;And this concept extends far beyond parking lots:&lt;/p&gt;

&lt;p&gt;🏭 In manufacturing, it can detect drift in defect inspection models.&lt;/p&gt;

&lt;p&gt;🛒 In retail, it can adapt to changing customer behaviors.&lt;/p&gt;

&lt;p&gt;🚨 In security, it ensures camera analytics never degrade unnoticed.&lt;/p&gt;

&lt;p&gt;By building AI that evolves with its environment, we move closer to a future where our systems aren’t just intelligent — they’re resilient, self-aware, and built to last.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 What’s Next
&lt;/h2&gt;

&lt;p&gt;The next phase includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deploying to live camera streams&lt;/li&gt;
&lt;li&gt;Introducing A/B testing for model updates&lt;/li&gt;
&lt;li&gt;Enabling automated retraining loops&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🚀 Final Verdict
&lt;/h2&gt;

&lt;p&gt;Being future-minded means building systems that &lt;strong&gt;don't just solve today's problems&lt;/strong&gt;.🚀 &lt;/p&gt;

&lt;p&gt;That's what this architecture delivers. Your model from six months ago should still work six months from now—either because nothing changed, or because the system detected changes and adapted automatically.&lt;/p&gt;

&lt;p&gt;Want to build your own self-healing ML system? The code is modular, the architecture is proven, and the results speak for themselves.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start with your specific use case. Add monitoring. Layer in drift detection. Automate the alerts. Iterate.&lt;/strong&gt;&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%2Fmosz6oy1te15j6qz0v0g.gif" 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%2Fmosz6oy1te15j6qz0v0g.gif" alt="Yeeih" width="480" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Go make your &lt;strong&gt;models immortal&lt;/strong&gt;. 🎯&lt;/p&gt;

</description>
      <category>monitoring</category>
      <category>automation</category>
      <category>devops</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>🚀 From Rejection to Reinvention: How I Built an AI That Finds My Jobs</title>
      <dc:creator>kareemblessed</dc:creator>
      <pubDate>Fri, 10 Oct 2025 13:28:01 +0000</pubDate>
      <link>https://forem.com/kareemblessed/from-rejection-to-reinvention-how-i-built-an-ai-that-finds-my-jobs-1dgm</link>
      <guid>https://forem.com/kareemblessed/from-rejection-to-reinvention-how-i-built-an-ai-that-finds-my-jobs-1dgm</guid>
      <description>&lt;p&gt;For months, I chased opportunities that never called back. I’d tweak my résumé, send dozens of applications, and refresh my inbox like a ritual. The silence became heavier with each click of “Submit.”&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%2Fn58vgcbqn9twu5yro2tn.gif" 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%2Fn58vgcbqn9twu5yro2tn.gif" alt="Frustated" width="480" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then one night, instead of searching for another job, I decided to build something that could search for me🔥.&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%2Fz63yfg6d7rzvnm709tar.gif" 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%2Fz63yfg6d7rzvnm709tar.gif" alt="Mind Blown" width="480" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That’s how Smart Job Filter was born — a fully automated job-hunting system built in n8n, powered by Google Gemini, LinkedIn Scraping via Apify, and smart logic that scores and filters results🔥.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚙️ How It All Clicks Together
&lt;/h2&gt;

&lt;p&gt;The workflow feels almost human. It doesn’t just fetch listings — it reads, understands, and decides what fits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. AI Agent Node 🧠&lt;/strong&gt;&lt;br&gt;
Gemini acts as the reader and interpreter. It analyzes the candidate’s CV, extracting job titles, years of experience, and skills like “SEO,” “Copywriting,” or “React.” It turns career history into clean, structured data the rest of the system can use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. HTTP Request Node 🌐&lt;/strong&gt;&lt;br&gt;
That structured data becomes a live search query. Using the Apify LinkedIn Scraper, the node dynamically pulls &lt;strong&gt;80 listings&lt;/strong&gt; that match a candidate’s top three job titles and five strongest skills — across any chosen city or remote setup.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Function Node ⚙️&lt;/strong&gt;&lt;br&gt;
Here’s where the magic happens. Each job gets analyzed, scored, and filtered — the system keeps only the &lt;strong&gt;top five matches&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It’s precision hiring, not endless scrolling.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;JavaScript

if (job.description.includes(skill)) score += 8;
if (job.location.includes(candidateLocation)) score += 20;
if (postedTime.includes('hour')) score += 10;


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

&lt;/div&gt;



&lt;p&gt;The higher the score, the more relevant the role.&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%2Fvkgt47bkbl2nq3siwi48.png" 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%2Fvkgt47bkbl2nq3siwi48.png" alt="The workflow" width="800" height="283"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💌 When Automation Feels Personal&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The first time it ran, I opened my inbox to an email titled “🎯 &lt;strong&gt;Your Top 5 Job Matches Are Ready.&lt;/strong&gt;”&lt;br&gt;
There they were — real opportunities that aligned with who I was, not just what I typed into a search bar.&lt;/p&gt;

&lt;p&gt;I didn’t just build automation. I built understanding.&lt;br&gt;
This n8n workflow doesn’t chase jobs — it curates them.&lt;br&gt;
And for the first time, I’m not applying blindly — I’m applying smart.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎥 Demo &amp;amp; Collaboration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can watch the demo video of Smart Job Filter in action &lt;a href="https://youtu.be/MySYaq59WHE" rel="noopener noreferrer"&gt;Here!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’d like access to the workflow, want to collaborate, or just discuss automation, feel free to reach out.&lt;/p&gt;

&lt;p&gt;Let’s build the next generation of smart job-hunting tools — together🎯.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>career</category>
      <category>automation</category>
      <category>showdev</category>
    </item>
    <item>
      <title>From ‘What Did We Decide?’ to ‘Got It, AI!’ 🤖</title>
      <dc:creator>kareemblessed</dc:creator>
      <pubDate>Tue, 30 Sep 2025 14:48:48 +0000</pubDate>
      <link>https://forem.com/kareemblessed/from-what-did-we-decide-to-got-it-ai-328b</link>
      <guid>https://forem.com/kareemblessed/from-what-did-we-decide-to-got-it-ai-328b</guid>
      <description>&lt;h2&gt;
  
  
  😫 The Executive Nightmare
&lt;/h2&gt;

&lt;p&gt;We’ve all been there. You sit through a big meeting 📊 — decisions made, action items flying, brilliant ideas shared. It feels like progress.&lt;/p&gt;

&lt;p&gt;But then reality hits. Days later, tasks vanish, decisions blur, and ideas are forgotten 🌀. &lt;/p&gt;

&lt;p&gt;Meanwhile, hours of meeting recordings just sit there 🎥🎧— untouched, unhelpful—while those “meeting minutes” collect dust. And productivity? Crashes to a standstill 🛑📉.&lt;/p&gt;

&lt;p&gt;Well, I decided to do something about it.&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%2Fuyu5xnrkfzz9pusew7xo.gif" 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%2Fuyu5xnrkfzz9pusew7xo.gif" alt="Let's do this!" width="400" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Enter the AI Meeting Agent: Chaos, Meet Clarity
&lt;/h2&gt;

&lt;p&gt;This isn’t just a recording tool. It’s a self-managing, fault-tolerant AI workflow that transforms any audio or video file into a structured, actionable, ready-to-use recap. &lt;/p&gt;

&lt;p&gt;Every meeting becomes accountable, organized, and crystal clear.&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%2F822ztqo62bhy5v41r3rm.gif" 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%2F822ztqo62bhy5v41r3rm.gif" alt="Meetings" width="480" height="269"&gt;&lt;/a&gt;&lt;br&gt;
This is how I built it:&lt;/p&gt;
&lt;h2&gt;
  
  
  🎯 Phase 1: Adaptive Triage – No File Left Behind
&lt;/h2&gt;

&lt;p&gt;The workflow validates and routes all uploaded media, whether audio or video. Videos are automatically converted to clean audio streams, so the AI always gets usable input.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;JavaScript
// Validate file and set conversion flag
if (!item.binary || Object.keys(item.binary).length === 0) {
  throw new Error('No binary file found. Please upload a file.');
}
const fileExt = file.fileName.split('.').pop().toLowerCase();
const videoExts = ['mp4', 'mov', 'avi'];
const isVideo = videoExts.includes(fileExt);
return [{ json: { fileName: file.fileName, needsConversion: isVideo }, binary: { data: file } }];
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This ensures nothing gets lost, and the AI can focus on generating insights, not cleaning files. ✅&lt;/p&gt;

&lt;h2&gt;
  
  
  🧠 Phase 2: Precision AI – Structured Intelligence
&lt;/h2&gt;

&lt;p&gt;Once transcription is done via Google Gemini, the AI steps in as your expert assistant. &lt;/p&gt;

&lt;p&gt;It enforces a strict JSON schema, guaranteeing that every summary, action item, and speaker stat is accurate and actionable.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;JavaScript
{
  "tldr": "Brief 2–3 sentence summary",
  "action_items": [
    {"task": "...", "owner": "...", "confidence": 0.85}
  ],
  "speaker_stats": {
    "Speaker 1": {"talk_time_percentage": 40, "key_contributions": "..."}
  }
}

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

&lt;/div&gt;



&lt;p&gt;Every task has an owner. Every decision has a record. No more lost decisions or forgotten commitments. 💪&lt;/p&gt;

&lt;h2&gt;
  
  
  📧 Phase 3: Adaptive Delivery – Polished, Ready-to-Act Recaps
&lt;/h2&gt;

&lt;p&gt;The final step formats the AI output into a professional, readable email, complete with a smart title and dynamic speaker stats table:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;JavaScript
// Generate title and HTML table dynamically
if (!meetingTitle || meetingTitle.trim() === '') {
  meetingTitle = tldr.split('.').slice(0,1)[0] + '...';
}
let formattedSpeakers = `
  &amp;lt;table border="1"&amp;gt;
    &amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Speaker&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Talk %&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Key Contributions&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;
    ${Object.entries(speakerStats).map(([name, stats]) =&amp;gt; `
      &amp;lt;tr&amp;gt;
        &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;${name}&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;${stats.talk_time_percentage || 0}%&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;${stats.key_contributions || 'N/A'}&amp;lt;/td&amp;gt;
      &amp;lt;/tr&amp;gt;`).join('')}
  &amp;lt;/table&amp;gt;
`;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The outcome? Instant, polished, actionable recaps delivered directly via Gmail. &lt;/p&gt;

&lt;p&gt;Meetings are no longer a productivity drain—they’re a source of clarity, accountability, and action. 💯&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 The AI Meeting Transformation
&lt;/h2&gt;

&lt;p&gt;No more lost tasks. No more forgotten decisions. Every idea captured, every action assigned, every meeting turned into pure productivity gold.&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%2F1w3h3za8vjiox0e60taw.gif" 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%2F1w3h3za8vjiox0e60taw.gif" alt="Yeeih" width="480" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With AI handling the chaos, you can finally focus on what really matters: making decisions, innovating, and driving your team forward.&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%2Fy3o8yt0047rwypqnp24s.png" 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%2Fy3o8yt0047rwypqnp24s.png" alt="The n8n Workflow" width="800" height="317"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💡 Meetings will never be the same again. Your AI co-pilot is here—smart, precise, unstoppable.&lt;/p&gt;

&lt;p&gt;📽️ See it in action in the &lt;a href="https://youtu.be/QGvNXb-sVSo" rel="noopener noreferrer"&gt;demo video&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;💬 Interested in collaborating, building a team, or exploring opportunities? Reach me &lt;a href="//blessedronan@gmail.com"&gt;here!&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>automation</category>
      <category>productivity</category>
      <category>ai</category>
    </item>
    <item>
      <title>From Chaos to Clarity: How I Built CrammAI, the AI Study Copilot I Wish I Had in University</title>
      <dc:creator>kareemblessed</dc:creator>
      <pubDate>Thu, 25 Sep 2025 20:34:53 +0000</pubDate>
      <link>https://forem.com/kareemblessed/from-chaos-to-clarity-how-i-built-crammai-the-ai-study-copilot-i-wish-i-had-in-university-64m</link>
      <guid>https://forem.com/kareemblessed/from-chaos-to-clarity-how-i-built-crammai-the-ai-study-copilot-i-wish-i-had-in-university-64m</guid>
      <description>&lt;h2&gt;
  
  
  The Spark Behind CrammAI
&lt;/h2&gt;

&lt;p&gt;Back in university, my classmates probably thought I never slept 😅. I was always neck-deep in coding projects 💻, tinkering with the latest AI tools 🤖, and still somehow crushing my exams 🎯.&lt;/p&gt;

&lt;p&gt;But here’s the truth: my bottleneck wasn’t understanding the concepts 🧠. I could pick those up fast.&lt;/p&gt;

&lt;p&gt;The real struggle was wading through endless PDFs 📑, lecture notes 📝, and convoluted study guides 📘 just to find the critical info.&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%2Fopig726ygwxrcnerl9rl.gif" 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%2Fopig726ygwxrcnerl9rl.gif" alt="Studying for Exams" width="360" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I kept thinking: “_&lt;em&gt;If only I had an AI that could automate this process. Something that could ingest all my materials and tell me exactly what to focus on.&lt;/em&gt;”&lt;/p&gt;

&lt;p&gt;Fast forward a few years later — I finally built it. 🎉&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%2Ftn246kywdeiyw12xtbvq.gif" 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%2Ftn246kywdeiyw12xtbvq.gif" alt="The Aha! Moment" width="480" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Meet &lt;strong&gt;CrammAI — the study co-pilot&lt;/strong&gt; I wish I had in uni 🧑‍🎓. &lt;/p&gt;

&lt;p&gt;No more late-night panic — &lt;strong&gt;CrammAI&lt;/strong&gt; takes your notes and transforms them into &lt;strong&gt;cram sheets&lt;/strong&gt;, &lt;strong&gt;clever mnemonics&lt;/strong&gt;, a &lt;strong&gt;24/7 chat tutor&lt;/strong&gt;, &lt;strong&gt;smart quizzes&lt;/strong&gt;, and even a &lt;strong&gt;live voice tutor.&lt;/strong&gt;  How Awesome is that!!&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%2Fnw67c9wpxks7hqsk7y9y.gif" 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%2Fnw67c9wpxks7hqsk7y9y.gif" alt="Mind Blown" width="480" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dude, Chaos in, clarity out ⚡📚.&lt;/p&gt;

&lt;p&gt;Here’s how I built this personal study automation engine.&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ The Tech Stack: My Automation Pipeline
&lt;/h2&gt;

&lt;p&gt;To bring this to life, I needed a stack that was fast, modern, and could seamlessly integrate powerful AI capabilities. The goal was to build an automated content analysis and generation pipeline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Frontend:&lt;/strong&gt; React with TypeScript for a dynamic and type-safe user interface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Engine:&lt;/strong&gt; The Google Gemini API (@google/genai) is the core of the automation. It handles document analysis, topic prioritization, and content generation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Styling:&lt;/strong&gt; Good old-fashioned CSS. Clean, simple, and effective.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: 🕹️ The User Input: Setting the Automation Parameters
&lt;/h2&gt;

&lt;p&gt;Every good automation workflow starts with clear inputs. For CrammAI, the user defines the parameters by choosing a "study mode" based on their timeline. This was crucial because how you study with a week to spare is completely different from how you study the night before.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧘 Cruise Control (1+ week):&lt;/strong&gt; Comprehensive, deep-dive automation.&lt;br&gt;
&lt;strong&gt;🚀 Turbo Mode (~2 days):&lt;/strong&gt; Strategic automation focusing on high-impact topics.&lt;br&gt;
&lt;strong&gt;⚡ Zoom Mode (Due tonight):&lt;/strong&gt; A tactical strike plan. The AI automates the process of finding only the absolute must-know concepts for a last-minute cram session.&lt;/p&gt;

&lt;p&gt;This initial choice acts as the primary instruction for the AI automation pipeline that follows.&lt;br&gt;
code&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Tsx
// Simplified React component for mode selection
const HomePage = ({ onSelectMode }) =&amp;gt; (
    &amp;lt;div className="mode-selection"&amp;gt;
        {/* The "Zoom Mode" card for last-minute crammers like me! */}
        &amp;lt;div className="mode-card zoom" onClick={() =&amp;gt; onSelectMode('zoom')}&amp;gt;
            &amp;lt;div className="mode-icon"&amp;gt;⚡&amp;lt;/div&amp;gt;
            &amp;lt;h2 className="mode-title"&amp;gt;Zoom Mode&amp;lt;/h2&amp;gt;
            &amp;lt;p className="mode-description"&amp;gt;Due tonight. Maximum focus, maximum efficiency.&amp;lt;/p&amp;gt;
        &amp;lt;/div&amp;gt;
        {/* Other modes follow the same pattern... */}
    &amp;lt;/div&amp;gt;
);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 2: 📤 Automating File Ingestion and Preparation
&lt;/h2&gt;

&lt;p&gt;My AI co-pilot needed to read my study materials. The Gemini API can process various file types, but it requires them in a specific format (base64 encoded strings). To make this seamless, I wrote a helper function to automate the conversion.&lt;/p&gt;

&lt;p&gt;This function takes a standard File object from the browser, reads it, and automatically converts it into the JSON structure the Gemini API expects.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
Tsx
/**
 * An automated utility to convert a browser File object
 * into the Gemini API's expected Part format.
 */
import { Part } from "@google/genai";

const fileToGenerativePart = (file: File): Promise&amp;lt;Part&amp;gt; =&amp;gt; {
  return new Promise((resolve, reject) =&amp;gt; {
    const reader = new FileReader();
    reader.readAsDataURL(file);
    reader.onload = () =&amp;gt; {
      // The result is a Data URL, e.g., "data:image/png;base64,iVBORw..."
      // We automate splitting and extracting the necessary base64 data.
      const base64Data = (reader.result as string).split(',')[1];
      resolve({
        inlineData: {
          mimeType: file.type,
          data: base64Data
        }
      });
    };
    reader.onerror = error =&amp;gt; reject(error);
  });
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3: 🧠 The Core Automation: AI-Powered Analysis and Planning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is where the real magic happens. The app sends the user's files and the selected study mode to the Gemini API. The key to successful automation here is enforcing a strict output format.&lt;/p&gt;

&lt;p&gt;You can’t build a reliable automation pipeline if you're just hoping the AI gives you good data. The Gemini API’s responseSchema feature is a lifesaver. It forces the AI to return clean, predictable JSON every single time. &lt;/p&gt;

&lt;p&gt;This completely automates the data-parsing step and makes the app incredibly robust.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Tsx
// Inside the main plan generation function
import { GoogleGenAI, Type } from "@google/genai";

const ai = new GoogleGenAI({ apiKey: process.env.API_KEY });

// 1. Get user-defined parameters (mode) and prepare files
const prompt = getPromptForMode(mode);
const fileParts = await Promise.all(uploadedFiles.map(fileToGenerativePart));

// 2. Define the automation's output contract (the JSON schema)
const responseSchema = {
    type: Type.OBJECT,
    properties: {
        study_these: {
            type: Type.ARRAY,
            description: "A list of the most critical topics to study.",
            items: { /*... topic, reason, key_points ...*/ }
        }
    }
};

// 3. Trigger the AI automation pipeline
const response = await ai.models.generateContent({
    model: 'gemini-2.5-flash',
    contents: [prompt, ...fileParts],
    config: {
        responseMimeType: 'application/json',
        responseSchema: responseSchema, // Enforce the contract!
    },
});

// 4. The result is clean, structured data, ready for the UI. No messy parsing needed.
const result = JSON.parse(response.text);
setAnalysisResult(result); %}

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 4: ⚡ Automating Active Recall: Flashcards &amp;amp; AI Grading
&lt;/h2&gt;

&lt;p&gt;A study plan is just the start 📅. To really learn, you need active recall 💡. CrammAI automates this by generating “Flashcard Sprints” for each topic 🃏.&lt;/p&gt;

&lt;p&gt;But the coolest automation? The grading ✅.&lt;/p&gt;

&lt;p&gt;When a user submits an answer, I don’t just do a basic string comparison. Instead, I send both the user’s answer and the correct answer to the Gemini API 🌐, asking it to grade for conceptual correctness. This makes the system feel way more intelligent — almost human 🤖.&lt;/p&gt;

&lt;p&gt;And yes, this is fully automated with a response schema 📐 to guarantee a simple true/false plus clear feedback 📝.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Tsx
// The prompt for the automated AI grader
const prompt = `You are an AI grader. Be lenient with phrasing but strict on the core concept.

**Question:** ${currentCard.question}
**Correct Answer:** ${currentCard.answer}
**User's Answer:** ${userAnswer}

Is the user's answer substantially correct?`;

// The schema for a simple, automated response
const evaluationSchema = {
    type: Type.OBJECT,
    properties: {
        is_correct: { type: Type.BOOLEAN },
        feedback: { type: Type.STRING }
    }
};

// The API call uses this prompt and schema to automate the grading process.
const response = await ai.models.generateContent({ /* ... */ });
const result = JSON.parse(response.text); // e.g., { is_correct: true, feedback: "Spot on!" }

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  📝✨ How CrammAI Uses RAG for Smarter, Context-Aware Learning
&lt;/h2&gt;

&lt;p&gt;CrammAI doesn’t just generate study materials — it understands them.&lt;br&gt;
To ensure every summary, mnemonic, and quiz is relevant to your syllabus, the AI uses a method called &lt;strong&gt;Retrieval-Augmented Generation (RAG).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This approach makes our AI precise, context-aware, and fully grounded in your uploaded course materials — not random internet data.&lt;/p&gt;

&lt;p&gt;Here’s how it works 👇&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔍 Retrieval:&lt;/strong&gt;&lt;br&gt;
When you upload your syllabus, notes, or textbooks, CrammAI extracts key concepts and builds a personalized knowledge base from your content. This ensures the AI only learns from your course materials — nothing else.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;⚙️ Augmentation:&lt;/strong&gt;&lt;br&gt;
Next, your request (for example, “Create a high-priority study plan for my chemistry exam”) is merged with the retrieved information. This creates a rich, context-driven prompt that fully represents what you’re studying.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✨ Generation:&lt;/strong&gt;&lt;br&gt;
Finally, this augmented prompt is sent to the Gemini API, which generates your study plan, summaries, and quizzes directly from your documents. Every output is accurate, personalized, and free from hallucination.&lt;/p&gt;

&lt;p&gt;This RAG-powered workflow ensures CrammAI acts like a top-tier tutor — one who reads your notes before teaching you.&lt;/p&gt;

&lt;p&gt;Simplified Implementation Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Tsx
// 1. Retrieve content from user files
const userDocuments = await processFiles(uploadedFiles);

// 2. Augment user's request with retrieved context
const userRequest = "Generate a high-priority study plan for my exam.";
const augmentedPrompt = `${userDocuments}\n\n${userRequest}`;

// 3. Generate context-grounded output using Gemini
const studyPlan = await gemini.generateContent(augmentedPrompt);

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

&lt;/div&gt;



&lt;p&gt;By combining retrieval, augmentation, and generation, CrammAI delivers precise, syllabus-aligned results that make every minute of studying count. 🎯&lt;/p&gt;

&lt;h2&gt;
  
  
  🧠 CrammAI Features That Make Learning Stick
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;📝✨ AI-Generated Cram Notes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Forget dull summaries — this is next-level note-taking. For every high-priority topic, CrammAI creates study notes engineered for rapid learning and retention. Each note is crafted with:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔎 Quick Summary:&lt;/strong&gt; The big idea in just a few sentences.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🚀 Key Breakdowns:&lt;/strong&gt; Complex concepts split into bite-sized, structured chunks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡 Real-World Examples:&lt;/strong&gt; See how theories work in practice for easier understanding.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧠 Memory Hooks:&lt;/strong&gt; Clever metaphors, visuals, or “Remember tips” to make facts stick.&lt;/p&gt;

&lt;p&gt;It’s like having a world-class tutor turn dense material into simple, usable cheat sheets.&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%2F5wbuynvcsoqsm95qnxgt.png" 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%2F5wbuynvcsoqsm95qnxgt.png" alt="Ai Study Notes Section" width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎨 The Mnemonic Studio – Learning Made Fun&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tricky topic? No problem. The Mnemonic Studio creates catchy, memorable acronyms using famous names — cities 🗽, brands 🏷️, even celebrities 🌟.&lt;/p&gt;

&lt;p&gt;Instead of random letters, think TESLA ⚡ for the principles of electromagnetism. Don’t like the first idea? Just say, “Make it based on a movie character!” &lt;br&gt;
🎬 You’ll always get a version that sticks.&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%2Fz8329w0b4mli3vx1fi7d.png" 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%2Fz8329w0b4mli3vx1fi7d.png" alt="The Chat Studio" width="555" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💬 The Chat Studio – Your 24/7 AI Tutor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is your always-available study buddy 🤓. Right under your notes, you can ask:&lt;/p&gt;

&lt;p&gt;“What were the three main points from the Cellular Respiration lecture?”&lt;/p&gt;

&lt;p&gt;“Can you explain this concept in simpler words?”&lt;/p&gt;

&lt;p&gt;The AI only pulls from the materials you uploaded 📚 — so answers are accurate, relevant, and tailored to your course.&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%2Fqsiqkd6qwtnchm11roce.png" 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%2Fqsiqkd6qwtnchm11roce.png" alt="The Mnemonic Studio Section" width="800" height="705"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Instant Practice Quizzes (with Explanations!)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Skip boring flashcards — test yourself with smart, interactive quizzes 🎯. CrammAI automatically generates multiple-choice questions from your notes.&lt;/p&gt;

&lt;p&gt;But here’s the real game-changer: every time you answer, you get instant, clear explanations of why the correct answer is right 💡.&lt;/p&gt;

&lt;p&gt;It’s the fastest way to lock knowledge into long-term memory.&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%2Fmq9i1dju7tulici9adnv.png" 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%2Fmq9i1dju7tulici9adnv.png" alt="Practice Quizz Section" width="800" height="510"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎙️ The Live Tutor&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Simply start talking, and the AI tutor listens. It responds in real-time with spoken answers. 🗣️&lt;br&gt;
Your tutor knows your exact study materials. This provides a focused and relevant learning session. 📚&lt;br&gt;
Ask questions and test your knowledge. It's a truly interactive and engaging study experience. ✨&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%2Fhopqmc93kx14zavxukmg.png" 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%2Fhopqmc93kx14zavxukmg.png" alt="The Live Tutor" width="800" height="669"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🤔 Challenges &amp;amp; Lessons Learned
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;⚡ Automation Loves Specificity&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Prompt engineering is everything. To get reliable output from the AI, I had to be super precise. My prompts are filled with rules, examples, and format instructions. The more specific the prompt, the better the AI agent performs. 🎯&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📐 Schema is Non-Negotiable&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For any serious app, responseSchema is your best friend. It turns the AI from a creative but unpredictable partner into a reliable, deterministic teammate 🤝.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Conclusion &amp;amp; Next Steps
&lt;/h2&gt;

&lt;p&gt;Building CrammAI was an absolute blast 🤖💡. It’s proof that with today’s tools, you can create powerful automation pipelines for almost anything — even those frantic last-minute cram sessions before exams. 📚🔥&lt;/p&gt;

&lt;h2&gt;
  
  
  So what’s next for my AI study co-pilot?
&lt;/h2&gt;

&lt;p&gt;🎧 Expanding the Pipeline – Support for video transcripts 🎥 and audio notes 🎙️.&lt;/p&gt;

&lt;p&gt;⚡ More Personalization – Tailored study strategies for different learning styles.&lt;/p&gt;

&lt;p&gt;At the end of the day, this project taught me one big lesson: if something feels tedious, automate it. 🛠️✨&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%2Ff5vrbad9jd1cegoo8slg.gif" 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%2Ff5vrbad9jd1cegoo8slg.gif" alt="Dancing" width="500" height="500"&gt;&lt;/a&gt;&lt;br&gt;
Ever wish AI could just tell you what to study before an exam? That’s why I built CrammAI. Check it out 👉 &lt;a href="https://cramm-ai.vercel.app/" rel="noopener noreferrer"&gt;Here!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So… what could you automate in your own life? 🚀&lt;/p&gt;

&lt;p&gt;💬 Interested in collaborating, building a team, or exploring opportunities? Reach me &lt;a href="//blessedronan@gmail.com"&gt;here!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy coding, and happy cramming! 😎💻📖&lt;/p&gt;

&lt;h1&gt;
  
  
  AI #Automation #MachineLearning #EdTech #TypeScript #ReactJS #GeminiAPI #FrontendDevelopment #PortfolioProject
&lt;/h1&gt;

</description>
      <category>showdev</category>
      <category>productivity</category>
      <category>ai</category>
      <category>learning</category>
    </item>
    <item>
      <title>From PDFs to Palaces: Inside the AI That Turns Knowledge into Memory Architecture</title>
      <dc:creator>kareemblessed</dc:creator>
      <pubDate>Thu, 11 Sep 2025 13:25:55 +0000</pubDate>
      <link>https://forem.com/kareemblessed/from-pdfs-to-palaces-inside-the-ai-that-turns-knowledge-into-memory-architecture-2cpj</link>
      <guid>https://forem.com/kareemblessed/from-pdfs-to-palaces-inside-the-ai-that-turns-knowledge-into-memory-architecture-2cpj</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/google-ai-studio-2025-09-03"&gt;Google AI Studio Multimodal Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Mind Architect solves humanity's oldest learning challenge: information retention. By supercharging the ancient Method of Loci with Gemini's multimodal power, it transforms dense documents into immersive, interactive memory palaces that make knowledge stick.&lt;/p&gt;

&lt;p&gt;🎯 The Problem: Students forget 70% of what they learn within 24 hours. Traditional study methods fail because they fight against how our brains naturally work.&lt;/p&gt;

&lt;p&gt;⚡ The Solution: Upload any document, and AI transforms it into a visual, spatial learning experience that leverages your brain's extraordinary capacity for remembering places and stories.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;This is a &lt;a href="https://youtu.be/HhnGzysriPw" rel="noopener noreferrer"&gt;video-demo&lt;/a&gt; of how Awesome the Mind Architect is.&lt;/p&gt;

&lt;p&gt;Feel free to check the web-app using the &lt;a href="https://ai.studio/apps/drive/1nre2nxitGpMnaLuDUaW6FuRXZSgYiUgt" rel="noopener noreferrer"&gt;link&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 User Journey: From Document to Palace
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;📤 Upload &amp;amp; Analyze&lt;/strong&gt;&lt;br&gt;
Users drop in PDFs, Word docs, or text files. Gemini instantly analyzes structure, identifies key concepts, and assesses complexity—all in seconds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🏗️ Choose Your Architecture&lt;/strong&gt;&lt;br&gt;
Three AI-powered blueprints emerge:&lt;/p&gt;

&lt;p&gt;🎯 Focus Palace: Single concept, 2-minute mastery&lt;br&gt;
🏘️ Palace Series: Section-by-section connected journey&lt;br&gt;
🏛️ Mega Palace: Full cinematic experience with video, narration, and AI chat&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;⚡ Real-Time Construction&lt;/strong&gt;&lt;br&gt;
Watch your palace materialize through a live construction log. Neural networks fire, concepts crystallize, and knowledge transforms into architecture before your eyes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🌟 Immersive Exploration&lt;/strong&gt;&lt;br&gt;
Navigate through custom "loci" (rooms), each representing core concepts with visual mnemonics, spatial audio, and resident AI experts ready to answer questions.&lt;/p&gt;
&lt;h2&gt;
  
  
  How I Used Google AI Studio
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;🧩 Schema-Driven Reliability&lt;/strong&gt;&lt;br&gt;
The breakthrough was leveraging responseSchema for bulletproof AI integration. Instead of fragile string parsing, I defined strict JSON schemas that ensure predictable, reliable output every time:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const locusSchema = {
    type: Type.OBJECT,
    properties: {
        title: { type: Type.STRING },
        icon: { type: Type.STRING },
        concept: { type: Type.STRING },
        image: { type: Type.STRING },
        pegs: { type: Type.ARRAY, items: { type: Type.STRING }},
        speechScript: { type: Type.STRING }
    },
    required: ["title", "icon", "concept", "image", "pegs"]
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;🎬 Multimodal Video Generation&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;javascriptlet operation = await ai.models.generateVideos({
    model: 'veo-2.0-generate-001',
    prompt: `Cinematic, high detail, 8k, photorealistic: ${locus.image}`,
    config: { numberOfVideos: 1 }
});

while (!operation.done) {
    await new Promise(resolve =&amp;gt; setTimeout(resolve, 10000));
    operation = await ai.operations.getVideosOperation({ operation });
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Veo integration transforms abstract concepts into cinematic experiences. Each memory palace room gets its own AI-generated video tour that makes learning unforgettable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🛡️ Intelligent Fallback System&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;javascript} catch (videoError) {
    if (isQuotaError(videoError)) {
        onProgress(`🛑 Video quota exhausted. Falling back to static images.`);
        const imageResponse = await ai.models.generateImages({
            model: 'imagen-4.0-generate-001',
            prompt: `Cinematic, high detail, 8k: ${locus.image}`
        });
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Built production-grade resilience with automatic Veo → Imagen fallback. When video quotas hit, the system seamlessly switches to high-quality static images without breaking the user experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎯 Result:&lt;/strong&gt; Zero parsing errors, seamless frontend integration, and production-ready stability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;⚡ Gemini 2.5 Flash: The Perfect Engine&lt;/strong&gt;&lt;br&gt;
Chose gemini-2.5-flash as the core engine for its exceptional speed, massive context window, and flawless instruction-following with JSON output. Every palace generation completes in under 30 seconds.&lt;/p&gt;

&lt;h2&gt;
  
  
  Multimodal Features
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;🎥 Cinematic Memory with Veo&lt;/strong&gt;&lt;br&gt;
The Mega Palace showcases true multimodal power. Veo-2.0 transforms abstract concepts into cinematic experiences:&lt;/p&gt;

&lt;p&gt;📝 Process: Gemini generates atmospheric prompts → Veo creates stunning video tours → Abstract becomes unforgettable&lt;br&gt;
🧬 Example: "Cellular mitosis" becomes "a cosmic dance of dividing starlit cells in an ethereal laboratory"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🖼️ Intelligent Fallback System&lt;/strong&gt;&lt;br&gt;
Built production-grade resilience with smart error handling:&lt;/p&gt;

&lt;p&gt;⚠️ Challenge: API quotas can cause failures&lt;br&gt;
🛡️ Solution: Automatic fallback from Veo → Imagen-4.0 with identical prompts&lt;br&gt;
✅ Result: Users always get premium visuals, construction never halts&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎙️ Adaptive AI Narration&lt;/strong&gt;&lt;br&gt;
Gemini generates personalized speechScripts based on user-selected personas:&lt;/p&gt;

&lt;p&gt;👨‍🏫 Sage: Philosophical, wisdom-focused explanations&lt;br&gt;
🤝 Mentor: Encouraging, supportive guidance&lt;br&gt;
🎓 Scholar: Academic, detailed technical insights&lt;br&gt;
Browser Text-to-Speech synthesizes these into guided tours, creating full auditory immersion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💬 Contextual AI Chat&lt;/strong&gt;&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%2Fjnwj0623vx1q1y7id3of.png" 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%2Fjnwj0623vx1q1y7id3of.png" alt="The Contextual AI Chat Interface" width="741" height="319"&gt;&lt;/a&gt;&lt;br&gt;
"Query the Architect" feature provides expert guidance within each locus:&lt;br&gt;
🔄 Flow: When you ask a question inside a palace room, the AI receives your question along with complete context about where you are, what concept you're studying, and the specific visual mnemonics surrounding you. This gives the AI full understanding of your exact learning moment.&lt;/p&gt;

&lt;p&gt;🧠 Magic: The AI crafts responses that directly reference the visual elements you're seeing in that room. Instead of generic explanations, it connects answers to the spinning crystals, glowing orbs, or floating symbols around you, turning abstract concepts into unforgettable visual memories.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>googleaichallenge</category>
      <category>ai</category>
      <category>gemini</category>
    </item>
    <item>
      <title>🛡️ PayShield: The Voice-Powered Shield Against $2.4B Daily Invoice Fraud</title>
      <dc:creator>kareemblessed</dc:creator>
      <pubDate>Mon, 28 Jul 2025 07:02:13 +0000</pubDate>
      <link>https://forem.com/kareemblessed/payshield-the-voice-powered-shield-against-24b-daily-invoice-fraud-2o1o</link>
      <guid>https://forem.com/kareemblessed/payshield-the-voice-powered-shield-against-24b-daily-invoice-fraud-2o1o</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/assemblyai-2025-07-16"&gt;AssemblyAI Voice Agents Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Every day, businesses lose $2.4 billion to email fraud. 😱 One fake "please update our banking details" email can bankrupt a company overnight. Traditional email security is utterly powerless because fraudsters look legitimate on paper.&lt;/p&gt;

&lt;p&gt;PayShield changes everything. 🚀✨&lt;/p&gt;

&lt;p&gt;We built the world's first real-time voice authentication fortress that challenges suspicious payment requests with military-grade biometrics. When your vendor asks to change bank details, PayShield makes them prove their voice in a lightning-fast 300ms using AssemblyAI's cutting-edge streaming technology.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 Revolutionary Defense System
&lt;/h2&gt;

&lt;p&gt;The moment Gmail detects payment changes, PayShield springs into action like a digital guardian. It generates cryptographically-secure challenge phrases from a 2048-word Diceware arsenal, then demands instant voice verification. No deepfake can fool our system — fraudsters simply cannot fake spontaneous speech patterns. 🎭❌&lt;/p&gt;

&lt;h2&gt;
  
  
  🔐 Enterprise Excellence
&lt;/h2&gt;

&lt;p&gt;Zero data exposure. Military-grade RSA encryption. Seamless Gmail integration. PayShield protects Fortune 500 companies without disrupting their workflow — it's like having a personal bodyguard for every invoice. 💼🛡️&lt;/p&gt;

&lt;p&gt;The future of payment security isn't passwords or 2FA — it's the unique signature of your voice. 🎤⚡&lt;/p&gt;

&lt;p&gt;Stop fraud before it starts. Your voice is your shield. 🚀&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;🔗 Live Protection: payshield.live&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%2Fvbg3wl8x6cmahi5mazj4.png" 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%2Fvbg3wl8x6cmahi5mazj4.png" alt=" " width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📹 See the Magic: Watch fraud get stopped in real-time&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub Repository
&lt;/h2&gt;

&lt;p&gt;Here is the link to my &lt;a href="https://github.com/kareemblessed/Web_app-Shield" rel="noopener noreferrer"&gt;code&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical Implementation &amp;amp; AssemblyAI Integration
&lt;/h2&gt;

&lt;p&gt;PayShield leverages AssemblyAI's Universal-1 streaming model for real-time voice verification that's absolutely revolutionary. 🚀 We generate cryptographically-secure Diceware challenge phrases, then use AssemblyAI's lightning-fast transcription to verify spoken responses in under 300ms.&lt;/p&gt;

&lt;p&gt;The streaming API processes voice data instantly, making it impossible for fraudsters to use pre-recorded audio or deepfakes. Our system captures live audio, sends it through AssemblyAI's powerful speech-to-text engine, then compares the transcription against expected challenge words with military-grade precision. 🎯&lt;/p&gt;

&lt;p&gt;The beauty? AssemblyAI handles all the heavy lifting — noise reduction, accent recognition, and real-time processing — while we focus on catching fraudsters red-handed. No delays, no excuses, just pure voice authentication excellence. 🎤✨&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import assemblyai as aai

async def verify_voice_challenge(self, audio_data: bytes, expected_phrase: str):
    """Real-time voice verification in 300ms"""
    aai.settings.api_key = os.getenv("ASSEMBLYAI_API_KEY")

    transcriber = aai.Transcriber()
    transcript = transcriber.transcribe(audio_data)

    # Compare transcription with challenge phrase
    similarity = self.calculate_similarity(transcript.text, expected_phrase)

    return {
        "verified": similarity &amp;gt; 0.85,
        "confidence": similarity,
        "processing_time_ms": transcript.processing_time
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Basically, traditional voice recognition fails under pressure. AssemblyAI's Universal-Streaming gave us superhuman capabilities:&lt;br&gt;
✨ Real-time processing - Fraudsters can't prepare fake recordings&lt;br&gt;
✨ Speaker characteristics - Extracts unique voice "DNA"&lt;br&gt;
✨ Noise resilience - Works perfectly in busy offices&lt;br&gt;
✨ Global language support - Protects international businesses&lt;br&gt;
✨ 99.5% accuracy - Catches even sophisticated attacks&lt;/p&gt;

&lt;h2&gt;
  
  
  The Emotional Impact 💔➡️❤️
&lt;/h2&gt;

&lt;p&gt;Before PayShield: CFOs lose sleep over wire fraud. Finance teams live in fear. Companies go bankrupt overnight.&lt;br&gt;
After PayShield: Instant peace of mind. Fraudsters exposed in 300ms. Businesses protected by voice truth.&lt;br&gt;
One verification badge in Gmail. One saved company. Priceless. 💎&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>assemblyaichallenge</category>
      <category>ai</category>
      <category>api</category>
    </item>
    <item>
      <title>🚨 I Built an AI Crisis Response Commander That Never Sleeps</title>
      <dc:creator>kareemblessed</dc:creator>
      <pubDate>Sun, 06 Jul 2025 14:11:26 +0000</pubDate>
      <link>https://forem.com/kareemblessed/i-built-an-ai-crisis-response-commander-that-never-sleeps-30ko</link>
      <guid>https://forem.com/kareemblessed/i-built-an-ai-crisis-response-commander-that-never-sleeps-30ko</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the Runner H &lt;a href="https://dev.to/challenges/runnerh"&gt;"AI Agent Prompting" Challenge"&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;🎯 An AI Crisis Response Coordinator that monitors 20+ critical sources 24/7 and creates instant action plans. While you sleep, it scans Reuters, Bloomberg, SEC filings, and social media for brewing threats.&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%2F1747pjdqs1u2tptgaeec.gif" 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%2F1747pjdqs1u2tptgaeec.gif" width="498" height="256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💡 The Problem? Companies react after crises explode. By then, it's damage control.&lt;/p&gt;

&lt;p&gt;🔥 The Solution? AI that prepares your response before the crisis hits mainstream news.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&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%2Feqb1917pbrtxq01pbta8.png" 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%2Feqb1917pbrtxq01pbta8.png" alt="The image shows Runner AI agent surfing through the websites" width="800" height="419"&gt;&lt;/a&gt;&lt;br&gt;
The image shows Runner AI agent surfing through the websites&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%2Falsmwfxplv5dl5h5s5vz.png" 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%2Falsmwfxplv5dl5h5s5vz.png" alt="This image shows how the AI agent compiling the results" width="800" height="355"&gt;&lt;/a&gt;&lt;br&gt;
This image shows how the AI agent compiling the results&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%2Fdz78aj2eat15lnr08y73.png" 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%2Fdz78aj2eat15lnr08y73.png" alt="The image is a snippet of the final report made by Runner H 🏆" width="800" height="678"&gt;&lt;/a&gt;&lt;br&gt;
The image is a snippet of the final report made by Runner H 🏆&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Used Runner H
&lt;/h2&gt;

&lt;p&gt;🎯 The Magic: One powerful prompt transform Runner H into a crisis management expert.&lt;br&gt;
&lt;strong&gt;What it does:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;📡 Monitors news, social media, government alerts&lt;br&gt;
🔍 Detects threats before they trend&lt;br&gt;
⚡ Generates 4-page action plans instantly&lt;br&gt;
&lt;strong&gt;The 4-Page Playbook:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;📋 Page 1: 30-minute emergency checklist&lt;br&gt;
📅 Page 2: 24-hour action plan with task owners&lt;br&gt;
💬 Page 3: Ready-to-send communications&lt;br&gt;
📞 Page 4: Complete contact matrix&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To replicate:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;- Use my comprehensive &lt;a href="https://github.com/kareemblessed/-AlertMaster-by-Runner-H---Business-Threat-Monitoring-System.git" rel="noopener noreferrer"&gt;monitoring prompt
&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;- Paste into Runner H&lt;/li&gt;
&lt;li&gt;- Get your custom crisis plan&lt;/li&gt;
&lt;li&gt;- Sleep better at night&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Use Case &amp;amp; Impact
&lt;/h2&gt;

&lt;p&gt;🏢 &lt;strong&gt;Perfect for startups who can't afford $50K crisis consultants, SMBs needing enterprise-level preparation, and executives wanting comprehensive protection.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This AI gives small businesses the same threat intelligence that Fortune 500 companies pay millions for annually.&lt;/p&gt;

&lt;p&gt;📊 &lt;strong&gt;Replaces $10K+ monthly monitoring services while generating comprehensive plans in minutes instead of weeks that traditional consultants require.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;During recent crypto volatility, it detected regulatory threats 18 hours before mainstream news, potentially saving millions in losses.&lt;/p&gt;

&lt;p&gt;🚨 &lt;strong&gt;Game changer for any business.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Turn reactive firefighting into proactive strategic advantage with 24/7 vigilance humans can't match&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%2Fqjgct2zd7mcd692oe8je.gif" 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%2Fqjgct2zd7mcd692oe8je.gif" width="500" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Social Love
&lt;/h3&gt;

&lt;p&gt;🔥 Ready to never be caught off-guard again?&lt;br&gt;
Drop a 🚨 if you've been blindsided by a business crisis!&lt;br&gt;
Crisis preparation is too important to gatekeep - &lt;a href="//blessedronan@gmail.com"&gt;let's connect&lt;/a&gt;! 💪&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>runnerhchallenge</category>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
