Alex Watts
AI Builds

Since September 2026

Co-op Finder

AI agent built with Claude Code

An agent that runs a daily search of job postings at relevant companies and adds them to Notion, ready to check for relevance and apply.

Postings logged
269
Companies
144
Co-op landed
1

01 The problem

Second-year students at Northeastern University spend a semester looking for a 6-month co-op.

There are a huge number of opportunities that are functionally the same as a co-op but are named something else and are posted directly by companies rather than through the Northeastern co-op system.

02 How it works

An agent built with Claude Code runs a daily search of job postings at relevant companies and adds them to a Notion file, ready to check for relevance and apply.

Each job’s fit is graded in an open feedback column. The agent learns from that feedback and proposes changes to its own rules, approved with a click.

03 What I changed

  1. The mistake

    • Early versions were returning results in obscure cities, from companies with nothing to do with tech, and for roles I was unqualified for.
    • My solution was to iterate and tighten my search criteria until I ended up with a huge document of restrictions for my agent to follow.
    • By the time I had hit double-digit iterations, my agent only returned 4 job postings. Unlike a human, my agent did not know when to break the rules I had set for it.
  2. The fix

    • I realized I had been pre-deciding my results by setting so many filters, and that I needed to move in the other direction and widen my search.
    • Location, language, and work authorization stayed as hard filters. Everything else was loosened.
    • I replaced those restrictions with an open column for written feedback where I could “grade” the fit of each job found by my agent.
  3. The result

    • 269 postings from 144 companies, and 1 co-op landed.
  4. The lesson

    • The lesson wasn’t that I needed a more polished agent. It was that I needed to give myself something imperfect to work with.
    • By trying to eliminate every bad result in advance, I had also eliminated opportunities to learn from unexpected ones.
Read the full story