How I crafted TL;DRs with LLMs and modernized my blog (part 1)
View the series
- See how I crafted story-like tl;drs for my posts with LLMs
- Learn how I generated my llms.txt summary with LLMs
- Grab the "Copy page" button's code, as seen in OpenAI docs
- Check how I optimized images for better blog performance
- See how impressed I was by GPT-4.1's meta descriptions
A couple of weeks ago, I felt it was time to modernize this blog before digging further into AI automation (pausing the series How I explored Google Sheets to Gmail automation through Zapier before building it in Python).
Since we're living in the AI world, there were two things I absolutely wanted:
-
The llms.txt and llms-full.txt files at the root of the website, to help LLMs with my content.
-
A "Copy page" button at the top of each post, to copy its Markdown version just like in OpenAI docs.
I also wanted a minimalist UI that looks clean with little to no distraction and that loads fast. I used Lighthouse ↗ to help with performance, and most of the work went into optimizing images:
And finally, I wanted tl;drs at the top of each post. That's where GPT-4.1 (an OpenAI LLM) came in to automate the generation of these tl;drs.
Lucky, I got everything I wanted and more.
I figured I could use the tl;drs for my
Atom/RSS feed and
llms.txt file. But then
Lighthouse reminded me of
missing meta descriptions. So, I used GPT-4.1 to
generate some from the tl;drs. And whoa,
they were so good, I used those meta descriptions
for the feed and llms.txt
instead.
No spam. Unsubscribe anytime.
Creating the tl;dr prompt
Unlike the posts themselves, which I write fully before asking GPT-4.1 to correct them, for the tl;drs I wanted to do it the other way around: I give the corrected post as input, ask GPT-4.1 to generate a bunch of tl;drs, and then merge and reword them myself until I'm happy with the result.
Here's what I did to create the tl;dr prompt.
First I asked GPT-4.1 to generate this prompt, giving it the following information:
What this blog is about—and what it isn't.
The prompt I use to correct posts.
How I expect the tl;drs to be.
I have a blog where I share what I'm learning about AI automation.
It's a tech blog, and I include code snippets. I write posts in the
first person and use the past tense to describe what I did. My posts
are about how I figured out something I wanted to learn. They're not
tutorials or writing guides, though readers could follow along if they
want, since I share all the details needed to reproduce my process.
Here as the directives I follow to write these posts:
- Keep the grammar and tone intact.
- Make it flow a little bit naturally.
- Keep sentences short or make them shorter.
- Do not touch the code blocks.
- Keep the story-like style with the details.
Can you provide me with a prompt for llms that I could use to produce
tl;drs for these blog posts. I want them to be:
- Extremely short: 3 short sentences.
- Written in the first person.
- Keeping the tone of the article.
- Maintaining the story-like style.
I got the following prompt:
Summarize the blog post below in a "tl;dr" section. Use first person
and keep the same tone and storytelling style. The summary must be
extremely short, no longer than three short sentences. Do not use
bullet points or lists. Do not explain or generalize; just capture
what I did in this post as briefly as possible, in my own words.
I tried it with some posts, and it generated this tl;dr for the post How I explored Google Sheets to Gmail automation through Zapier before building it in Python (part 1):
tl;dr; I built my first Zapier automation to send emails via Gmail
when rows are updated in a Google Sheet, and set it up smoothly using
their template editor. I tested what happens if required fields are
missing, saw an error both in my inbox and Zapier logs, and used their
troubleshooting tools to diagnose it. Once I filled all fields
correctly, everything worked perfectly and I was impressed by how easy
the process was.
Good first step, but this is too long for me. So I modified the second directive, requiring each sentence to be under 12 words:
- The summary must be exactly three short sentences, each under 12 words.
I generated several tl;drs with that prompt to see how GPT-4.1 responded, and at some point it generated the following:
I built a Zapier automation to email when Google Sheets rows change.
I tested error handling by adding incomplete data and checked the
logs. Everything worked once I filled all fields correctly—automation
success!
I really liked the ending "—automation success!" It felt warm and personal. In the tl;dr, I hope readers can see I had fun with this project and maybe they'll enjoy reading about it too.
Obviously, I asked for an instruction I could add to the prompt to get this kind of ending. After some trial and error, I settled on the following directive, which worked well:
- End the last sentence with a playful exclamation showing my
enjoyment of the process. Do not invent. Stay close to my
words.
My goal isn't to have the model write a perfect tl;dr for me, but instead to help me craft one. So I added:
- Give me 5 alternatives.
It's not always the case, but here, more options are better. I ended up generating 15 to 20 tl;drs to work with for each post. It costs nothing for an LLM to do this. Literally nothing. And it opens doors for me to find the right words.
At this point, I was playing with the following prompt, generating tl;drs and observing what was working or not:
Summarize the blog post below in a "tl;dr" section:
- Use first person and keep the same tone and storytelling style.
- The summary must be exactly three short sentences, each under 12 words.
- Do not use bullet points or lists.
- Do not explain or generalize; just capture what I did in this post
as briefly as possible, in my own words.
- End the last sentence with a playful exclamation showing my
enjoyment of the process. Do not invent. Stay close to my words.
- Give me 5 alternatives.
For instance, it gave me this for How I explored Google Sheets to Gmail automation through Zapier before building it in Python (part 1) post:
1. I built an automation to send Gmail emails from Google Sheets. I
tested errors by adding incomplete rows and used Zapier's
troubleshooting tools. This was a fun and smooth first Zap
experience!
2. I created a Zap that emails Gmail when Google Sheets updates. I
explored error handling by submitting incomplete data to Zapier.
Learning to troubleshoot Zap runs was super satisfying!
3. I assembled my first Zap to connect Sheets and Gmail. I experimented
with Zapier's error logs by triggering intentional mistakes. Making
automation work this way felt exciting!
4. I set up Zapier to email from Sheets on updates. I purposely caused
errors to check Zapier's troubleshooting features. Building and
debugging this process was really enjoyable!
5. I linked Google Sheets updates to Gmail sending with Zapier. I played
with Zap errors and used their log tools for fixes. Had a blast
figuring out my first Zap!
This is when I asked GPT-4.1 to critique the prompt and list the pros and cons. One of the cons caught my attention because I had felt that same tension while generating tl;drs:
Asking to both "stay close to my words" and "keep storytelling style"
can cause tension for the model: should it paraphrase or quote?
I decided to change "storytelling" to "story-like," using the same wording as my prompt for correcting posts, which already works well. This seemed to make a small difference.
Sometimes, I noticed the last sentence was a bit empty except for the playful aspect. So I added to the directive:
Do not forget to include a key point.
Other times, sentences contained more than one key point, as in:
I played with Zap errors and used their log tools for fixes.
I really don't like this. It's too bloated for me.
So, I added:
- Each sentence contains exactly one key point—no more.
At that point I was playing with the following prompt, generating tl;drs and observing what worked and what didn't:
Summarize the blog post below in a "tl;dr" section:
- Use first person and keep the same tone and story like style.
- Do not use bullet points or lists.
- Do not explain or generalize; just capture what I did in this post
as briefly as possible, in my own words.
- The summary must be exactly three short sentences, each under 12
words.
- Each sentence contains exactly one key point—no more.
- End the last sentence with a playful exclamation showing my
enjoyment of the process. Do not invent. Stay close to my words. Do
not forget to include a key point.
- Give me 5 alternatives.
I was satisfied, but still, something felt wrong. When it generated this tl;dr for the post [ ... ]
I explored agent behaviors by combining various tools and handoff
configurations. I puzzled over the "transfer_to_" prefix and sleuthed
through documentation and code. Getting clarity directly from the
source gratified my inner nerd!
I understood the problem; the vocabulary wasn't mine. I would never use "puzzled," "gratified," or "nerd," and I don't even know how to pronounce "sleuthed."
Finally, I added the following directive, which solved this last problem:
- Except for technical language, use simple vocabulary.
There was one post, How I realized AI automation is all about what you automate, for which the tl;dr prompt wasn't enough to generate what I wanted. Maybe the post wasn't as clear as the others. Anyway, by just prepending the post with this sentence
In making this tldr, focus on the really beautiful first example.
the magic happened and GPT-4.1 generated interesting prompts.
TL;DR prompt
Summarize the blog post below in a "tl;dr" section:
- Use first person and keep the same tone and story-like style.
- Except for technical language, use simple vocabulary.
- Do not use bullet points or lists.
- Do not explain or generalize; just capture what I did in this post
as briefly as possible, in my own words.
- The summary must be exactly three short sentences, each under 12 words.
- Each sentence contains exactly one key point—no more.
- End the last sentence with a playful exclamation showing my
enjoyment of the process. Do not invent. Stay close to my words. Do
not forget to include a key point.
- Give me 5 alternatives.
TL;DRs of the first 12 posts
-
How I explored Google Sheets to Gmail automation through Zapier before building it in Python (part 2): I rewrote my Zap as a Python polling script. I set up Google APIs and managed authentication for access. Experimenting with this automation was really fun!
-
How I explored Google Sheets to Gmail automation through Zapier before building it in Python (part 1): I built my first Zap to send Gmail when Google Sheets updates. I tried intentionally triggering an error with missing fields. Exploring Zapier's logs and troubleshooting was actually fun!
-
How I realized AI automation is all about what you automate: I read some of Elena Alston's articles on Zapier's blog and loved the CRM automation call example. That seamless integration of AI after a sales call really blew me away. This is what makes learning about AI automation so fun!
-
How I uncovered Zapier's best AI automation articles from 2025 with LLMs (part 3): I filtered and concatenated all articles from 2025, saving them to a markdown file. When hitting token limits with GPT-4.1, I switched to Gemini, running full article and summary-based rankings. Playing with prompts and model limits kept me entertained!
-
How I uncovered Zapier's best AI automation articles from 2025 with LLMs (part 2): I scraped the Zapier blog to collect article metadata into a JSON file. I then fetched each article, converted it to markdown, and saved it with metadata. The process was smooth, and redirects and errors made the project even more exciting!
-
How I uncovered Zapier's best AI automation articles from 2025 with LLMs (part 1): I let an LLM pick the Top 10 Zapier AI automation articles for me. I compiled all the articles from 2025, summarized and ranked them with different models. It was a fun experiment in AI-assisted curation!
-
How I learned the OpenAI Agents SDK by breaking down a Stripe workflow from the OpenAI cookbook (part 4): I reworked the dispute automation to skip all agents. Instead, I directly called the OpenAI Responses API only for the final summaries. Figuring this out was fun!
-
How I learned the OpenAI Agents SDK by breaking down a Stripe workflow from the OpenAI cookbook (part 3): I set loggers to DEBUG, reran the triage agent workflow, and dug through the raw JSON logs. Seeing each request and response in detail revealed how agents and handoffs really work. Seriously fun!
-
How I learned the OpenAI Agents SDK by breaking down a Stripe workflow from the OpenAI cookbook (part 2): I explored the OpenAI Agents SDK with different triage agent setups. With extra tools and handoffs, the workflow finally closed disputes itself. Figuring out the handoff naming in the SDK source code was fun.
-
How I learned the OpenAI Agents SDK by breaking down a Stripe workflow from the OpenAI cookbook (part 1): I started exploring Dan Bell's guide on automating Stripe dispute management with OpenAI Agents SDK. After some Stripe API doc-diving, everything became clear. Cool first session!
-
How I implemented real-time file summaries using Python and OpenAI API: I wrote my first AI-powered auto-summarizer in Python for new text files. After sorting out OpenAI API updates, I added parallel event processing. Watching real-time summaries was super fun!
-
How I started my journey into AI automation after a spark of curiosity: I saw Zapier hiring AI automation engineers and got curious. Researching similar roles showed me how dynamic the field is. Inspired, I'm starting this blog to share what I'm learning about AI automation.
That's all I have for today! Talk soon 👋