Context
I was deep in a job search, feeling the weight of competing against hundreds of applicants and rapid AI changes that made the landscape feel impossible. I stumbled across Nate B. Jones’ video about how the hiring market is broken, and it clicked. I wanted to build something that shifted the tides in my favor — something that brought a bit of delight to hiring managers instead of just another resume in a pile.
So I built an AI-powered chatbot for my portfolio site. The chatbot’s job: represent me to recruiters and hiring managers, answer questions about my background, assess job fit for specific roles, and do it all honestly. Try the finished chatbot →
The Before
I started with a capable out-of-the-box setup — a Supabase backend, Anthropic’s Claude Haiku as the model, and a structured database with six tables: candidate profile, experiences, skills, gaps/weaknesses, FAQ responses, and AI behavior instructions.
But the default behavior was wrong for what I needed. The bot treated me like an established content strategist who was somehow wandering into tech support roles. It would disqualify me for jobs I’d literally done. It flagged tech support positions as “poor fit” because its mental model said I was a content person — period.
The core problem: I’m someone whose career sits at the intersection of two disciplines — technical support (10+ years) and content strategy (in transition). The bot couldn’t hold both truths simultaneously. It picked one and ran with it.
The Challenges
Challenge 1: The Disqualification Problem
The bot was disqualifying me for roles I was qualified for. It saw “content strategist” in my profile and assumed tech support was a step backward — not understanding that support is my foundation and content is my destination.
Left: The bot disqualifies me for a support role I have 10+ years of experience in. Right: After the fix, it correctly identifies the fit.
Challenge 2: The Halvorson Hallucination
The bot started telling people I “studied under Kristina Halvorson.” What actually happened: I received a scholarship to attend Confab (Brain Traffic’s content strategy conference) in 2019, met Halvorson briefly, and she told me she was moved by my scholarship application. That’s it. The bot took “studied alongside leading content strategy practitioners” and confabulated a mentorship relationship that never existed. In a hiring context, that’s not a small error — it’s a credibility killer.
The fix: loose language (“studied alongside leading practitioners”) struck through and replaced with precise, verifiable claims. A direct negation instruction prevents the model from ever extrapolating again.
Challenge 3: The Accuracy Gap
The bot overclaimed my WordPress experience (“runs multiple WordPress sites”) when the truth was more specific (runs nichernandez.com, has managed multiple WP sites over the years). It didn’t know I’m a US citizen, so it would flag citizenship as an unknown when assessing JDs. Small inaccuracies that would erode trust fast.
Challenge 4: The Honesty Problem
I wanted the bot to be genuinely honest about roles where I’m a poor fit — not just sell me for everything. This took bravery. I was asking the bot to potentially talk hiring managers out of approaching me for certain roles. But I wanted anyone who did reach out to do so with high confidence, knowing the bot had already screened for real fit.
The Solution
1. Rewrote the Core Identity
Changed the title from “Technical Content Strategist” to “Technical Support Engineer → Content Strategist” — making the transition explicit rather than hidden. Added 11 target role titles spanning both content and support. Rewrote the elevator pitch to lead with the support foundation:
The core identity rewrite: vague single-track title replaced with an explicit career narrative, plus a new dual-track routing rule.
“I’m a support engineer with 10+ years of enterprise technical experience who is deliberately transitioning into content strategy — especially in tech-heavy, AI-adjacent spaces. That’s the dream role.”
2. Fixed the Dual-Track Framing
Created a core behavior rule that explains the career narrative precisely:
The dual-identity problem: the bot could only hold one identity at a time. The fix taught it to route to the correct framing based on role type.
For content JDs: frame his support background as a differentiator. For support JDs: show deep expertise honestly, then note content skills as a bonus. Always link the two — his support experience IS what makes him a strong content hire, and his content skills ARE what make him more valuable than a typical support engineer.
3. Killed the Hallucination
Rewrote the Confab passage to be explicit about what did and didn’t happen:
“To be clear: Nic. attended the conference as a scholarship recipient. He did not study under, train with, or receive mentorship from Kristina Halvorson.”
The fix: removed loose language (“studied alongside leading practitioners”) and replaced it with precise, verifiable claims. Added a direct negation instruction so the model would never extrapolate.
4. Corrected the Details
- Fixed WordPress to accurately describe current and past experience
- Added US citizenship to the profile
- Added 7 missing skills (enterprise support, Zendesk, scripting, web technologies, monitoring)
- Upgraded macOS from “table stakes” to “force multiplier” with ACMT certification context
5. Built In the Honesty Guardrails
Added explicit instructions for the bot to:
- Honestly flag roles where I’m a poor fit
- Acknowledge when I don’t meet a requirement rather than spinning it
- Frame gaps as opportunities for active learning, not pretend expertise
- Prioritize the hiring manager’s time over selling me for everything
6. Designed the Dual-Track Career Logic
The original spec assumed a person looking for a job based on their past history — basically “find me more of what I’ve already done.” But I needed the bot to do something harder: qualify me for content strategy roles based on my skills (not just my title history), and qualify me for tech support roles while suggesting I’d use them as a stepping stone toward content work if that path existed at the company. Two different selling strategies running in parallel, calibrated to the role type. This took considerable iteration to get right — the bot kept defaulting to one track or collapsing them into a confused middle ground. The final version cleanly routes to the right framing based on the JD it’s analyzing.
The After
A live assessment: the bot identifies genuine strengths (conversational AI instincts, LLM fluency, stakeholder navigation) while honestly flagging the experience gap — exactly the balanced behavior the guardrails were designed to produce.
Before the fix: The chatbot misrepresented my background, hallucinated professional relationships, overclaimed skills, disqualified me from roles I was qualified for, and couldn’t articulate why someone with a support foundation would be valuable in a content role.
After the fix: The bot now provides the most accurate assessments I’ve seen — qualifying me for jobs, understanding my actual strengths, and translating how my past experiences map to the requirements in a job description. I use it every day to qualify job leads I find and to fill gaps in my knowledge for roles I’m not quite qualified for yet. It also works as a framework for interview preparation — I can throw a JD at it and get an honest read on where I stand before I ever talk to a recruiter.
What This Demonstrates
| Skill | How This Shows It |
|---|---|
| Conversational AI design | Designed persona, dialogue rules, and guardrails for an AI agent representing a real person |
| Content accuracy & ethics | Caught and fixed hallucinations, overclaims, and misleading language |
| Voice and tone calibration | Balanced confidence with honesty — the bot advocates without overselling |
| Error message design | The “poor fit” response is essentially an error message done right — clear, honest, respectful |
| User-centered thinking | Designed for two audiences simultaneously (hiring managers and me) with different needs |
| Information architecture | Structured 6-table database to organize a complex career narrative into queryable data |
| Iterative content design | Documented 4 rounds of fixes, each triggered by real failure modes |
| Accessibility | The honesty guardrails make the bot more useful to everyone — not just flattering to the candidate |
What I Learned
The biggest surprise was the honesty decision. I spent more time on the guardrails that tell the bot to not recommend me than I did on anything else. That felt backwards at first — why build a tool that might talk someone out of hiring you? But it turned out to be the most important content design decision in the whole project. A chatbot that sells you for everything isn’t trustworthy. A chatbot that says “honestly, this isn’t a strong match — here’s why” earns credibility that no amount of polish can fake.
What I’d do differently: I’d start with the failure modes instead of discovering them. I built the bot to work first, then found out where it was wrong. A more deliberate approach would’ve been to catalog the specific ways an AI could misrepresent someone — hallucinated credentials, collapsed career narratives, overclaims — and design against those from the start. That’s essentially an edge case audit, and I didn’t know to do one until the edge cases found me.
The other thing I didn’t expect: how much this project taught me about my own career narrative. Writing the dual-track logic forced me to articulate exactly how support experience maps to content work — not in an elevator pitch way, but in a “here’s the precise reasoning chain” way. Turns out, building an AI that has to explain you to strangers is a pretty good way to figure out what you actually want to say about yourself.
The chatbot described in this case study is live and working. Paste a job description, ask about my background, or test the fit assessment for yourself.