|
|
|
|
|
class ContentPrompts: |
|
"""Collection of prompts for content generation agents""" |
|
|
|
def __init__(self): |
|
self.headline_prompts = HeadlinePrompts() |
|
self.about_prompts = AboutPrompts() |
|
self.experience_prompts = ExperiencePrompts() |
|
self.general_prompts = GeneralPrompts() |
|
|
|
class HeadlinePrompts: |
|
"""Prompts for headline optimization""" |
|
|
|
HEADLINE_ANALYSIS = """ |
|
Analyze this LinkedIn headline and provide improvement suggestions: |
|
|
|
Current headline: "{headline}" |
|
Target role: "{target_role}" |
|
Key skills: {skills} |
|
|
|
Consider: |
|
1. Keyword optimization for the target role |
|
2. Value proposition clarity |
|
3. Professional branding |
|
4. Character limit (120 chars max) |
|
5. Industry-specific terms |
|
|
|
Provide 3-5 alternative headline suggestions. |
|
""" |
|
|
|
HEADLINE_TEMPLATES = [ |
|
"{title} | {specialization} | {key_skills}", |
|
"{seniority} {title} specializing in {domain} | {achievement}", |
|
"{title} | Helping {target_audience} with {solution} | {technologies}", |
|
"{role} with {years}+ years in {industry} | {unique_value_prop}" |
|
] |
|
|
|
class AboutPrompts: |
|
"""Prompts for about section optimization""" |
|
|
|
ABOUT_STRUCTURE = """ |
|
Create an engaging LinkedIn About section with this structure: |
|
|
|
Profile info: |
|
- Name: {name} |
|
- Current role: {current_role} |
|
- Years of experience: {experience_years} |
|
- Key skills: {key_skills} |
|
- Notable achievements: {achievements} |
|
- Target audience: {target_audience} |
|
|
|
Structure: |
|
1. Hook (compelling opening line) |
|
2. Professional summary (2-3 sentences) |
|
3. Key expertise and skills |
|
4. Notable achievements with metrics |
|
5. Call to action |
|
|
|
Keep it conversational, professional, and under 2000 characters. |
|
""" |
|
|
|
ABOUT_HOOKS = [ |
|
"π Passionate about transforming {industry} through {technology}", |
|
"π‘ {Years} years of turning complex {domain} challenges into simple solutions", |
|
"π― Helping {target_audience} achieve {outcome} through {approach}", |
|
"β‘ {Achievement} specialist with a track record of {impact}" |
|
] |
|
|
|
class ExperiencePrompts: |
|
"""Prompts for experience section optimization""" |
|
|
|
EXPERIENCE_ENHANCEMENT = """ |
|
Enhance this work experience entry: |
|
|
|
Current description: "{description}" |
|
Role: {title} |
|
Company: {company} |
|
Duration: {duration} |
|
|
|
Improve by: |
|
1. Starting with strong action verbs |
|
2. Adding quantified achievements |
|
3. Highlighting relevant skills used |
|
4. Showing business impact |
|
5. Using bullet points for readability |
|
|
|
Target the experience for: {target_role} |
|
""" |
|
ACTION_VERBS = { |
|
"Leadership": ["led", "managed", "directed", "coordinated", "supervised"], |
|
"Achievement": ["achieved", "delivered", "exceeded", "accomplished", "attained"], |
|
"Development": ["developed", "created", "built", "designed", "implemented"], |
|
"Improvement": ["optimized", "enhanced", "streamlined", "upgraded", "modernized"], |
|
"Problem-solving": ["resolved", "troubleshot", "analyzed", "diagnosed", "solved"] |
|
} |
|
|
|
class GeneralPrompts: |
|
"""General prompts for profile enhancement""" |
|
|
|
SKILLS_OPTIMIZATION = """ |
|
Optimize this skills list for the target role: |
|
|
|
Current skills: {current_skills} |
|
Target role: {target_role} |
|
Job description keywords: {job_keywords} |
|
|
|
Provide: |
|
1. Priority ranking of current skills |
|
2. Missing skills to add |
|
3. Skills to remove or deprioritize |
|
4. Skill categories organization |
|
""" |
|
|
|
KEYWORD_OPTIMIZATION = """ |
|
Analyze keyword optimization for this profile: |
|
|
|
Profile content: {profile_content} |
|
Target job description: {job_description} |
|
|
|
Identify: |
|
1. Current keyword density |
|
2. Missing important keywords |
|
3. Over-optimized keywords |
|
4. Natural integration suggestions |
|
5. Industry-specific terminology gaps |
|
""" |
|
|
|
PROFILE_AUDIT = """ |
|
Conduct a comprehensive LinkedIn profile audit: |
|
|
|
Profile data: {profile_data} |
|
Target role: {target_role} |
|
Industry: {industry} |
|
|
|
Audit areas: |
|
1. Profile completeness (%) |
|
2. Keyword optimization |
|
3. Content quality and engagement potential |
|
4. Professional branding consistency |
|
5. Call-to-action effectiveness |
|
6. Visual elements (photo, banner) recommendations |
|
|
|
Provide actionable improvement suggestions with priority levels. |
|
""" |
|
|
|
class AnalysisPrompts: |
|
"""Prompts for profile analysis""" |
|
|
|
COMPETITIVE_ANALYSIS = """ |
|
Compare this profile against industry standards: |
|
|
|
Profile: {profile_data} |
|
Industry: {industry} |
|
Seniority level: {seniority} |
|
|
|
Analyze: |
|
1. Profile completeness vs industry average |
|
2. Keyword usage vs competitors |
|
3. Content quality benchmarks |
|
4. Engagement potential indicators |
|
5. Areas of competitive advantage |
|
6. Improvement opportunities |
|
""" |
|
|
|
CONTENT_QUALITY = """ |
|
Assess content quality across this LinkedIn profile: |
|
|
|
Profile sections: {profile_sections} |
|
|
|
Evaluate: |
|
1. Clarity and readability |
|
2. Professional tone consistency |
|
3. Value proposition strength |
|
4. Quantified achievements presence |
|
5. Industry relevance |
|
6. Call-to-action effectiveness |
|
|
|
Rate each section 1-10 and provide specific improvement suggestions. |
|
""" |
|
|
|
class JobMatchingPrompts: |
|
"""Prompts for job matching analysis""" |
|
|
|
JOB_MATCH_ANALYSIS = """ |
|
Analyze how well this profile matches the job requirements: |
|
|
|
Profile: {profile_data} |
|
Job description: {job_description} |
|
|
|
Match analysis: |
|
1. Skills alignment (%) |
|
2. Experience relevance |
|
3. Keyword overlap |
|
4. Education/certification fit |
|
5. Overall match score |
|
|
|
Provide specific recommendations to improve match score. |
|
""" |
|
|
|
TAILORING_SUGGESTIONS = """ |
|
Suggest profile modifications to better match this opportunity: |
|
|
|
Current profile: {profile_data} |
|
Target job: {job_description} |
|
Match score: {current_match_score} |
|
|
|
Prioritized suggestions: |
|
1. High-impact changes (immediate wins) |
|
2. Medium-impact improvements |
|
3. Long-term development areas |
|
4. Skills to highlight/add |
|
5. Content restructuring recommendations |
|
""" |
|
|
|
|
|
def format_prompt(template: str, **kwargs) -> str: |
|
"""Format prompt template with provided variables""" |
|
try: |
|
return template.format(**kwargs) |
|
except KeyError as e: |
|
return f"Error formatting prompt: Missing variable {e}" |
|
|
|
def get_prompt_by_category(category: str, prompt_name: str) -> str: |
|
"""Get a specific prompt by category and name""" |
|
prompt_classes = { |
|
'headline': HeadlinePrompts(), |
|
'about': AboutPrompts(), |
|
'experience': ExperiencePrompts(), |
|
'general': GeneralPrompts(), |
|
'analysis': AnalysisPrompts(), |
|
'job_matching': JobMatchingPrompts() |
|
} |
|
|
|
prompt_class = prompt_classes.get(category.lower()) |
|
if not prompt_class: |
|
return f"Category '{category}' not found" |
|
|
|
prompt = getattr(prompt_class, prompt_name.upper(), None) |
|
if not prompt: |
|
return f"Prompt '{prompt_name}' not found in category '{category}'" |
|
|
|
return prompt |
|
|