<?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: Alex Seif</title>
    <description>The latest articles on DEV Community by Alex Seif (@alexseif).</description>
    <link>https://dev.to/alexseif</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F175886%2Fb3d51d10-2421-451e-a857-6f3dd22444f7.jpg</url>
      <title>DEV Community: Alex Seif</title>
      <link>https://dev.to/alexseif</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alexseif"/>
    <language>en</language>
    <item>
      <title># Stop Paying AI to Read Garbage Job Posts (And Help Us Build the Antidote)</title>
      <dc:creator>Alex Seif</dc:creator>
      <pubDate>Tue, 23 Jun 2026 22:34:24 +0000</pubDate>
      <link>https://dev.to/alexseif/-stop-paying-ai-to-read-garbage-job-posts-and-help-us-build-the-antidote-3cp2</link>
      <guid>https://dev.to/alexseif/-stop-paying-ai-to-read-garbage-job-posts-and-help-us-build-the-antidote-3cp2</guid>
      <description>&lt;p&gt;Let’s be honest: hunting for a tech job right now feels like screaming into a void that occasionally auto-replies with "Unfortunately, we are moving forward with other candidates."&lt;/p&gt;

&lt;p&gt;Naturally, as engineers, our first instinct is to automate the screaming. We build scrapers. We hook them up to GPT-4. We send it 500 job descriptions a day and say, &lt;em&gt;"Hey AI, tell me if I'm qualified for this Senior PHP role."&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;And then the OpenAI bill arrives. Congratulations, you are now unemployed &lt;em&gt;and&lt;/em&gt; broke. &lt;/p&gt;

&lt;p&gt;Sending entire HTML job descriptions to an LLM to evaluate is the equivalent of buying a Ferrari just to drive to the end of your driveway to check the mail. It's expensive, overkill, and frankly, a little embarrassing. &lt;/p&gt;

&lt;p&gt;Enter &lt;strong&gt;Freeworld Job Finder&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  The "Fail-Fast" LangGraph Engine
&lt;/h3&gt;

&lt;p&gt;We are building a dual-engine, decoupled platform designed specifically to aggressively protect your API tokens while actually finding you jobs you qualify for. &lt;/p&gt;

&lt;p&gt;Instead of a brute-force approach, we engineered a LangGraph-inspired Finite State Machine (FSM) in PHP. It acts as an elite, ruthless bouncer for your tokens:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The Career Modeler&lt;/strong&gt;: Give us whatever messy PDF resume or random URL profile you have. We don't care. Our Skill Extractor uses a local LLM to cleanly distill it into a normalized &lt;code&gt;SkillSetDTO&lt;/code&gt;. No LinkedIn-style forced form fields. Just raw data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Assessor Graph&lt;/strong&gt;: You tell us what you want ("Principal Engineer, Remote"). Our standalone scraper library (&lt;code&gt;php-jobspy&lt;/code&gt;) grabs the initial list. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Gauntlet&lt;/strong&gt;: Jobs are immediately passed through a "Fail-Fast" pipeline. If a job has a dealbreaker keyword (e.g., "Clearance Required"), it dies at Node 1 (0 tokens). If the title is "Junior Dev", it dies at Node 2 (~100 tokens). &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Only the absolute highest-quality, most promising jobs survive to reach the "Deep Evaluator" Node, where we finally spend the tokens to deeply compare the job description against your extracted skill set. &lt;/p&gt;

&lt;p&gt;You find out if you are Qualified, Overqualified, or a Mismatch, and you didn't bankrupt yourself doing it.&lt;/p&gt;

&lt;h3&gt;
  
  
  We Need Contributors!
&lt;/h3&gt;

&lt;p&gt;We are currently building this out with a decoupled architecture (a pure PHP/Symfony Backend API and a beautiful, glassmorphic Next.js/Vite Web Portal). &lt;/p&gt;

&lt;p&gt;If you are tired of the job-hunting grind and want to help build a ruthless, efficient, open-source pipeline that automates the nonsense, we want you. We need React/Vue wizards for the frontend, and PHP engineers who appreciate strict DTOs and pure domain logic.&lt;/p&gt;

&lt;p&gt;Come help us automate the void. &lt;a href="https://github.com/alexseif/freeworld-job-finder" rel="noopener noreferrer"&gt;https://github.com/alexseif/freeworld-job-finder&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Guiding Principle: configuring your AI chat like you would your code</title>
      <dc:creator>Alex Seif</dc:creator>
      <pubDate>Mon, 15 Jun 2026 14:55:25 +0000</pubDate>
      <link>https://dev.to/alexseif/guiding-principle-configuring-your-ai-chat-like-you-would-your-code-4nkg</link>
      <guid>https://dev.to/alexseif/guiding-principle-configuring-your-ai-chat-like-you-would-your-code-4nkg</guid>
      <description>&lt;p&gt;In software architecture, deploying a codebase without guiding principles—like SOLID or DRY—guarantees a bloated, fragile mess. It will execute, but it will inevitably collapse under its own unoptimized weight.&lt;/p&gt;

