<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Akinapally Deepika</title>
    <description>The latest articles on DEV Community by Akinapally Deepika (@deepika5758).</description>
    <link>https://dev.to/deepika5758</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%2F3840402%2Fa024e06a-0db1-47c2-a603-be91f1813625.jpg</url>
      <title>DEV Community: Akinapally Deepika</title>
      <link>https://dev.to/deepika5758</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/deepika5758"/>
    <language>en</language>
    <item>
      <title>My Career AI Stopped Me From Applying to Jobs I Would Fail</title>
      <dc:creator>Akinapally Deepika</dc:creator>
      <pubDate>Mon, 23 Mar 2026 16:38:28 +0000</pubDate>
      <link>https://dev.to/deepika5758/my-career-ai-stopped-me-from-applying-to-jobs-i-would-fail-4gbe</link>
      <guid>https://dev.to/deepika5758/my-career-ai-stopped-me-from-applying-to-jobs-i-would-fail-4gbe</guid>
      <description>&lt;p&gt;“Why did it just tell me not to apply?” I looked at the logs as our system flagged a role as high-risk based on three past rejections with the same missing skill.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Problem We Couldn’t Ignore&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before adding memory, our system was… dumb. Not broken, not useless, but fundamentally limited.&lt;br&gt;
We had built a clean pipeline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upload resume&lt;/li&gt;
&lt;li&gt;Extract skills&lt;/li&gt;
&lt;li&gt;Compare with job description&lt;/li&gt;
&lt;li&gt;Output a match score&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On paper, it worked. In practice, it was repetitive and shallow.&lt;br&gt;
If a user applied to 10 backend roles and got rejected every time, the system still kept saying:&lt;br&gt;
“Match score: 72%. You can apply.”&lt;/p&gt;

&lt;p&gt;It had no idea that:&lt;/p&gt;

&lt;p&gt;the user had already failed similar roles&lt;br&gt;
the same missing skill kept showing up&lt;br&gt;
nothing was improving over time&lt;br&gt;
We tried improving prompts. We tried better keyword extraction. We even experimented with basic RAG-style context injection.&lt;br&gt;
None of it solved the real issue.&lt;br&gt;
The system had no memory of outcomes.&lt;br&gt;
It treated every job match like the first one. No history. No learning. No adaptation.&lt;br&gt;
Over multiple sessions, it didn’t get smarter. It just repeated itself more confidently.&lt;br&gt;
That’s when we realized:&lt;br&gt;
The problem wasn’t intelligence. It was memory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What We Built&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We built CareerMind, a dashboard-based AI career system that doesn’t just analyze resumes — it learns from what actually happens.&lt;/p&gt;

&lt;p&gt;The idea was simple:&lt;br&gt;
Instead of only looking at inputs (resume + job description), the system should:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;remember past actions&lt;/li&gt;
&lt;li&gt;track outcomes&lt;/li&gt;
&lt;li&gt;learn patterns&lt;/li&gt;
&lt;li&gt;improve future decisions
This required more than just bigger prompts or better context windows.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We needed persistent, structured, long-term memory.&lt;/p&gt;

&lt;p&gt;The behavior we wanted was:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;after repeated rejections, the system changes strategy&lt;/li&gt;
&lt;li&gt;after detecting a skill gap, it stops recommending similar roles&lt;/li&gt;
&lt;li&gt;after success, it reinforces what worked
Not just “better answers” — better decisions over time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How We Used Hindsight in the Stack&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We integrated Hindsight as our Agent Memory layer — sitting between our API logic and decision engine.&lt;br&gt;
Instead of stateless API routes, we now had:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;memory retention (store experiences)&lt;/li&gt;
&lt;li&gt;memory recall (retrieve relevant past events)&lt;/li&gt;
&lt;li&gt;reflection (derive patterns)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can check out the Open Source Agent Memory system here:&lt;br&gt;
&lt;a href="https://github.com/vectorize-io/hindsight" rel="noopener noreferrer"&gt;https://github.com/vectorize-io/hindsight&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And the docs we followed:&lt;br&gt;
&lt;a href="https://hindsight.vectorize.io/" rel="noopener noreferrer"&gt;https://hindsight.vectorize.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We also explored the broader concept of Agent Memory here:&lt;br&gt;
&lt;a href="https://vectorize.io/features/agent-memory" rel="noopener noreferrer"&gt;https://vectorize.io/features/agent-memory&lt;/a&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%2Fyy9rroe1cp84wa29nmib.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%2Fyy9rroe1cp84wa29nmib.png" alt=" " width="800" height="339"&gt;&lt;/a&gt;&lt;br&gt;
             Dashboard showing Career DNA and insights&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%2F1owq8ry7gdzsjxoyawsw.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%2F1owq8ry7gdzsjxoyawsw.png" alt=" " width="800" height="389"&gt;&lt;/a&gt;&lt;br&gt;
             Job match result with score and missing skills&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What We Store as “Experiences”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We don’t store raw text. We store structured events:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;resume uploads&lt;/li&gt;
