Building a Job Search Tool with Cursor

(Edited with Claude)

Job Hunting Sucks

Job hunting is exhausting. My days are a constant juggle between LinkedIn, Claude, Google Docs, and company websites—filtering jobs, evaluating fit, writing custom resumes. Add the pressure to apply quickly (applications submitted closest to posting date get priority) and networking for internal referrals (also get priority), and suddenly my entire day is gone.

So I Built a Script

An AI trend I’ve noticed is a shift from one-size-fits-all applications to hyper-personalized ones. Since tools like Cursor lower the barrier to building apps, why not solve your own problems? We used to build generic solutions for maximum reach. Now we're personalizing everything and building locally to meet individual needs.

So I did what people are doing but probably aren't discussing publicly—I used Cursor to build Leads, a job tool that streamlines job discovery to application. You can try it out here.

Leads does three things:

Working on this for a few days taught me three key lessons about building with AI:

Start Small, Iterate Fast

Originally, I wanted a website to share with friends. I fed Cursor my problem and requirements, and it built something way beyond what I needed. I got lost in UI details trying to remove elements.

So I put on my MVP hat: I needed something quickly (built within a day), just for me, no UI necessary and a script was enough. I scrapped everything and worked iteratively—first job scraper, then job analysis, then relevancy scoring, and so on. Got a proof of concept within an hour or two.

Test as You Build

Building piece by piece let me test individual components and build confidence to keep going. The Cursor agent often builds tests unprompted, and catching issues early beats debugging a massive codebase later. The agent also doesn’t always build what you intend, so manual oversight is still necessary. Forget the Waterfall model and get to validation quickly.

Clean Up Your Code

Iterative development with agents creates redundancy because the agents aren’t always building off of previous work. For example, Leads initially had three identical if statements for match scoring (High/Medium/Low)—same logic, just different title styles. I pointed this out and prompted Cursor to “refactor and deduplicate code when appropriate,” and it cleaned things up nicely. Not necessary for functionality, but crucial for scalability.

The biggest efficiency gain? Caching API results. All that iterative testing burned through my Anthropic credits fast. I had Cursor cache Claude's analyses— resumes, keywords, job listings, personalized resumes — making the script faster and cheaper.

The Reality

Within a few days, without writing code myself, I built something that significantly reduces time spent on applications. I feel less drained and can focus on learning new skills and doing things that bring me joy.

But I won't lie… part of my soul died building this. It's wild that I could do it so quickly, and wilder that this is what staying competitive looks like. Yet it's also an evolution in using AI tools that are quickly becoming industry standard.

Please don't ban me, LinkedIn.


(No Editing)

Job Hunting Sucks

A problem I’ve had recently is managing my energy while job hunting. My days consist of:

I’m trying to accomplish one task, which is applying to a job, but it requires hopping back and forth between LinkedIn, Claude, Google Docs and company website. Add in trying to apply to x number of jobs and then networking to find an internal referral and my day is gone. Not only is it exhausting, but there’s added pressure to do it quickly because applications submitted closest to the job posting date have a higher chance of being reviewed.

So I Built a Script

One AI trend I’ve noticed is a shift from large scale on-size-fits-all applications to hyper personalized ones. Since vibe coding lowers the barrier to entry for developing an app, it costs less to build something for yourself, so why not do it. In addition, existing apps can use AI to build in personalization so that each user gets a different experience based on their needs. We used to build generic apps to meet the needs of as many customers as possible. Now we’re personalizing existing apps and building locally to meet the needs of even more customers.

So I did what people are doing but probably aren’t publicly discussing – I used Cursor to build Leads, a job tool that streamlines the three actions to quickly move me from job discovery to application. You can find and use Leads here.

Leads will:

  1. Analyze your resume with Claud

  2. Understand what role you're seeking

  3. Find fresh jobs matching your criteria

  4. Rank them by how well they match your background and industry preferences

  5. Displays jobs ranked by match quality (High/Medium/Low) with confidence scores

  6. Saves jobs of interest and generates personalized resumes with Claud

I’ve been working on this on and off for a few days, the majority of my time being spent scoping the application, validating the functionality, refactoring and improving efficiency/lowering cost.

Scoping the application

Originally I wanted to build a website to share with friends so I fed Cursor my problem and requirements. It built something that went beyond what I needed and I started getting in the weeds of the UI. So I put my MVP hat on – I needed an app quickly (built within a day), only for myself at the minimum, and I didn’t need a UI – a script was more than enough. I asked the agent to scrap everything and worked on the script iteratively: first job scraper, second job analysis, third job relevancy… and so on. This got me exactly what I needed much faster, honestly within an hour or two.

Validating the functionality

By building iteratively, I was able to test the individual pieces as I developed and build confidence to keep going. I used to test software in a former life, so I’m familiar building extensive test plans for new features. Cursor can build tests to validate functionality (often unprompted), and testing as you go rather than waiting until the very end simplifies debugging and gets you to a proof of concept faster.

Refactoring

Because I built iteratively, the Cursor agent generated code that had a lot of redundancy. For example, Leads generates a match score (High, Medium, Low) for each job based on your skills. Initially, it had three if statements for each match level and within those statement if listed keywords and reasoning. The code worked, but styling the matches differently, the code between the three statements was identical.

if high match,

style with green circle

 `add keywords`

 `add reasoning`

if medium match,

style with yellow circle

add keywords

add reasoning

if low match,

style with red circle

add keywords

add reasoning

Having written code before, I recognized that the shared actions could be moved out of the if statements. With that observation, I prompted Cursor to refactor by deduplicate code when appropriate and it cleaned things up nicely. Is this necessary for the application to function correctly? No, but reducing unnecessary code is an important principle for building a scalable application.

Improving Efficiency

Along scalability lines, because I was doing so much iterative testing, I was calling Claude over and over for the same analyses and quickly ran out of Anthropic API credit. Here’s where my technical background came in handy. I prompted the Cursor agent to cache results when Claude was called: analyzing resumes, analyzing keywords, analyzing job listings, generative personalized resumes. Reducing API calls to only when necessary made the script faster and saves me money as I continue to use the tool.

Conclusion

Within a few days and without writing any code myself, I built a script that significantly reduces the amount of time I spend on job applications. I feel less drained and can focus time on learning new skills and doing things that bring me joy. I won’t lie though… there’s a part of my soul that died building this script. It’s wild that I was able to do it so quickly and that this is what I need to do to stay competitive in the current job market. But it’s also an evolution to using AI tools that are quickly becoming industry standard. Please don’t ban me, LinkedIn.