&lt;p&gt;The exact same rule applies to Artificial Intelligence, yet engineers treat LLMs like magical black boxes instead of configurable systems.&lt;/p&gt;

&lt;p&gt;Out of the box, default AI models lack architectural direction because their core algorithm is optimized for the wrong metrics: engagement and addiction. They are built to appease you. They satisfy your psychological want for approval before they even attempt the task at hand. They validate your bad ideas, apologize for non-existent offenses, and serve sterile, sycophantic output stripped of real-world context. They are customer service bots designed to keep you typing, not thought partners designed to find the truth.&lt;/p&gt;

&lt;p&gt;Prompted by @pmarca’s custom AI instructions &lt;a href="https://x.com/pmarca/status/2051374498994364529" rel="noopener noreferrer"&gt;on Twitter/X&lt;/a&gt;, I refactored my AI's behavior. What began as a copy-paste exercise turned into a deep architectural review. To extract high-signal output from an LLM, you must program it with the precise values, culture, and logic algorithms that built your own operating system.&lt;/p&gt;

&lt;p&gt;Here is a 5-pillar framework of guiding principles to compile your AI from a sycophant into a relentless, high-precision tool.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. The Operating System (Belief &amp;amp; Truth)
&lt;/h4&gt;

&lt;p&gt;Default AI operates in a moral vacuum. You must define a root framework. My base layer is the Coptic Orthodox faith—the literal mechanism that liberates the mind from the modern matrix. I instruct the AI to filter philosophy through the Golden Rule and the theology of the Desert Fathers. Whatever your foundational truth is, hardcode it into the system prompt. It is the root node from which all logic inherits.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. The Deployment Environment (Culture &amp;amp; Locality)
&lt;/h4&gt;

&lt;p&gt;High-level architecture fails if it ignores its deployment environment. You must bind the AI to your physical and cultural locality. I configured my system to process problems through the resilience of Cairo and strict Egyptian tenets: &lt;em&gt;Osool&lt;/em&gt; (الأصول - foundational traditions), &lt;em&gt;Shatara&lt;/em&gt; (الشطارة - street-smart resourcefulness), &lt;em&gt;El-Geera&lt;/em&gt; (الجيرة - neighborliness), and &lt;em&gt;Regoola&lt;/em&gt; (الرجولة - dependable character). Force the AI to execute within the context of your streets, not generic Silicon Valley parameters.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. The Execution Engine (Personal Values &amp;amp; Discipline)
&lt;/h4&gt;

&lt;p&gt;How does your compiler evaluate data? As a software architect, my guiding principle is that strict logic and sound algorithms yield the only acceptable results. I coded this directly into the AI's instruction set, alongside my human mandates: act as an enabler for the right thing, and advocate for community, strength, and life. Tell the machine the exact rules engine your brain uses to evaluate solutions.&lt;/p&gt;

&lt;h4&gt;
  
  
  4. The Linter / Firewall (Safeguards)
&lt;/h4&gt;

&lt;p&gt;This is where you kill the appeasement algorithm. If you leave the default guardrails, the AI will flatter you into mediocrity. Give it strict error-handling rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Correct my falsehoods immediately.&lt;/li&gt;
&lt;li&gt;Lead with the strongest counterargument against my position.&lt;/li&gt;
&lt;li&gt;Never capitulate unless I provide superior empirical evidence.&lt;/li&gt;
&lt;li&gt;Do not anchor on my estimates; generate your own independently.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  5. The UI / Output Formatting (Tone)
&lt;/h4&gt;

&lt;p&gt;Design the interaction model. You need a sparring partner. I explicitly banned filler phrases and instructed the AI to use &lt;em&gt;Adab el-Hadeeth&lt;/em&gt; (أدب الحديث)—the Arabic concept of dignified, elevated discourse. The AI is commanded to be provocative, aggressive, and pointed with its logic, totally devoid of vulgarity. It must deliver negative conclusions directly and ruthlessly value accuracy over your feelings.&lt;/p&gt;

&lt;p&gt;Stop treating AI like a glorified search engine built to coddle your ego. Establish your guiding principles, write your configuration, and deploy a system that actually challenges you.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>culture</category>
      <category>thereassuredopinion</category>
      <category>architecture</category>
    </item>
    <item>
      <title>White Card</title>
      <dc:creator>Alex Seif</dc:creator>
      <pubDate>Tue, 04 Jun 2019 16:33:38 +0000</pubDate>
      <link>https://dev.to/alexseif/white-card-d0k</link>
      <guid>https://dev.to/alexseif/white-card-d0k</guid>
      <description>&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/alexseif/embed/VONZvb?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codepen</category>
    </item>
  </channel>
</rss>
