Every year or two, I write a newsletter and an accompanying personalized email to a group of friends and colleagues. I started with 50 folk on my list, and now have more than 500. The research and writing of these emails becomes more daunting every year.
So this year, in the spirit of the times, I used AI to help me build my emails.
Before the how-to, I want to address the artificially augmented elephant in the room. Isn't using AI here insincere? Doesn't it defeat the purpose of a personalized email?
If I didn't personally read and edit each email, then yes. But, I do read each one. I do ensure they’re correct and tailored. Plus, I’m not doing much I wasn't doing anyway.
If I weren't using AI, I’d research each person de novo each year. I'd visit LinkedIn, read previous emails, and Google to see what they've been up to. The same way AI does.
But now instead of doing all that finger work, AI does it for me. I read a summarization, tailor it, tweak it, and send it off.
I tried to find an all-in-one tool to help with this task. I asked friends, Bookface, and ChatGPT Deep Research. The best tool was clay.earth (not to be confused with clay.com which will come up later).
Clay.earth aggregates your contacts from: LinkedIn, WhatsApp, Messages, Gmail, etc. And tries, though often fails, to combine them into unique entities. The connection and integration process is easy. However, the de-duping process took me hours of human effort.
Once I coalesced my contacts, I tried to use their API. But the clay.earth API, which does exist, whitelists only a few IP addresses. The more accessible API is the Nexus MCP.
At first glance, this sounds intimidating. Instead of hitting a vanilla API, I need to hit an MCP server. But MCP servers are trivially easy to integrate with. An MCP is just a wrapper of a preexisting API. It decorates that API with AI readable information, as well as implements a set of methods that a model can use. For example, listing all the tools that the API has to offer.
The problem with Nexus is I could only pull the basics. Getting the text of the most recent email exchanges or summaries of LinkedIn were off the table.
All in, clay.earth was a waste of time.
I looked for tools SDRs use in cold email outbound. But there wasn't a comprehensive solution. Nothing could scan previous conversations with Gmail or look at previous calendar events.
Fortunately, a recent YC company did 90% of the job. This company was called clay.com (I know! People really like the name clay).
Using clay.com, you can enrich a CSV of your contacts with different AI-enabled functions. I pulled in LinkedIn histories, and executed perplexity-based searches. But this was only half of the personalization that I wanted. The other half was looking back at email histories.
I built this myself.
You can export all of your Gmail and Google Calendar data as part of the Google Takeout project. I had about 30 gigabytes from all of my emails since I was a teenager. (Over 100,000!) Using Claude Code, I pulled out the five most recent emails and calendar events for each of my contacts.
It wasn't bad. Claude handled all the syntax for working with .mbox and .ics files. But I still had to be careful. Giving single commands to build the whole project utterly failed. Instead, giving small, crisp commands, like "Build a file structure for each contact in my newsletter.csv file”, worked like a charm.
At first, Claude loaded all the Gmail entries into memory, 17 gigs into my 16 gigs of RAM. My computer immediately crashed. I went in, debugged, and lazily loaded the email files in chunks.
Next, was writing the emails.
I tried two approaches. 1) I fine-tuned an LLM using GPT's built-in mechanisms. The process was trivial. You use Claude code to format data, and upload it to GPT. You pay some bucks, and out you get a fine-tuned LLM.
2) I did prompt engineering. I wrote two emails (work and personal), pretending to be the AI. Yes, I did have to use my metacarpals, but I learned something quite interesting.
When I used the enriched data, my emails were better than before. AI surfaced events I had forgotten. Doing data science consulting with a friend, playing a Sherlock Holmes game, or running an infinity-themed D&D adventure. It was like augmented memory.
A combination of fine-tuning and a very appropriate system prompt left me proud of AI emails.
In summary, here are the learnings that I took from this project.
First, when used appropriately, AI can augment and enhance. You don't just need to make AI slop. You can make better products.
Second, most AI infra has become commoditized. MCPs, fine-tuning, and code generation, is, dare I say, trivial.
And third, if you want to pursue this project, I would recommend waiting. I built this project over the course of two days, and I'm shocked another company hasn’t solved this problem yet. I wouldn't be surprised if someone reads this and points me to a tool I couldn't find!
But AI is moving so fast. In the next six months, 90% of the techniques that I've mentioned will be obsolete. Projects that would have taken me months now take me days. To anyone with a foundational CX background, nothing is off the table. Everything is possible and easier than ever before.
What a time to be alive.