প্রকল্প সম্পর্কে

ms-job-watcher হল একটি অটোমেটেড জব অ্যালার্ট পাইপলাইন যা GitHub Actions-এ অনাত্মা অবস্থায় চলে। এটি 6টি প্রধান কোম্পানির ক্যারিয়ার API (Microsoft, NVIDIA, Amazon, Goldman Sachs, IBM, Oracle) এবং প্রায় 1,200 কাস্টমাইজড ATS জব বোর্ড পোল করে, যেগুলো Greenhouse, Lever, SmartRecruiters, Workday এবং Ashby প্ল্যাটফর্মে অবস্থিত। জবগুলো US-ভিত্তিক এন্ট্রি এবং মিড-লেভেল সফটওয়্যার ইঞ্জিনিয়ারিং ভূমিকাগুলোর জন্য ফিল্টার করা হয়, যেখানে রুল-ভিত্তিক ক্লাসিফিকেশন দ্বারা ইন্টার্নশিপ, QA, সেলস, মার্কেটিং, ক্লিয়ারেন্স, সিটিজেনশিপ-আবশ্যক এবং স্পনসর করা না হওয়া পদগুলো হার্ড-এক্সক্লুড করা হয়, আর ডেভঅপস/অপস ভূমিকাগুলো মার্জিত সফটওয়্যার ইঞ্জিনিয়ারিং সিগন্যাল ছাড়া সফট-এক্সক্লুড করা হয়। ফলাফলগুলো সংরক্ষিত JSON স্টেটের সাথে ডিপ্লিকেট করা হয়, এবং নতুন ম্যাচগুলো Gmail SMTP দিয়ে ডিজেস্ট অ্যালার্ট হিসাবে ইমেইল করা হয়। পাইপলাইন দুটি স্বাধীন মোডে চলে: একটি মেইন পাইপলাইন যা কোম্পানি API প্রতি প্রায় 10 মিনিটে চেক করে এবং একটি বোর্ড পাইপলাইন যা ATS বোর্ডগুলো প্রতি প্রায় 30 মিনিটে কার্সর-ভিত্তিক ব্যাচে 200 টি বোর্ডের মধ্যে সুপার করে পুরো স্ক্যান সম্পন্ন করে GitHub Actions টাইমআউটের মধ্যে। বোর্ডগুলো কনকারেন্টলি ThreadPoolExecutor ব্যবহার করে ফেচ করা হয়, প্ল্যাটফর্ম-ভিত্তিক সেমাফোর দিয়ে। 404/410 রিটার্ন করা মৃত বোর্ডগুলো স্বয়ংক্রিয়ভাবে এড়িয়ে যাওয়া হয়। দেখা জবগুলো এবং রান ইতিহাস ব্রাউজ করার জন্য একটি Flask ড্যাশবোর্ড প্রদান করা হয়। প্রযুক্তিগত স্ট্যাক: Python 3.11, requests, BeautifulSoup4, GitHub Actions, Gmail SMTP, Flask। স্টেট পার্থক্যযুক্ত JSON ফাইল হিসাবে রিপো ফিরিয়ে সংরক্ষণ করা হয় যাতে এফেমারাল রানারগুলো থেকে বাঁচে। প্রোডাকশন সময়সূচী ক্রন-জব.ORG ব্যবহার করে ওয়ার্কফ্লো-ডিসপ্যাচ API কল করে নির্ভুল ছোট সময়সূচী বজায় রাখে।