Damn Fine Coffee wanted a specialty coffee guide that goes deep on every city, neighbourhood and coffee bar, without an editorial team of ten. We built the guide and the AI pipeline that fills it. Today 125 coffee bars across 32 neighbourhoods of Amsterdam and Rotterdam are live, in Dutch and English.

A city guide stands or falls with its content, and writing and maintaining that by hand for hundreds of venues is not doable for a small team. So this is one project with two halves. On the front a fast guide where you search, filter and browse the map per city and neighbourhood. On the back an AI pipeline that does the research, the scores, the copy and the translations, with a portal where the team steers.
City, neighbourhood and coffee bar each as their own page, with a map, filters, scores and 'best of' guides.
AI that finds, researches, rates, writes up and translates coffee bars, with fixed checks at every step.
A new city starts with a list of neighbourhoods that the team checks and adjusts itself. Then the pipeline takes over. AI finds the specialty venues per neighbourhood, filters out chains and non-coffee places, and researches each candidate with Google Search into a fixed profile of about sixty fields, from opening hours and roasters to equipment and atmosphere. Whoever doesn't qualify drops out, with the reason recorded. A second step scores every venue on quality, craft and ambiance, capped in code so no model can hand out a 10. Then another model writes the verdict, the review and the SEO copy, and a final step turns everything into Dutch, URLs included. Research and scoring run on Gemini, writing and translating on Claude, each model for the work it is good at. At every step plain code checks the output for length, fixed vocabularies and banned clichés, and on a failure the text goes back with the error attached.





AI that does the work, with the team in control.
A new city stays hidden until the team switches it on, and roasters only appear after approval. Per coffee bar you rerun research or scoring with one button.
The research leans on current search results and fills fixed fields with fixed choices. That limits made-up details and keeps the filters reliable.
Every translation is checked against a fixed glossary and rejected if a field is missing. When the original changes, the translation gets flagged.
Pages carry structured data and FAQs built from the site's own database, and every guide has a short answer that AI assistants can quote.
The whole chain from neighbourhoods to translation runs as one sequence. Expanding starts with a check of the neighbourhood list, then the pipeline does the work.
Design, frontend, database and the entire AI pipeline, I built it all myself. The hardest part was getting the AI reliable at scale. One good text for one coffee bar is easy, the same quality 125 times takes fixed fields, checks in code and a fair comparison between models. For the translations I ran the models side by side on the same texts and chose on the results. What I'm most pleased with is that a new city is now a matter of running and reviewing.