Automated cover letters with N8N, Google Gemini, Pinecone and Notion

Freelancing is awesome, but let’s be real—writing personalized cover letter for every job can be a headache, right? I used to lose leads sometimes or spend way too much time crafting the perfect cover letter. All I ever wanted was a way to speed things up while keeping things on point—without overcommitting and saying stuff that I didn’t actually offer.
Then, I started diving into AI agents, automation, and RAG-based systems, and it hit me: why not level up my old Excel-based solution with some AI magic?
So here’s the game plan:
- Personal Experience + Skills = Embeddings: I’m going to turn my personal experiences and skills into embeddings and store them in a vector store. That way, I’ve got everything easy to access.
- AI Cover Letter Generation: I’ll use an AI agent to read job descriptions and automatically generate a tailored cover letter using my skills and experiences from that vector store. No more stress, just a smart, personalized cover letter in minutes.
So here’s the toolkit I’m working with to bring this whole AI cover letter game to life:
- N8N - This is going to be my automation engine. It’s like the behind-the-scenes wizard that makes everything run smoothly.
- Notion - My trusty knowledge base. I’ll be storing all my experiences and skills here, so the AI has the best possible info to work with.
- Pinecone - The magic vector database. Once I turn my data into embeddings, Pinecone is where it’ll live, making it super easy to access and use for generating cover letter.
- Google Gemini Model - This is the brain of the operation! I’ll be using this to create tailored cover letter based on the job descriptions and my experience data.
I’ll have two main automations running:
- Automation 1: Converts my knowledge (from Notion) into embeddings and stores it in Pinecone. This way, everything’s organized and ready to go.
- Automation 2: The real magic happens here. The AI agent reads the job description and creates a personalized cover letter by pulling info from my vector store. It’s like a cover letter machine that does all the heavy lifting!
This setup is gonna be a game-changer for anyone who’s tired of spending hours writing cover letter. I’m excited to see it all come together!
Automation 1 - Notion to Pinecone

So, for Automation 1, the workflow looks like this:
We’ve got Notion as the starting point, where all my knowledge and experience are neatly organized across different pages. Think of it like a well-organized library full of data I’ve collected over time. Now, using N8N, the Notion node grabs all that info and sends it to the Pinecone node to convert and save data as a vector.
This way, everything’s in one place, super easy to access, and ready to be converted into embeddings! It's like creating a smart, searchable database from all those experience-packed pages I’ve built in Notion.
https://creators.n8n.io/workflows/2797
Automation 2: Cover Letter generation

This is the N8n workflow designed for cover letter generation—your new productivity hack! 🛠️
It all kicks off with a chat node (but hey, you can switch it to any other triggered node if that suits your flow). This is where you pop in the job description, the key ingredient for crafting a tailored cover letter.
The AI Agent steps in next, armed with prompts and guidelines. It knows exactly how to:
- Tap into a vector database for relevant personal experience and skills.
- Use the Multi-Source Search Tool (aka SearchXNG) to add extra flair—though you can totally skip this if it feels like overkill.
And here’s the cherry on top—the image below showcases the cover letter generated by this workflow. 🎉

Check out the workflow in action in the video below! 🎥✨
In conclusion, this workflow is a game-changer for automating personalized cover letter creation. It works seamlessly and saves a ton of time. However, if you’re not using a premium text-to-text generation model, it’s crucial to review the cover letter before submitting it. A quick read-through and minor edits might be needed to ensure it hits the right tone and aligns perfectly with the job description. 🚀