What if recruiters could talk to an AI me first?
Companies use AI to screen candidates all the time — algorithms parse resumes, automated systems filter people out, and I’ve read some companies are using chatbots for hiring. And I don’t blame them because they’re getting flooded with automated applications. But generally speaking, companies have higher leverage than us and I’m sure many of them have streamlined the various parts of their recruiting pipeline with automation.
So I got curious: could I build the reverse? An AI agent that represents me, so hiring managers can get their screening questions answered without either of us spending time on a call? We read about people begrudging automated rejections but two can play this game, right? If companies are using AI to screen people out, can job seekers use AI to screen companies in?
Interview prep is work. Researching each company, tailoring my stories to their specific needs, preparing for whatever interview format they throw at me (system design? leadership questions? obscure domain knowledge?). It takes time and energy that I’d rather spend on actual work.
This was more of a “can i build this?” experiment than a “I desperately need this” project. I’m not actively looking for a job because I like Twitch and being a TPM in the Trust & Safety space (but also, I don’t have the energy at home to try — I vibe code in the evenings while I’m half asleep after the toddler goes to bed). Still, I was curious to pursue the idea.
The vision
The concept is straightforward: a chatbot that knows my work history, technical background, communication style, and career interests. You can ask it questions like “What is your role at Twitch?” or “What kind of projects are you interested in?” and get answers that actually sound like me.
I’m fully transparent about it being AI. I’m not planning on using it seriously, and it needs way more context than it does right now, but it’s an interesting idea, right?
The technical challenges: RAG is tricky
Here was my prompt to both Claude and ChatGPT as I was forming the idea for this project:
i want to create an ai agent that can answer hiring manager’s questions for me. I’m not trying to fake an interview, i want to create an ai clone of myself and have people use it to see if I’m a match for them. how can i build it? I’m not familiar with the technical setup, i don’t have experience creating something like this for other people to use but I’d like to host it myself. doesn’t need voice
Then I went down a rabbit hole, as one does when you begin a journey like this. It gave me some implementation options:
Massive system prompt
RAG (retrieval-augmented generation)
Fine-tuning
I had some familiarity with RAG conceptually, but even though I’ve developed multi-agent systems before, I was still having a hard time wrapping my head around the practical applications of RAG, so I went with that one to give me an opportunity to learn more about it. It essentially involves chunking information, storing it in a vector database, retrieving relevant chunks for each query, and generating a response.
Chunking information is hard
The hardest part of building the RAG system was figuring out how to split my content into searchable pieces. If chunks were too small, I’d lose important context like splitting a behavioral story mid-sentence so the AI couldn’t understand the full situation. If chunks were too large, the vector search would match too broadly and return irrelevant information. I struggled with this and tried different token sizes and split strategies. The breakthrough came when I realized different content types need different approaches: resumes need to preserve job sections and behavioral stories need to stay intact as complete narratives. I ended up building five specialized chunkers, each optimized for its content category with different token limits (600-1000 tokens) and intelligent boundary detection. The most sophisticated part was the hierarchical chunking system that creates both detailed base chunks (for specific facts) and broader parent chunks (for temporal queries like “What did you do before Twitch?”). This multi-granularity approach, combined with semantic boundary detection that preserves context across chunk edges, solved most of the retrieval accuracy problem for me.
Retrieval: the 60-25-15 formula
Getting the AI to actually return the best answer was a battle with false negatives and false positives. Early on, I relied purely on vector similarity, which meant the AI would confidently return wrong information when semantic embeddings matched but the actual content didn’t. I solved this with a hybrid scoring system: semantic similarity gets 60% weight (the vector embedding match), category relevance gets 25% weight (an LLM classifies whether the query is asking about resume, projects, or experience), and tag matching gets 15% weight (keyword extraction without LLM overhead). This formula, combined with a tag-weighted search that extracts meaningful keywords from queries (filtering out stop words like “the” and “what”), dramatically improved accuracy. The latency problem is still real though; each search requires generating a query embedding, running pgvector similarity search, and LLM-based validation when confidence is low, which adds 2-3 seconds per response. I implemented semantic response caching (0.85+ similarity threshold with 7-day TTL) that gives me 60-80% cache hit rates and brings cached responses down to ~100ms, but cold queries still feel slow.
Making the AI sound like me
I spent the most time tweaking the system prompt to capture my communication style. Prompt engineering alone wasn’t enough, I built a dual-purpose content processing system where certain content gets chunked twice: once for factual information retrieval and once for communication style analysis. When I tag content with communication-style-source
, the chunker extracts both what I said (information chunks) and how I said it (style pattern chunks). These style chunks capture tone markers, helpfulness patterns, technical depth, and response structure, which get embedded into the vector database alongside regular content.
Also, I had to figure out how to deal with questions I don’t want it to answer. I implemented a three-tier validation system where the AI first searches the knowledge base, then validates if the retrieved content actually answers the question (not just semantically similar), and finally checks if the query is even employment-related. For sensitive topics like salary or questions requiring nuanced human judgment, the AI redirects to my LinkedIn with a natural suggestion to connect. For completely off-topic questions (like asking about random news or unrelated topics), it politely declines and steers back to professional discussion. The result not only matches my communication style but also knows its boundaries, just like I would in a real conversation.
Questioning the approach entirely
I’ve shipped an MVP but I’m not even sure RAG was the right choice.
RAG makes sense for huge knowledge bases where you can’t fit everything in context. But for a personal chatbot, my data isn’t that big. Modern LLMs have context windows large enough to potentially handle everything at once.
The retrieval step adds latency. The chunking is finicky. And the LLM has to synthesize the retrieved chunks anyway, which takes processing power.
Maybe I should’ve just dumped everything in one prompt and let the LLM figure it out. That’s something I’m planning to test next.
Try it out
I don’t know if AI representatives will become standard in hiring. It’s not the norm yet, and maybe it never will be. But this was my attempt at evening out a system that feels uneven. More importantly for me, I learned something new and it was fun to try out.
Here is the MVP: https://chat.earlyspark.com/ — like I said, it doesn’t have all of my professional background in it, but it has a general sense for who I am and what I’ve done and how I think about things.
If you want to build your own
My github repo is public if you want to see how I built this — a few recommendations if you’re starting from scratch:
Look for existing tools first. There are probably pre-built chatbot solutions that would work. I built mine from scratch because I wanted to understand how it works, but you might not need to.
Just start building. I could’ve taken courses on RAG systems, but hitting the limitations firsthand taught me more than tutorials would have.
Spend time on communication style. that’s what makes it sound like you instead of generic AI.
This was a fun experiment. whether it’s useful in practice remains to be seen. But at minimum, I learned a lot about RAG systems and their tradeoffs. Now that I have a better hands-on understanding, I’d be much more patient to sit through a course and read up on the theory behind creating an efficient system. Let me know your recommendations and thoughts!