Skip to main content
Go back to Blog
CV Resume Agentic Building workflow
Artificial IntelligenceProductivity

Motivation

We all know and love coding agents. We plan, refine, and instruct agents to execute. 2025 was wild, it changed how we conduct software engineering massively, we now rarely touch our keyboards to manually code. That, I guess, rewired my brain, for better and for worse. I now get mildly frustrated when my dishwasher doesn’t accept natural language instructions.

So naturally, I started looking for other tedious tasks to offload. CV building came to mind, there’s a lot of maintenance that must be done, like tailoring your resume to match a job description or keeping it up-to-date with your latest achievements.

Adding to that is that Software Engineers probably already subscribe to some kind of coding agent setup (pay to win :D), so why not just leverage the subscription so we get more value!

That led me to experiment with coding agents + LaTeX

Solution

LaTeX is a markup language (kinda like HTML) to describe content for structured PDF. The main benefit is to decouple presentation of the PDF from its content. It allows people to easily change formatting / layout / presentation without the need to change the actual content.

While that’s nice and all, how does it help with CV / resume building? LaTeX as a language editable locally in our computers can be augmented with agentic editing. We can relieve ourselves of low-level details to change LaTeX by using the higher-level abstraction of prompts. Better yet, since agents have tools, we now rarely need to touch our keyboards.

Use cases

Here are some use cases the agentic CV building allows you to do easily:

  1. Change CV content to match job description for better ATS scores
  2. Optimize how to write the achievements of each job position
  3. Change the layout/formatting/presentation of CV without changing content
  4. Have a separate evaluation agent that acts as an expert CV reviewer to evaluate any content changes
  5. Track changes using versioning, branching, tagging, and all other goodies that come with Git

Well I’m sure there’s more but you get my point, basically we don’t need to do old school inefficient way of changing/maintaining our CV. We can spend less time on CV-related stuff and even come out with an always optimized CV for any job description, all without touching our keyboards (well kinda)

Example: Tailoring Resume for Job Description

Here’s a real example from this commit, tailoring a resume for Canva’s AI Developer Tooling role.

The job description prioritizes:

  • AI-orchestrated developer workflows and MCP implementations
  • Python/Go expertise with AI tooling experience
  • LLM and agent understanding

Changes made to match:

  1. Rewrote professional summary: shifted focus from frontend to AI:
- Senior Software Engineer with 5+ years building scalable web
- applications across fintech, e-commerce, and enterprise sectors.
- Proven expertise in frontend architecture, performance optimization,
- and leading cross-functional engineering teams.
+ Software Engineer with 5+ years building scalable applications
+ across AI, e-commerce, and enterprise sectors. Proven expertise
+ in Python, LLM integration, and full-stack architecture.
+ Experience with prompt engineering, RAG systems, and CI/CD automation.
  1. Reordered experience section: AI Research Assistant moved from second to first position:
  \section{Professional Experience}
    \resumeSubHeadingListStart

-   \resumeSubheading
-     {Tiket.com}{Jakarta, Indonesia}
-     {Senior Frontend Engineer | React, TypeScript, GraphQL, Node.js}
-
-   \resumeSubheading
-     {Institut Teknologi Bandung}{Bandung, Indonesia}
-     {AI Research Assistant | Python, HuggingFace, OpenAI API, LangChain}
+   \resumeSubheading
+     {Institut Teknologi Bandung}{Bandung, Indonesia}
+     {AI Research Assistant | Python, HuggingFace, OpenAI API, LangChain}
+
+   \resumeSubheading
+     {Tiket.com}{Jakarta, Indonesia}
+     {Senior Frontend Engineer | React, TypeScript, GraphQL, Node.js}
  1. Restructured entire skills section: AI/ML skills promoted to top, frontend demoted:
  \section{Skills}
-   \textbf{Frontend:} React.js, Next.js, Vue.js, Nuxt.js, TypeScript, JavaScript, HTML5, CSS3 \\
-   \textbf{Styling:} Tailwind CSS, SASS, Styled Components, Material UI, Ant Design \\
-   \textbf{State Management:} Redux, Zustand, React Query, Vuex \\
-   \textbf{Backend:} Node.js, Express.js, Python, Go \\
+   \textbf{Languages:} Python, TypeScript, JavaScript \\
+   \textbf{AI/ML:} LangChain, OpenAI API, HuggingFace, RAG, Prompt Engineering, FAISS \\
+   \textbf{Backend:} Node.js, Express.js, GraphQL, REST APIs \\
+   \textbf{Frontend:} React.js, Next.js, Vue.js, Nuxt.js \\
    \textbf{Testing:} Jest, Cypress, Playwright, React Testing Library \\
    \textbf{DevOps:} Docker, Kubernetes, AWS, GCP, GitHub Actions, Jenkins \\
-   \textbf{Databases:} PostgreSQL, MongoDB, Redis, GraphQL \\
+   \textbf{Databases:} PostgreSQL, MongoDB, Redis \\

Two versions maintained: main.tex (AI-tailored) and master.tex (frontend-focused). Same experience, different emphasis, optimized for different job descriptions.

Want to try this workflow?

I’ve open-sourced everything: template, prompts, Docker setup, all of it.

What you get:

  • Zero LaTeX setup: Docker handles the messy installation so you don’t have to
  • Battle-tested template: Clean, ATS-friendly format ready to customize
  • Working agent prompts: Skip the trial and error, use prompts that actually work
  • Workflow examples: Master CV with tailored subdirectories per job application, job description matching prompt to score how well your CV fits

Star it to bookmark for your next job search, fork it to customize for your own CV, or contribute by checking out the open issues: github.com/madnanrizqu/vibe-cv-resume