My related-posts finder script (with LLM and GPT4 enhancement)
I've open-sourced the script I use to find related blog posts (and to describe why they're similar). Works on any set of markdown articles, so should fit into any SSG workflow. Uses embeddings to calculate the similarities, and GPT4 to add descriptive text.
My related-posts finder script (with LLM and GPT4 enhancement) launched on December 7, 2023 with 69 votes, #695 of 3,780 launches that month and more than 90% of that year's launches. The site was still online in September 2026, 2 years on.
In plain words
This open-source script finds related blog posts within markdown article collections and explains why they're similar. It works with any static site generator workflow by using embeddings to calculate content similarity and GPT-4 to generate descriptive text for the connections. It's designed for bloggers and content creators who want to automatically surface related articles without manual curation.
written from the facts on this page · September 2026
From the sources
How I used LLM embeddings to find related posts for my statically-generated blog and then used GPT4 to explain why they're similar.
If you're just interested in the code for this project, you can find it on GitHub: github.com/tomhazledine/related-posts . Try it out and let me know what you think 👍 I've been having a lot of fun lately with embeddings . They are a somewhat-overlooked sideshow to the current GPT/LLM/AI circus, but in my view they are even more interesting than the headline-grabbing chat apps. And unlike the chat interfaces, embeddings are a way to make LLMs actually useful without any of the worries about "hallucination" or just-plain-wrong content. A large part of what I've been using embeddings for is "natural language search" which (at the simplest level) involves defining how similar two bits of text…from tomhazledine.com
Does a similar job
all alternatives →
I made a tool to clean and convert any webpage to Markdown2024 · markdowndown.vercel.app · ▲441My partner usually writes substack posts which I then mirror to our website’s blog section. To automate this, I made a simple tool to scrape the post and clean it so that I can drop it to our blog easily. This might be useful to others as well. Oh and ofcourse you can instruct GPT to make any final edits :D
- ATA tool to find related subreddits2019 · anvaka.github.io · ▲398
This visualization of related subreddits helps you find related subreddits
- WSWeb search using a ChatGPT-like model that can cite its sources2022 · beta.sayhello.so · ▲318
We’ve trained a generative AI model to browse the web and answer questions/retrieve code snippets directly. Unlike ChatGPT, it has access to primary sources and is able to cite them when you hover over an answer (click on the text to go to the source being cited). We also show regular Bing results side-by-side with our AI answer. The model is an 11-billion parameter T5-derivative that has been fine-tuned on feedback given on hundreds of thousands of searches done (anonymously) on our platform. Giving the model web access lessens its burden to need to store a snapshot of human knowledge…
Subreddit Finder - Trained on 4M Reddit Posts from 4K Subreddits2020 · valohai.com · ▲152We built Valohai LLM for tracking and comparing LLM evaluation results. Whether your evals live in notebooks and spreadsheets, or you're using an observability tool that wasn't built for comparison, this gives you a purpose-built eval comparison dashboard. Run evals with a Python library (pip install valohai-llm), results stream in, and you can compare up to 6 configurations side by side. Group by any dimension (model, category, difficulty) to see where each model excels. It doesn't do tracing or production observability, for now just eval tracking and comparison. What's cool is that you can…
- IMI made a website to semantically search ArXiv papers2024 · papermatch.mitanshu.tech · ▲324
As a grad student (and an ADHDer), I had trouble doing literature review systematically. To combat this, I made a website that finds similar papers using the meaning of the thing I am looking for. I used MixedBread's [^1] embedding model to generate vectors from the abstracts. I store and search similar vectors using Milvus [^2] and finally use Gradio [^3] to serve the frontend. I update the vector database weekly by pulling the metadata dataset from Kaggle [^4]. To speed up the search process on my free oracle instance, I binarise the embeddings and use Hamming distance as a metric. I would…
Real-time system that tracks how news spreads across 200k websitesNov 2025 · yandori.io · ▲256I built a system that monitors ~200,000 news RSS feeds in near real-time and clusters related articles to show how stories spread across the web. It uses Snowflake’s Arctic model for embeddings and HNSW for fast similarity search. Each “story cluster” shows who published first, how fast it propagated, and how the narrative evolved as more outlets picked it up. Would love feedback on the architecture, scaling approach, and any ways to make the clusters more accurate or useful. Live demo: https://yandori.io/news-flow/
More ai this month
the category →



Paintings by AI models: programs run through a simulation of oil paint.
AI · 22d ago · stillwet.art

FastRouter.ai▲364Route requests to the right LLM for cost, latency & quality
AI · 23d ago · fastrouter.ai
Source: Show HN post ↗
Launched alongside, December 2023
the whole month →
Hi HN! I’m proud to share that we have built a real 3rd party iMessage client for Android. We did it by reverse engineering the iMessage protocol and encryption system. It's available to download today (no waitlist): https://play.google.com/store/apps/details?id=com.beeper.ima and there's a technical writeup here: https://blog.beeper.com/p/how-beeper-mini-works. Unlike every other attempt to build an iMessage app for Android (including our first gen app), Beeper Mini does not use a Mac server relay in the cloud. The app connects directly to Apple…
Work · 2023 · beeper.com

Hey! I made Heynote entirely for my own use case. For many years, I always had an Emacs instance running with the scratch buffer open, even long after I had abandoned Emacs as my programming editor in favor of more recent IDE:s. The simplicity of having just one big scratch buffer appeals to me, but I still want to separate the different things I jot down somehow (without using tabs or similar). Previously, my solution was to insert a bunch of blank lines between the notes, but hitting C-A would still select the entire buffer. That's why I came up with the concept of "blocks", which turned…
Work · 2023 · heynote.com

FuseBase▲939Client collaboration platform for professional services
Dev tools · 2023 · thefusebase.com
Beep! 2.0▲871Fastest tool to assign and share visual tasks with your team
Work · 2023 · justbeepit.com
Inbox Zero▲821Clean Up Your Inbox In Minutes Newsletter management, AI automation, and email analytics. Inbox Zero is the open-source email app that puts you back in control of your inbox.
AI · 2023 · getinboxzero.com