_blogs
// blogs / 20260523.md
// blogs / 20260523.md
Dev Log: May 23 Wrap-up
Overview
Today was a classic "one step forward, two steps back" kind of day. I had this grand plan to build a fully automated, AI-driven resume generator, but I ended up spending most of my hours wrestling with LaTeX compilers in GitHub Actions and debugging web routing configs.
What I Worked On
The Dream of Auto-Tailored Resumes
Lately, I’ve been thinking about how to make my job applications more efficient. Since I write these daily logs, I already have a structured record of what I’m working on. I decided to build a pipeline that reads my accumulated log data, runs it through an LLM to identify my core focus areas, and automatically generates customized LaTeX resume profiles.
I wrote a Python script to handle the heavy lifting: aggregating tag frequencies, hitting the Gemini API to draft tailored bullet points, and rendering profile-specific .tex files. Seeing the script dynamically spin up distinct, highly targeted LaTeX files based on my actual log history was incredibly satisfying.
The CI/CD and LaTeX Nightmare
Of course, things got messy the moment I tried to automate the actual PDF compilation. I wanted GitHub Actions to compile the newly generated LaTeX files on every push to my resume repository.
Setting up xelatex in an Ubuntu runner is always a headache. The runner has to pull down the compiler, pull in the right system fonts, and render everything without choking. I ran into a wall where the compilation was failing or behaving unpredictably. I ended up in a frustrating loop of committing, watching the action fail, reverting the changes, trying a different approach, and committing again. I ultimately had to roll back the integration on my main pipeline until I can get the LaTeX container setup to behave reliably.
Squashing Routing Bugs
While waiting for build runners to finish, I jumped over to my personal web portal to fix some broken routing. Users were hitting some weird page-not-found issues on nested URLs. It turned out my deployment hosting configuration was trying to be a bit too clever with framework-specific defaults and URL cleaning. I stripped out the unnecessary properties in my deployment config and simplified the fallback rewrites to ensure my single-page app handles paths cleanly. It was a quick fix, but a necessary one.
Wrapping Up
Even though I had to revert some of the automation steps to keep my main branch green, the core logic is solid. Tomorrow, I’m going to tackle the CI container issue with a fresh head. Once the LaTeX compiler is stabilized, the whole self-updating portfolio pipeline is going to feel seamless.