<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vladimir Podlevskikh</title>
    <description>The latest articles on DEV Community by Vladimir Podlevskikh (@vladimirpodlevskikh).</description>
    <link>https://dev.to/vladimirpodlevskikh</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3970839%2F1cc1dc8f-6caa-4e73-b906-5e15904834cc.png</url>
      <title>DEV Community: Vladimir Podlevskikh</title>
      <link>https://dev.to/vladimirpodlevskikh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vladimirpodlevskikh"/>
    <language>en</language>
    <item>
      <title>Catching "URGENT, our automation broke" posts with a pure-Python RSS pipeline (no API keys, no SaaS)</title>
      <dc:creator>Vladimir Podlevskikh</dc:creator>
      <pubDate>Sat, 06 Jun 2026 06:46:26 +0000</pubDate>
      <link>https://dev.to/vladimirpodlevskikh/catching-urgent-our-automation-broke-posts-with-a-pure-python-rss-pipeline-no-api-keys-no-saas-4n4f</link>
      <guid>https://dev.to/vladimirpodlevskikh/catching-urgent-our-automation-broke-posts-with-a-pure-python-rss-pipeline-no-api-keys-no-saas-4n4f</guid>
      <description>&lt;p&gt;There's a category of freelance work where speed beats reputation: somebody's Zapier scenario died at 2am, their previous developer vanished, their Amazon listing got hijacked — and they'll hire whoever shows up first with a competent answer.&lt;/p&gt;

&lt;p&gt;The problem: these "fires" are scattered across Reddit, community forums and job boards, and they go stale in hours. Manually checking ten places a day doesn't scale. So I built a monitor. It's ~250 lines of stdlib Python and it found 19 qualified leads on its first run.&lt;/p&gt;

&lt;h2&gt;
  
  
  The stack is deliberately boring
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reddit&lt;/strong&gt; — every subreddit ships an Atom feed at &lt;code&gt;/new.rss&lt;/code&gt;. No OAuth, no API keys, no rate-limit dance that the JSON API now requires. &lt;code&gt;urllib&lt;/code&gt; + &lt;code&gt;xml.etree&lt;/code&gt; and you're reading r/smallbusiness in 15 lines.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Discourse forums&lt;/strong&gt; (n8n community, Make community) — every category exposes clean JSON at &lt;code&gt;/c/&amp;lt;slug&amp;gt;/&amp;lt;id&amp;gt;.json&lt;/code&gt;. Again: no auth for public boards.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Freelance platforms&lt;/strong&gt; — saved-session cookies + whatever JSON endpoint the SPA itself calls.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One scheduled run every 30 minutes, 2-second sleeps between requests, persistent dedup state. Total infrastructure cost: zero.&lt;/p&gt;

&lt;h2&gt;
  
  
  The interesting part is the filtering
&lt;/h2&gt;

&lt;p&gt;Pulling posts is trivial. Not drowning in noise is the actual engineering. Three regex layers did it:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Urgency signals&lt;/strong&gt; — &lt;code&gt;urgent&lt;/code&gt;, &lt;code&gt;asap&lt;/code&gt;, &lt;code&gt;broken&lt;/code&gt;, &lt;code&gt;stopped working&lt;/code&gt;, &lt;code&gt;previous developer&lt;/code&gt;, &lt;code&gt;ghosted&lt;/code&gt;, &lt;code&gt;losing sales&lt;/code&gt;…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Domain relevance&lt;/strong&gt; — &lt;code&gt;zapier|n8n|make.com|workflow|integration|scraping|webhook|api&lt;/code&gt;…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. The noise killer (this one matters most):&lt;/strong&gt; community boards are full of &lt;em&gt;other freelancers advertising themselves&lt;/em&gt; and discussion threads that match every keyword. Kill patterns: posts starting with "I help / I build / Available for", question-form titles ("How do you…", "What's the best…"), co-founder fishing, "looking for feedback".&lt;/p&gt;

&lt;p&gt;Per-source policies differ: a general business subreddit needs urgency AND relevance; a hiring board just needs a genuine hire signal; an Amazon-seller subreddit triggers on special events (&lt;code&gt;hijacked&lt;/code&gt;, &lt;code&gt;suspended&lt;/code&gt;, &lt;code&gt;buy box&lt;/code&gt;) regardless of phrasing.&lt;/p&gt;

&lt;p&gt;First run before the noise filter: 57 hits, maybe a third usable. After: 19 hits, almost all real — 13 of them genuine "hiring n8n developer" posts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lessons that transfer to any monitoring pipeline
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;RSS is undead.&lt;/strong&gt; APIs get keys, quotas and pricing tiers; feeds quietly keep working. Check for a feed before you reach for an API or a headless browser.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;First run is a baseline.&lt;/strong&gt; Everything is "new" on run #1 — write state, alert nothing. Saved me from a 57-message Telegram flood.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dedup across systems.&lt;/strong&gt; I run a second monitor that watches an overlapping source; they share a seen-IDs file so nothing alerts twice.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alert quality is a product decision.&lt;/strong&gt; Every alert that's noise trains you to ignore the channel. I'd rather miss a borderline lead than mute the bot.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Does it work?
&lt;/h2&gt;

&lt;p&gt;The monitor's job is to compress "check 12 places constantly" into "glance at Telegram". It does. Whether each lead converts is a sales problem — but you can't answer a fire you never saw.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I build monitoring and alerting pipelines like this for businesses — price watches, inventory alerts, mention tracking, compliance feeds. If you need eyes on something that changes fast, &lt;a href="https://automation.podlevskikh.com" rel="noopener noreferrer"&gt;tell me what&lt;/a&gt; or email &lt;a href="mailto:jobs@podlevskikh.com"&gt;jobs@podlevskikh.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>rss</category>
      <category>automation</category>
      <category>freelancing</category>
    </item>
  </channel>
</rss>
