An interactive AI assistant that answers questions about my background while demonstrating how I design controlled, reliable agent behavior
AI Portfolio Chatbot
Ask Me Anything
The Challenge:
Traditional portfolio websites require visitors to search for information, scan multiple pages, and piece together a full picture over time. I wanted a faster, more direct way for someone to learn about me, where they could simply ask a question and get a clear, immediate answer.
This project started as a course exercise, but I quickly saw the potential to turn it into something more meaningful. It became both a learning opportunity and a practical tool that allows visitors to explore my experience in a way that feels natural and conversational, rather than static and fragmented.
My Role:
I treated this as both a user experience problem and a systems design problem. The goal was not just to build a chatbot, but to create something that could represent me accurately, respond consistently, and behave in a controlled and predictable way.
I designed and built the system end to end, shaping how information is structured, how responses are generated, and where the model should rely on code instead of reasoning. A key part of my role was moving from a simple prompt-based chatbot to a more intentional agent that uses tools and structured data to improve accuracy and reliability.

My Process:
The chatbot is grounded in a curated set of context files that include my resume, background information, skills, and portfolio content. This allows it to respond in first person, in my voice, while staying anchored to information I control.
To improve reliability, I introduced a set of tools that the model can call when needed. For example, employment history is handled through a structured function that filters roles based on duration and type, rather than relying on the model to interpret that information on its own. This ensures that questions about my experience are answered consistently and correctly.
I also added systems around the core interaction to make the tool more useful in practice. The chatbot can offer and send my resume, notify me when someone requests it, and log conversations for review. Unknown or unanswered questions are recorded so I can continuously improve the system over time.
Real-World Challenges:
One of the most interesting challenges was realizing that the model could not be trusted to reason accurately over certain types of data, even when that data was clearly provided. Questions about employment history, especially when roles overlapped in time, often produced inconsistent or incorrect answers.
The solution was to remove that responsibility from the model entirely and handle it through structured logic instead. This shift reinforced an important principle for me: AI works best when it is supported by clearly defined systems, rather than being asked to handle every decision on its own.
Another challenge was controlling output formatting and response behavior. The model would frequently ignore instructions, introduce inconsistent formatting, or add unnecessary closing phrases. I addressed this through post-processing steps and by moving certain parts of the response, like resume prompts, out of the model’s control and into deterministic code.
The Outcome:
The result is a deployed AI assistant that allows visitors to interact with my portfolio in a more direct and flexible way. Instead of navigating through multiple pages, they can ask specific questions and receive clear, relevant answers in real time.
At the same time, the project demonstrates how I approach building AI systems. Rather than relying on the model alone, I focused on structuring the workflow, introducing guardrails, and deciding where deterministic logic should take over. The result is a system that is not only functional, but also more predictable and easier to improve.
What’s Next:
The current version focuses on core functionality, but there is room to expand both the depth of the knowledge base and the level of automation. Future improvements include expanding the scope of available information, refining how responses are generated, and automating parts of the resume delivery process.
More broadly, this project serves as a foundation for building more advanced agent-based systems that combine conversational interfaces with structured workflows and real-world actions.