<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Rúben Cipriano — Writing</title>
    <link>https://rubencipriano.top/blog/</link>
    <atom:link href="https://rubencipriano.top/rss.xml" rel="self" type="application/rss+xml" />
    <description>Notes on concurrency, payments, security and tooling from building enterprise web applications with React, Next.js and .NET.</description>
    <language>en</language>
    <lastBuildDate>Mon, 31 Aug 2026 09:00:00 +0000</lastBuildDate>
    <item>
      <title>Your CV parses worse than you think: building ATS-safe PDFs with headless Chrome</title>
      <link>https://rubencipriano.top/blog/ats-safe-pdf-headless-chrome/</link>
      <guid isPermaLink="true">https://rubencipriano.top/blog/ats-safe-pdf-headless-chrome/</guid>
      <pubDate>Mon, 31 Aug 2026 09:00:00 +0000</pubDate>
      <description>Letter-spaced headings, wrapped URLs and two-column layouts quietly destroy a CV during text extraction. A generated pipeline with assertions catches all three.</description>
      <category>PDF</category>
      <category>Tooling</category>
      <category>Node.js</category>
      <category>Accessibility</category>
    </item>
  </channel>
</rss>
