<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Mark Lester Mahilum</title><description>Claude Code expert in the Philippines helping businesses solve real problems with AI workflow automation. Practical guides, use cases, and insights from daily Claude Code practice.</description><link>https://marklestermahilum.com/</link><item><title>Claude &apos;Fixed&apos; My Site Into 404s, and What That Taught Me About AI Guardrails</title><link>https://marklestermahilum.com/blog/claude-fixed-my-site-into-404s/</link><guid isPermaLink="true">https://marklestermahilum.com/blog/claude-fixed-my-site-into-404s/</guid><description>Claude Code saw duplicate content, applied the textbook fix, and broke every TIL post on this site. The bug wasn&apos;t the model. It was where I kept my decisions.</description><pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Optimizing My Site for ChatGPT, Claude, and Perplexity in One Claude Code Session</title><link>https://marklestermahilum.com/use-cases/optimizing-website-for-llm-search/</link><guid isPermaLink="true">https://marklestermahilum.com/use-cases/optimizing-website-for-llm-search/</guid><description>Generative engine optimization (GEO) with Claude Code: dynamic llms.txt endpoints, AI-crawler robots.txt, and JSON-LD schema across every page. One session, deployed.</description><pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Cloudflare Workers static assets won&apos;t serve a 404 page unless you say so twice</title><link>https://marklestermahilum.com/blog/til-workers-assets-need-explicit-404/</link><guid isPermaLink="true">https://marklestermahilum.com/blog/til-workers-assets-need-explicit-404/</guid><description>Building 404.astro isn&apos;t enough. Without not_found_handling in wrangler.json, unknown URLs on a Workers site return a bare response instead of your page.</description><pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Finding Every Broken Link with a One-Liner Claude Code Wrote</title><link>https://marklestermahilum.com/use-cases/finding-404s-with-a-link-crawler/</link><guid isPermaLink="true">https://marklestermahilum.com/use-cases/finding-404s-with-a-link-crawler/</guid><description>No paid crawler, no SaaS audit tool. Claude Code crawled the built site with grep, found three 404s, traced the root cause, and shipped a custom 404 page.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Building llms.txt as an Astro endpoint so it never goes stale</title><link>https://marklestermahilum.com/blog/til-llms-txt-as-astro-endpoint/</link><guid isPermaLink="true">https://marklestermahilum.com/blog/til-llms-txt-as-astro-endpoint/</guid><description>A static llms.txt is a list you forget to update. An endpoint that queries your content collections rebuilds the index on every deploy. One gotcha: a file in public/ silently shadows it.</description><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Caveman Mode: How I Cut Claude Code&apos;s Output Tokens by ~75%</title><link>https://marklestermahilum.com/tutorials/caveman-mode-cut-token-costs/</link><guid isPermaLink="true">https://marklestermahilum.com/tutorials/caveman-mode-cut-token-costs/</guid><description>A CLAUDE.md persona plus two hooks that make Claude respond terse-but-complete in every session. Same technical substance, a fraction of the tokens.</description><pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Managing AI Voice Agents from the Terminal with Claude Code and MCP</title><link>https://marklestermahilum.com/use-cases/managing-voice-agents-from-the-terminal/</link><guid isPermaLink="true">https://marklestermahilum.com/use-cases/managing-voice-agents-from-the-terminal/</guid><description>Retell AI&apos;s MCP server plugged into Claude Code: create agents, buy phone numbers, review call logs. The whole voice stack managed in conversation, no dashboard.</description><pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Make Claude Code Finish the Job: Session Goals with Stop Hooks</title><link>https://marklestermahilum.com/tutorials/session-goals-with-stop-hooks/</link><guid isPermaLink="true">https://marklestermahilum.com/tutorials/session-goals-with-stop-hooks/</guid><description>Claude Code stops when it thinks it&apos;s done, not when the work is done. A session-scoped Stop hook turns your goal into a contract it can&apos;t walk away from.</description><pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate></item><item><title>A hook that rewrites commands fails every command when its binary is missing</title><link>https://marklestermahilum.com/blog/til-broken-hook-fails-every-command/</link><guid isPermaLink="true">https://marklestermahilum.com/blog/til-broken-hook-fails-every-command/</guid><description>My token-saving Bash rewrite hook pointed at a CLI that wasn&apos;t installed. Every shell command in every session died with &apos;command not found&apos; until Claude routed around it.</description><pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Every Missed Call Is a Customer Going to Your Competitor</title><link>https://marklestermahilum.com/blog/missed-calls-are-killing-your-local-business/</link><guid isPermaLink="true">https://marklestermahilum.com/blog/missed-calls-are-killing-your-local-business/</guid><description>62% of small business calls go unanswered. 85% of those callers never try again. Here&apos;s exactly what that&apos;s costing you, and the system that fixes it permanently.</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate></item><item><title>draft: true in frontmatter does nothing unless you filter for it</title><link>https://marklestermahilum.com/blog/til-draft-filtering-was-missing/</link><guid isPermaLink="true">https://marklestermahilum.com/blog/til-draft-filtering-was-missing/</guid><description>Astro Content Collections don&apos;t hide draft posts automatically. Forgetting the filter on index and slug pages means drafts are publicly live.</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Merging a small content collection into a bigger one beats a separate one</title><link>https://marklestermahilum.com/blog/til-merge-collections-instead-of-splitting/</link><guid isPermaLink="true">https://marklestermahilum.com/blog/til-merge-collections-instead-of-splitting/</guid><description>TIL posts lived in their own Astro content collection. Folding them into the blog collection as a category field fixed SEO and cut duplicate logic.</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate></item><item><title>CLAUDE.md persists instructions across every session</title><link>https://marklestermahilum.com/blog/claude-code-remembers-across-sessions-with-claude-md/</link><guid isPermaLink="true">https://marklestermahilum.com/blog/claude-code-remembers-across-sessions-with-claude-md/</guid><description>You don&apos;t have to re-explain your project conventions every time. CLAUDE.md is loaded automatically at the start of every Claude Code session.</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Getting Started with Claude Code: Your First AI-Native Workflow</title><link>https://marklestermahilum.com/tutorials/getting-started-with-claude-code/</link><guid isPermaLink="true">https://marklestermahilum.com/tutorials/getting-started-with-claude-code/</guid><description>Install Claude Code, run your first session, and build a workflow that saves you an hour a day. A practical beginner guide from real daily use.</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Automating Code Review with Claude Code Hooks</title><link>https://marklestermahilum.com/use-cases/automating-code-review-with-claude-code/</link><guid isPermaLink="true">https://marklestermahilum.com/use-cases/automating-code-review-with-claude-code/</guid><description>How I wired Claude Code&apos;s PostToolUse hooks to automatically review every file I edit, catching bugs before I even run the code.</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate></item></channel></rss>