LOG-03July 20266 min

Sixty scored jobs a day: an application engine in n8n

Applying to freelance jobs is a volume game wearing a judgment costume. Most of the work is not deciding whether a job is good. It is reading two hundred posts to find the eight worth deciding about. That is machine work, so I gave it to a machine.

The intake

Scheduled scrapes pull fresh job posts across a set of saved searches: AI automation, n8n, CRM builds, agents, integrations. Everything lands in Postgres with the raw description, budget signals, and posting age. Duplicates across searches collapse into one record, because the same job showing up five times is how you waste a morning.

The scoring rubric

Each job goes to a language model with a rubric, not a vibe. The prompt encodes what a good job looks like for me specifically: does the work match systems I have already built, is the scope a project or a marriage, does the client's language suggest they know what they want, is the budget consistent with the ask. Out comes a score from one to ten and a one-line reason.

The score is not the decision. It is the sort order. Sixty fresh jobs a day arrive ranked, so the first ten minutes of attention go to the ten most promising posts instead of the ten most recent ones.

The drafting pipeline

For jobs worth pursuing, one click pushes the record into an n8n workflow that drafts a proposal: it pulls the relevant build from my portfolio, mirrors the client's own vocabulary from the post, and produces a short draft that sounds like a person who read the listing, because the system actually did. I edit and send. Applying became a thirty-second decision instead of a twenty-minute chore.

The CRM underneath

Every scored job, pushed draft, and sent application lives in one tracker with its status. That sounds boring and is the entire point. Pipeline problems are almost never about effort. They are about losing state: who was contacted, what was sent, what came back. The tracker holds the state so I do not have to.

What I would tell a business owner

Swap "Upwork jobs" for your inbound leads and this is the same machine. Intake, dedupe, score against a rubric that encodes your judgment, draft the first touch, keep the state. None of the pieces are exotic. The leverage is that they run every day without being asked.

Stack — n8n · GLM · NeonStatus — Runs daily
← All notes