About the Project
Inspiration
This project was inspired by a problem that many job seekers face every day: job hunting is not just about finding openings, it is about managing an entire workflow that is repetitive, exhausting, and easy to miss. Recruiters send emails, candidates receive dozens of job alerts, and each opportunity requires research, resume tailoring, application forms, follow-ups, and status tracking. I wanted to build something that would take a lot of that manual burden off the user’s shoulders.
The idea behind this project was simple but powerful: create an AI-powered career assistant that watches inbox activity, understands job opportunities, evaluates fit, and helps move the process forward autonomously. Instead of forcing the user to manually handle every step, the project acts more like a smart assistant working in the background.
What I Learned
This project taught me a lot about building real-world AI systems, not just prompting a model.
Some of the biggest lessons were:
- AI works best when it is paired with clear logic and rules.
- Event-driven systems are important for handling real-world workflows like Gmail alerts and recruiter replies.
- Semantic understanding is much more useful than simple keyword matching when evaluating job fit.
- Persistence matters: application state, recruiter conversations, and resume versions all need to be remembered across time.
- Trust and safety are essential in automation, especially when a system may take actions on the user’s behalf.
- Good software design is just as important as the model itself.
I also learned that the hardest part of an AI product is not the model call — it is designing the surrounding architecture, decision flows, and recovery mechanisms.
How I Built It
I built this as an autonomous job-search agent using a modular architecture. The system listens for Gmail events, identifies whether a message is a job alert or a recruiter reply, and routes it through the appropriate workflow.
The project is organized around several specialized agents:
- Ingestion agent to understand incoming job information
- Research agent to analyze the job description and extract requirements
- Scoring agent to assess how well the role matches the user’s profile
- ToS gate to enforce deterministic safety rules
- Drafting agent to generate tailored resumes and cover letters
- Tracking agent to store everything in Firestore and Sheets
- Reply detection and interview prep agent for recruiter follow-ups
- Browser automation flow for application submission
The system uses a combination of Google Cloud services, FastAPI, Firestore, Gmail API, Drive, Sheets, and Playwright. It connects them into a pipeline where job events trigger automated decisions. If the fit is strong enough and the policy allows it, the system can take action. If not, it creates a draft for human review.
This makes the project feel more like an autonomous workflow system than a simple chatbot. It is designed to observe, reason, decide, act, and remember.
Challenges I Faced
There were several important challenges during the build.
One challenge was balancing automation with safety. If an AI agent could submit applications automatically, it needed clear guardrails so it would not apply to low-quality roles, duplicates, or cases that violated policy. That is why the project includes a deterministic policy gate before any automated action is taken.
Another challenge was handling inconsistent real-world job application forms. Different employers use different systems, and browser automation can fail for many reasons. To address that, the project includes retry logic, validation checks, and fallback behavior so it can recover when something goes wrong.
A further challenge was state management. Job searching is a long process with many moving parts. The system had to remember what it had already seen, what it had applied to, what resumes had been generated, and which recruiter responses needed follow-up. That required persistent data storage and event-driven architecture.
Finally, the project had to be practical and trustworthy. AI can be exciting, but users do not want a black box making career decisions without visibility. That is why the project includes review flows, tracking, and auditability.
Final Thoughts
This project was a way to turn a painful and time-consuming process into something more intelligent and more efficient. It aims to reduce the manual burden of job hunting while still keeping the human in control where judgment matters most.
The goal was not to replace the person searching for a job, but to build a system that handles the repetitive and tedious parts so the user can focus on making better decisions and preparing better opportunities. That is the core of the project: using AI to make the job search process less stressful, more structured, and more effective.
Built With
- fastapi
- firestore
- gemini-ai
- gmail-api
- google-adk
- google-cloud
- google-cloud-run
- google-drive
- google-sheets
- playwright
- python
Log in or sign up for Devpost to join the conversation.