اگر روزانه ساعتها وقت خود را در سایتهای Upwork یا Freelancer میگذرانید، یک دانشجوی ۱۷ ساله از لوکزامبورگ نقشهای برای حذف کامل این فرسایش طراحی کرده است. او سیستمی ساخته که جستوجوی دستی را با یک خط لوله ۲۴ ساعته جایگزین میکند که روی یک رزبری پای ۳ (Raspberry Pi 3) اجرا میشود و هزینهٔ ماهانه آن تنها ۵ دلار است.
فریلنسرها معمولاً در «رقابت برای کف قیمت» گیر میکنند؛ جایی که سرعت ارسال درخواست، تعیینکنندهٔ پیروزی است. این توسعهدهنده با تغییر رویکرد از جستوجوی دستی به یک سامانهٔ ماشه (Trigger)، یک کار دشوار ۲ تا ۳ ساعتهٔ روزانه را به یک فید اعلانهای ساده تبدیل کرد. همانطور که در تحلیلهای قبلی ما دربارهی بهرهوری با ابزارهای بدون کد (No-code) اشاره کردیم، این رویکرد، شکار شغل را نه یک فعالیت خلاقانه، بلکه یک مسئلهٔ مهندسی داده میبیند.
به نقل از مستندات این پروژه، استک فنی این سیستم بر پایه n8n — ابزاری برای مدیریت گردش کار که شبیه به یک مدیر پروژه است و تکههای مختلف نرمافزار را به هم وصل میکند و از طریق Docker میزبانی میشود — و Groq API است. برای پردازش سریع و امتیازدهی آنی، از مدل Llama 3.1-8b-instant استفاده شده است. برای مدیریت دادهها و اتصالها، از Supabase به عنوان یک پایگاه داده PostgreSQL، از SerpAPI برای جستوجوهای مبتنی بر گوگل در تختههای شغلی و برای استخراج دادههای Upwork از Apify بهره برده شده است. همچنین یک Cloudflare Tunnel برای تامین HTTPS برای وبهوکها به کار رفته است.
بر اساس بررسی جزئیات فنی، این معماری شامل هفت گردش کار مجزا است:
- کشف شغل: هر ۳۰ دقیقه اجرا شده و بیش از ۱۰ منبع را میسنجد. این سیستم از طریق یک محدودیت یکتا (Unique Constraint) روی URL در Supabase، موارد تکراری را حذف میکند.
- تولید پیشنهاد: شغلها را بر اساس پروفایل کاربر از ۰ تا ۱۰۰ امتیاز میدهد و متنهای پیشنهادی را به سه زبان انگلیسی، فرانسوی و آلمانی میسازد.
- یادآور پیگیری: به طور خودکار هر ۳ روز یکبار وضعیت پیشنهادهای بیپاسخ را در Supabase چک میکند.
- مدیریت مشتری (CRM): اجازه مدیریت کامل مشتریان را از طریق ربات تلگرام و دستوراتی مثل
/jobsبرای مشاهده شغلها،/statsبرای آمار و/clientsبرای لیست مشتریان میدهد. - هوش بازار: گزارش روزانهای تولید میکند که در آن تعداد شغلهای یافت شده، میانگین امتیازات و برترین پلتفرمها ذکر شده است.
- تحلیل روند: گزارش هفتگی از مهارتهای خاصی که در بخش اتوماسیون ترند هستند، ارائه میدهد.
- جذب لید: به طور ویژه شرکتهایی را شناسایی میکند که از Zapier یا Make استفاده میکنند و ممکن است بخواهند به n8n مهاجرت کنند.
این سیستم برای بهینهسازی نرخ تبدیل، از مکانیزم تست A/B استفاده میکند. سیستم دو نسخه متمایز از هر پیشنهاد را برای آزمایش نرخ تبدیل تولید میکند:
- نسخه A: رسمی و ساختاریافته، که زیر ۱۰۰ کلمه نگه داشته شده است.
- نسخه B: متمرکز بر قلاب (Hook) و مشکل مشتری، که زیر ۷۰ کلمه است.
تلگرام هر دو نسخه را با دکمههای داخلی A/B ارسال میکند. وقتی کاربر روی دکمهای کلیک میکند که نشان دهد کدام نسخه ارسال شده است، نتیجه در Supabase ذخیره میشود تا تعیین شود کدام سبک برای انواع خاصی از شغلها بهتر عمل میکند.
در مسیر پیادهسازی، توسعهدهنده با چالشهای فنی دقیقی روبرو شد که درسهای مهمی برای دیگران دارد:
- خطاهای JSON: وجود کاراکترهای سیریلیک در فیلدهای بدنه JSON همراه با خطوط جدید، باعث خطای «Bad control character» در n8n میشد؛ او توصیه میکند از
\nیا خطوط تکسطری استفاده شود. - منطق گرهها (Node Logic): ورودیهای متعدد به یک گره Code نیازمند یک گره Merge (با تنظیم Combine by Position) در ابتدا هستند، در غیر این صورت سیستم خطای «اجرا نشده است» (hasn't been executed) میدهد.
- اتصالات: URLهای تونل کلودفلر در هر بار ریاستارت تغییر میکنند و وبهوکهای تلگرام را میشکنند. این مشکل با یک سرویس systemd حل شد که
cloudflaredرا ریاستارت کرده وWEBHOOK_URLرا در docker-compose بهروز میکند. - بهینه سازی پایگاه داده: حذف تکرارها توسط یک محدودیت UNIQUE روی
jobs.urlدر Supabase مدیریت میشود و گره درج (Insert) روی حالت «Continue on Fail» قرار گرفته است. - رفتار مدل زبانی: Groq اغلب خروجی JSON را علیرغم دستورات، در بلوکهای markdown میپیچید؛ راه حل این است که علامتهای backtick پیش از پارس کردن حذف شوند.
این پروژه پارادایم فریلنسینگ را از «جستوجو» به «فیلتر کردن» تغییر میدهد. با اجرای تست A/B روی لحن پیامها، کاربر دیگر حدس نمیزند مشتری چه میخواهد، بلکه در حال ساخت یک مجموعه داده از نرخ تبدیل است. این ثابت میکند که سختافزارهای ارزانقیمت و مدلهای وزنباز (Open Weights) — یعنی مدلهایی که دستور پختشان علناً منتشر شده و نیاز به اشتراکهای گرانقیمت SaaS ندارند — میتوانند بهرهوری فردی را دگرگون کنند.
شما میتوانید فایلهای پاکسازی شدهی این گردش کار را در گیتهاب پیدا کنید تا این سیستم را بازسازی کنید. گام منطقی بعدی برای این سیستم، ادغام یک API مستقیم برای ارسال پیشنهادها است، اگرچه این کار به دلیل شرایط خدمات (ToS) پلتفرمها، ریسک بالایی دارد.
گام بعدی شما
- اگر فریلنسر هستید، سعی کنید ابتدا یک سیستم ساده برای فیلتر کردن کلمات کلیدی در Upwork با n8n بسازید.
- برای کاهش هزینه استنتاج، مدلهای کوچکتر مثل Llama 3.1-8b را روی سرویسهای سریع مثل Groq امتحان کنید.
- متون پیشنهادی خود را به دو دسته «رسمی» و «مشکلمحور» تقسیم کرده و نرخ پاسخدهی آنها را اندازه بگیرید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است؛ بررسی کنید که چگونه مدلهای کوچک در حال بلعیدن سهم بازار مدلهای غولپیکر هستند.




گفتگو