While building my AI Career Advisor, I initially assumed resume feedback would be one of the simplest features.
Upload resume → analyze → give suggestions.
There are already dozens of tools doing this, so it seemed straightforward.
But once I introduced memory and user context, things became much more complex.
🧠 What the system actually needs to do
At a basic level, the system should:
- Parse a resume
- Extract skills and projects
- Compare them with target roles
- Suggest improvements
Simple enough — but in practice, this wasn’t sufficient.
Because a resume is only a "snapshot", not the full story.
⚠️ The real problem: resumes are incomplete
Users often:
- Forget to include recent work
- Undersell their projects
- Omit important details
If the system only analyzes the uploaded resume, it misses critical context.
So the real challenge became:
👉 'How do we combine resume data with stored user memory?'
❌ First attempt: treat resume as the source of truth
const parsedResume = parseResume(file);
const response = await llm.generate({
input: "Give resume feedback",
context: parsedResume
});
This worked — but only at a surface level.
It couldn’t detect missing information or inconsistencies.
✅ The fix: merge resume with memory
const memory = await hindsight.retrieve(userId);
const resumeData = parseResume(file);
const context = {
resume: resumeData,
pastProjects: memory.projects,
skills: memory.skills
};
Now the model has access to:
- What the user wrote
- What the system already knows
💡 Why this matters
This enables insights like:
- “You worked on X but didn’t include it”
- “Your project description is too vague compared to stored details”
This kind of feedback is impossible without memory.
🔗 Using Hindsight for context
The memory layer is powered by:
👉 https://github.com/vectorize-io/hindsight
More details:
👉 https://hindsight.vectorize.io/
Concepts:
👉 https://vectorize.io/features/agent-memory
📈 What improved after this change
Before:
- Generic resume tips
- Repetitive suggestions
After:
- Context-aware corrections
- Missing content detection
- Better personalization
❌ What didn’t work
- Relying only on resume text
- Ignoring past interactions
- Overloading the model with full memory
🧩 Lessons learned
- A resume is incomplete without history
- Memory enables comparison, not just analysis
- Context merging is more powerful than parsing
🏁 Final thought
Resume feedback is easy to build.
Context-aware resume feedback is not.
And the difference is "memory".




![[M] LILA-E8, LILA-Leech: The Geometric Intelligence Manifesto. Why Sam Altman’s "Parameter Golf" is already over.](/_next/image?url=https%3A%2F%2Fmedia2.dev.to%2Fdynamic%2Fimage%2Fwidth%3D800%252Cheight%3D%252Cfit%3Dscale-down%252Cgravity%3Dauto%252Cformat%3Dauto%2Fhttps%253A%252F%252Fdev-to-uploads.s3.amazonaws.com%252Fuploads%252Farticles%252Fwt599bhy2we4ctk91wgm.png&w=3840&q=75)