&lt;li&gt;job match attempts&lt;/li&gt;
&lt;li&gt;rejections&lt;/li&gt;
&lt;li&gt;advice given&lt;/li&gt;
&lt;li&gt;outcomes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:-&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;rejectionEvent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;rejection&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;company&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Amazon&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Backend Engineer&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;missingSkills&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;System Design&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="na"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;await hindsight.retain(rejectionEvent);&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How We Recall Memory&lt;/strong&gt;&lt;br&gt;
When a user runs a job match, we query memory:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pastFailures&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;hindsight&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;recall&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;rejection&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Backend Engineer&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then we analyze:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;repeated missing skills&lt;/li&gt;
&lt;li&gt;frequency of failure&lt;/li&gt;
&lt;li&gt;patterns across companies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Reflection Layer&lt;/strong&gt;&lt;br&gt;
We derive patterns like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pattern&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;issue&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Missing System Design&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;frequency&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;impact&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;High rejection probability&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;reflectiveMemory.push(pattern);&lt;/p&gt;

&lt;p&gt;This feeds directly into decision logic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before vs After: One Moment That Changed Everything&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here’s the exact moment it clicked for us.&lt;br&gt;
&lt;strong&gt;Before Hindsight&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A user:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;uploads resume&lt;/li&gt;
&lt;li&gt;applies to 3 backend roles&lt;/li&gt;
&lt;li&gt;gets rejected each time
System response (every time):&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;“Match score: 75%. Recommended: Apply.”&lt;br&gt;
No awareness. No adaptation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After Hindsight&lt;/strong&gt;&lt;br&gt;
Same user flow.&lt;br&gt;
But now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;rejection 1 → stored&lt;/li&gt;
&lt;li&gt;rejection 2 → pattern forming&lt;/li&gt;
&lt;li&gt;rejection 3 → pattern confirmed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Next job match:&lt;br&gt;
System response:&lt;/p&gt;

&lt;p&gt;“High match score, but repeated failures due to missing System Design. Recommendation: Improve before applying.”&lt;/p&gt;

&lt;p&gt;This was not hardcoded.&lt;br&gt;
It required:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;tracking past outcomes&lt;/li&gt;
&lt;li&gt;identifying patterns&lt;/li&gt;
&lt;li&gt;changing behavior&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s when the system stopped being a tool and started acting like a decision engine.&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%2F6rgqbxtylrjz4a9i1cvt.jpeg" 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%2F6rgqbxtylrjz4a9i1cvt.jpeg" alt=" " width="800" height="914"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Unexpected Behavior&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We didn’t program the system to reject jobs.&lt;br&gt;
But after enough data, it started doing something surprising:&lt;/p&gt;

&lt;p&gt;It began filtering out roles automatically.&lt;/p&gt;

&lt;p&gt;Not because of low match score.&lt;/p&gt;

&lt;p&gt;But because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;similar roles had failed before&lt;/li&gt;
&lt;li&gt;the same skill gap existed&lt;/li&gt;
&lt;li&gt;probability of success was low&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In one case, it flagged a job with:&lt;/p&gt;

&lt;p&gt;“82% match — but high rejection risk based on past failures.”&lt;/p&gt;

&lt;p&gt;That combination wasn’t explicitly designed.&lt;/p&gt;

&lt;p&gt;It emerged from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;stored experiences&lt;/li&gt;
&lt;li&gt;pattern detection&lt;/li&gt;
&lt;li&gt;decision weighting
We paused and asked:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;“Wait… it’s predicting failure now?”&lt;br&gt;
And it was right.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Dead End We Hit&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At one point, we tried storing everything.&lt;br&gt;
Full prompts. Full responses. Raw logs.&lt;br&gt;
It quickly became messy.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;noisy data&lt;/li&gt;
&lt;li&gt;slow queries&lt;/li&gt;
&lt;li&gt;irrelevant recalls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We realized:&lt;br&gt;
Memory is not about storing more — it’s about storing the right things.&lt;/p&gt;

&lt;p&gt;We switched to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;structured events&lt;/li&gt;
&lt;li&gt;minimal, meaningful fields&lt;/li&gt;
&lt;li&gt;outcome-focused data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That made recall faster and decisions sharper.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One Lesson That Changed How We Think About AI Memory&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We initially believed:&lt;br&gt;
Better prompts → better system&lt;/p&gt;

&lt;p&gt;But what actually mattered was:&lt;br&gt;
Better memory → better decisions&lt;/p&gt;

&lt;p&gt;Prompts help in the moment.&lt;br&gt;
Memory helps over time.&lt;/p&gt;

&lt;p&gt;The real shift wasn’t:&lt;br&gt;
from bad answers to good answers&lt;/p&gt;

&lt;p&gt;It was:&lt;br&gt;
from repeated mistakes to adaptive behavior&lt;br&gt;
If I had to explain this to another engineer building an AI system:&lt;/p&gt;

&lt;p&gt;Don’t just optimize what your system says.&lt;br&gt;
Optimize what it remembers.&lt;/p&gt;

&lt;p&gt;Because once it remembers the right things,&lt;br&gt;
it starts improving without you touching the logic again.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>career</category>
      <category>machinelearning</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
