<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Mark Dovgalyuk</title><description>Notes and writing on data, software, and cloud.</description><link>https://mark-dovgalyuk.com/</link><item><title>Bullhorn Batch Ingestion Part 1: 3-Legged OAuth and Rotating Refresh Tokens</title><link>https://mark-dovgalyuk.com/blog/posts/bullhorn-oauth-part-1/</link><guid isPermaLink="true">https://mark-dovgalyuk.com/blog/posts/bullhorn-oauth-part-1/</guid><description>Bullhorn&apos;s API uses 3-legged OAuth, built for human-in-the-loop apps. Building a backend batch sync on top meant designing around that mismatch, plus the rotating refresh tokens Bullhorn issues and the failure modes that come with them.</description><pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate></item></channel></rss>