Tired of Applying? How I Automated My Job Search with AI
Updated: Apr 14

As a developer on the job hunt, I felt the daily pressure: I needed to upskill, work on my portfolio, and apply for jobs consistently. The job search itself felt like a full-time job, and skipping a day of applying left me with a sense of guilt. The current market demands consistency, but how could I save time without sacrificing my routine?
That’s when an idea hit me: What if I could automate the most repetitive part — finding and filtering jobs — so I could focus my energy on tailoring my applications?
This blog post is my journey from a simple, brittle script to a smart, AI-powered agent that searches for jobs just like a human would.
The First Attempt: A Brittle Scraper with Playwright
Like any coder, my first instinct was to write a script. I turned to Python and a library called Playwright, which is fantastic for browser automation. The plan was simple:
Launch a browser.
Log into a job site.
Navigate to the jobs page.
Scrape the HTML to extract job titles, companies, and links.
Here’s a simplified version of what that looked like:
This worked… for about a day. I quickly ran into two major problems:
It’s Fragile: Websites change their layout all the time. If a developer renamed a CSS class from .job-card to .job-listing-card, my entire script would break. I was spending more time debugging than applying.
It’s Risky: Websites actively block bots. My script made rapid, predictable requests that were easy to detect. This could get my IP address or even my account banned.
I needed an approach that didn’t just read code, but understood the content on the page, just like a person does.
A Smarter Approach: AI Agents to the Rescue
This led me to the world of AI agents. Think of an agent as a smart assistant you can give instructions to in plain English. The agent uses a Large Language Model (LLM) like Gemini or GPT-4 as its “brain” to understand your command and a browser automation tool as its “hands” to execute it.
Instead of telling it “click the button with class submit-button,” you just say, “Log in with my credentials.” The agent figures out the rest.
Approach 1: LangChain — The Sequential Worker
My first stop was LangChain, a popular framework for building applications with LLMs. Using the browser-use library, I could create a sequence of tasks for my agent to perform one by one.
The magic here is that the “code” is just a series of plain English prompts.
This was a huge improvement! It was far more resilient to website changes. But it was still a linear, step-by-step process. What if the login failed? The whole chain would break.
Approach 2: LangGraph — The Smart Workflow Builder
To handle more complex logic, I discovered LangGraph. If LangChain is a to-do list, LangGraph is a flowchart. It allows you to build workflows with conditional paths. For example: “Try to log in. If it succeeds, proceed to search for jobs. If it fails, stop and report an error.”
This makes the agent incredibly robust. You can build in retries, error handling, and different paths based on what the agent sees on the page.
Finally, to solve the problem of getting messy, unstructured data, I used Pydantic models with the output_model_schema parameter. This is like giving the agent a form and saying, “For every job you find, fill out this exact form.” It ensures the output is always clean, structured JSON.
Conclusion: My Journey and What’s Next
Automating my job search has been a game-changer. It started as a simple, fragile scraper and evolved into a robust, intelligent AI agent that saves me hours every week.
Here’s the big picture:
LangChain = The Brain. It provides the reasoning power to understand instructions.
LangGraph = The Nervous System. It manages the flow, decisions, and state of the workflow.
Browser-Use = The Hands & Eyes. It interacts directly with the web pages.
This journey isn’t over. Some websites are getting better at detecting automated activity, and sometimes, using a company’s official API is a much better approach. But this project has taught me the incredible power of AI agents to automate complex, human-like tasks. It has freed up my time to focus on what truly matters: preparing for interviews and landing my next great role.
Happy automating.


