How I Built My Own Job Hunt Agent
A few weeks ago, I was talking to a friend who's a Product Manager. We were discussing the current hiring market and how this is one of the busiest periods for tech hiring. Naturally, I assumed the hardest part of the process was finding jobs.
He disagreed.
"It isn't finding jobs," he said. "It's everything that comes after."
The more I thought about it, the more I realized he was right. Every morning begins the same way. Open LinkedIn. Search for the same roles. Scroll through dozens of listings. Open the interesting ones. Find the recruiter or hiring manager if possible. Save everything somewhere. Update your spreadsheet. Remember which companies you've already applied to. Then repeat the exact same process tomorrow.
None of those tasks are particularly difficult. They're simply repetitive. As someone currently looking for Product roles myself, I realized I was spending far too much time managing my job search instead of actually preparing better applications. That felt like a problem worth solving.
Starting With a Simple Question
Whenever I find myself repeating the same task over and over again, my first instinct is to ask whether software can do it instead.
So I gave myself a small challenge.
Could I build a system that quietly handled the repetitive parts of my job search while I focused on the work that actually requires human judgment?
I wasn't trying to build another AI demo or experiment with the latest language model. I simply wanted a workflow that could search for opportunities, organize them, and surface the information I actually cared about.
Building the Workflow
Over the next few nights, I found myself learning technologies I'd been meaning to explore for a while. Playwright became responsible for searching LinkedIn and collecting opportunities. FastAPI acted as the backend that connected everything together. Google Sheets became the database where every opportunity was tracked. Telegram gave me a simple interface to interact with the system, while n8n handled scheduling so the entire workflow could run automatically without me thinking about it.
Somewhere in the middle of all that sat a local language model running through Ollama.
There were also generous amounts of espresso and an unhealthy number of German techno playlists quietly playing in the background while I questioned every design decision I made.
What the Agent Actually Does
The workflow itself is intentionally simple. It searches LinkedIn using roles and locations I'm interested in, collects matching opportunities, attempts to discover hiring contacts where they're available, and stores everything inside Google Sheets so I have a single place to manage applications.
Because everything runs automatically, I no longer have to remember to perform the same searches every morning. Instead of spending time collecting opportunities, I can spend that time researching companies, tailoring my resume, or preparing for interviews.
The goal was never to replace the job search.
The goal was to remove the repetitive parts of it.

Where AI Actually Helps
One of the design decisions I'm happiest with has very little to do with AI itself. It's deciding where not to use it.
It's tempting to let a language model do everything simply because it can. But that usually makes systems slower, more expensive, and harder to debug.
Instead, I wanted AI to do only one thing.
Understand what I'm asking.
Everything else follows traditional software engineering. Searching LinkedIn, collecting jobs, finding hiring contacts, updating spreadsheets, and scheduling workflows are all deterministic tasks. Computers are already very good at them.
The language model simply understands natural language and translates my request into something the application can execute. That separation makes the entire system easier to reason about and significantly more reliable.
The Biggest Lesson
When I started this project, I thought I was building an AI application.
Looking back, I think I was really building a workflow.
The AI is only one small component of the system. The value comes from connecting multiple tools together in a way that removes friction from a real problem.
That changed how I think about automation.
Good automation isn't about adding intelligence everywhere.
It's about understanding where intelligence is actually needed and where simple, reliable software is the better solution.
What's Next?
The project is still evolving, and I already have a growing list of ideas I'd like to explore. I'd like the agent to compare resumes against job descriptions, generate daily summaries of new opportunities, assist with recruiter outreach, and eventually become a more complete companion throughout the entire job search process rather than simply collecting opportunities.
Whether every idea makes it into the project remains to be seen, but that's part of the fun of building in public.
Final Thoughts
This started because I was tired of doing the same work every morning.
Today, I still search for jobs. I still research companies. I still write applications. But I spend far less time gathering information and much more time acting on it.
Sometimes the best projects don't begin with a groundbreaking idea. They begin with asking a very simple question.
"What repetitive task am I tired of doing?"
If you're interested in the technical architecture, implementation details, and the technologies behind the project, I've documented everything in the LinkedIn Job Agent.