n8n AI pipelines
Overview
I built these pipelines because I wanted to stop doing the same slow work by hand. They run in n8n, and I use them every day, so they have to work, not just look good in a demo.
The biggest one handles job applications. It reads a posting, researches the company and decides if the job is worth my time. Then it picks the right parts of my profile and writes a CV and a cover letter. The text goes through several checks and rewrites before it becomes a PDF. At the end I get a message on Telegram with the result.
The second main flow imports bank transactions. It reads four export formats and labels each transaction. When it does not know a merchant, it asks my home API for the best match. Then it stores the answer, so the next import needs fewer guesses.
The agent logic sits in one shared workflow, and every other flow calls it. That keeps the prompts in one place and makes it easy to switch a model. The public repository is a cleaned copy with no keys, no personal data and placeholder hosts.
Problem
Writing a good job application took me about two hours, and most of them went unanswered. I also had a stack of bank exports in different formats that I had to label by hand. I wanted pipelines that do this work every day, not a demo that works once.
Approach
- I built the pipelines in n8n and use them for real work every day.
- I split the work into many small agents, each with one job, instead of one big prompt.
- I let two separate agents score a job, one for how well I fit and one for how much I want it.
- I mixed OpenAI and DeepSeek models inside the same run, so each step uses a model that suits it.
- I turned the shared parts into reusable sub workflows, so no flow carries its own copy.
- I published a cleaned copy of the repository under the MIT licence.
Architecture and design decisions
- The largest flow is the job application flow. It is one workflow with 169 nodes and more than twenty specialist agents.
- It reads a job posting, researches the company, scores fit and desire, loads my newest profile vector and picks the CV entries that matter.
- It then writes the CV and the cover letter, turns them into LaTeX, renders a PDF, uploads it to Drive and sends me a message on Telegram.
- One shared workflow called ai-utility is the agent itself. It holds the prompt, the JSON parsing and the retries, and a parameter picks Anthropic, OpenAI or DeepSeek.
- The profile vectorizer builds the profile vector that the job flow compares against.
- The firefly-import flow reads four bank export formats through a shared CSV reader and labels every transaction.
- Unknown merchants go to my NestJS home API, which looks for the best match. Every decision is written back as an example, so the matcher needs fewer guesses over time.
- The CSV reader, the JSON loader and the Notion blocks are small sub workflows that other flows reuse.
Reliability and performance
- Weak text goes through a loop of a humaniser, an AI pattern detector, a surgical rewrite and a polisher until it passes.
- Retries and JSON parsing live in one place, the shared agent, so a fix there helps every caller.
- The transaction matcher learns from its own past decisions, so fewer items need an AI call as the example store grows.
- Before publishing, I replaced hardcoded keys with env expressions, removed pinned data and personal details and swapped real hosts for placeholder domains.
Outcomes
- CV preparation went from about 2 hours to about 8 minutes.
- I got 8 callbacks from 12 applications, up from roughly 1 in 5 before.
- One 169 node workflow with more than twenty agents runs end to end without me touching it.
- Bank transactions are labelled automatically, and the matcher gets better with use.
- The repository is public and MIT licensed.
Known gaps
- The callback numbers come from only 12 applications. That is too small a sample to prove the pipeline caused the change.
- The 'roughly 1 in 5' before figure is my own estimate, not a record. The roles I applied to and the job market may also have changed.
- I do not say how many pipeline runs failed or needed a manual fix.
- I have no cost figures for the model calls.
- I do not say how well the AI pattern detector works. It is my own check and not a tested tool.