পাইথন প্রজেক্টস ও লাইব্রেরি

Agent 3: Job Finder Agent

১. এই এজেন্ট কী কাজ করবে?

চাকরি খোঁজা অনেক সময়ের ব্যাপার। এই এজেন্টকে আপনি আপনার স্বপ্নের জব টাইটেল (যেমন: "Python Developer") দিয়ে দেবেন। সে প্রতিদিন বিভিন্ন জব সাইট স্ক্র্যাপ করবে, আপনার স্কিলের সাথে মিলে যাওয়া জবগুলো খুঁজে বের করবে এবং সেগুলোর লিংক একটি Google Sheet বা CSV ফাইলে সুন্দর করে সাজিয়ে রাখবে।

২. কী কী টুলস এবং লাইব্রেরি লাগবে?

  • requests: সাইটে রিকোয়েস্ট পাঠানোর জন্য।
  • beautifulsoup4: জবের টাইটেল এবং লিংক বের করার জন্য।
  • pandas: ডেটা CSV বা এক্সেলে সেভ করার জন্য।

৩. এ টু জেড কোড (A to Z Code)

নিচের কোডটি agent_job_finder.py নামে সেভ করুন। (বিডিজবস বা লিংকডইনে সরাসরি স্ক্র্যাপিং ব্লক থাকতে পারে, তাই এখানে আমরা ডেমো লজিক দিয়েছি। এটি রিয়েল সাইটেও একটু এডিট করে ব্যবহার করা যাবে)।

import requests
from bs4 import BeautifulSoup
import pandas as pd
from datetime import date

class JobFinderAgent:
    def __init__(self, job_title):
        self.job_title = job_title.lower()
        self.jobs_found = []

    def search_jobs(self, search_url):
        print(f"[Agent] '{self.job_title}' খোঁজা হচ্ছে...")
        response = requests.get(search_url)
        soup = BeautifulSoup(response.text, "html.parser")
        
        # ধরি, জবের লিস্ট <div class="job-card"> এর ভেতরে থাকে
        job_cards = soup.find_all("div", class_="job-card")
        
        for card in job_cards:
            title = card.find("h2", class_="job-title").get_text(strip=True)
            company = card.find("span", class_="company-name").get_text(strip=True)
            link = card.find("a")["href"]
            
            # শুধুমাত্র আমাদের কাঙ্ক্ষিত জব হলে লিস্টে যোগ করবো
            if self.job_title in title.lower():
                self.jobs_found.append({
                    "Date": date.today(),
                    "Title": title,
                    "Company": company,
                    "Link": link
                })
                
        print(f"[Agent] মোট {len(self.jobs_found)} টি জব পাওয়া গেছে!")

    def save_results(self):
        if self.jobs_found:
            df = pd.DataFrame(self.jobs_found)
            # mode='a' মানে আগের ডেটার সাথে নতুন ডেটা যোগ হবে (Append)
            df.to_csv("my_daily_jobs.csv", mode='a', index=False, header=False)
            print("[Agent] জব লিস্ট 'my_daily_jobs.csv' ফাইলে সেভ হয়েছে।")
        else:
            print("[Agent] আজকে কোনো নতুন জব পাওয়া যায়নি।")

if __name__ == "__main__":
    target_job = "Python"
    # এটি একটি ডেমো URL
    url = "https://example-job-site.com/search?q=python"
    
    agent = JobFinderAgent(target_job)
    agent.search_jobs(url)
    agent.save_results()

৪. কীভাবে এটি আরও অ্যাডভান্সড করবেন?

  • Google Sheets API ব্যবহার করে ডেটাগুলো সরাসরি আপনার গুগল শিটে সেভ করাতে পারেন।
  • Playwright ব্যবহার করে LinkedIn-এ অটো লগইন করে রিয়েল জব অ্যালার্ট স্ক্র্যাপ করতে পারেন।