ManinderBajwa/Cold_Emails_with_LLM
0
1import json2import os3 4class ProfileManager:5 def __init__(self, sender_file='sender_profiles.json', recipient_type_file='recipient_type_profiles.json'):6 self.sender_file = sender_file7 self.recipient_type_file = recipient_type_file8 self.sender_profiles = self.load_profiles(sender_file)9 self.recipient_type_profiles = self.load_profiles(recipient_type_file)10 11 def load_profiles(self, filename):12 if os.path.exists(filename):13 with open(filename, 'r') as f:14 return json.load(f)15 return {}16 17 def save_profiles(self, profiles, filename):18 with open(filename, 'w') as f:19 json.dump(profiles, f)20 21 def create_sender_profile(self, email_type, *args):22 if email_type == "job_application":23 name, role, field1, field2, field3 = args24 profile = {25 "email_type": email_type,26 "name": name,27 "role": role,28 "key_qualifications": field1,29 "relevant_experience": field2,30 "education": field331 }32 else:33 name, company, role, field1, field2, field3 = args34 profile = {35 "email_type": email_type,36 "name": name,37 "company": company,38 "role": role39 }40 if email_type == "investor_pitch":41 profile.update({42 "pitch_summary": field1,43 "company_description": field2,44 "funding_needs": field345 })46 elif email_type == "sales_pitch":47 profile.update({48 "product_service_overview": field1,49 "unique_selling_proposition": field2,50 "key_benefits": field351 })52 else: # service_offer53 profile.update({54 "service_description": field1,55 "value_proposition": field2,56 "client_benefits": field357 })58 59 self.sender_profiles[name] = profile60 self.save_profiles(self.sender_profiles, self.sender_file)61 62 def create_recipient_type_profile(self, name, description, typical_interests, common_pain_points):63 profile = {64 "name": name,65 "description": description,66 "typical_interests": typical_interests,67 "common_pain_points": common_pain_points68 }69 self.recipient_type_profiles[name] = profile70 self.save_profiles(self.recipient_type_profiles, self.recipient_type_file)71 72 def get_sender_profile(self, name):73 return self.sender_profiles.get(name)74 75 def get_recipient_type_profile(self, name):76 return self.recipient_type_profiles.get(name)77 78 def get_all_sender_profiles(self):79 return list(self.sender_profiles.keys())80 81 def get_all_recipient_type_profiles(self):82 return list(self.recipient_type_profiles.keys())