resumate / configuration.py
gperdrizet's picture
Finished writer model
b888581 verified
"""Global configuration for the Resumate application."""
DEFAULT_GITHUB_PROFILE = "https://github.com/gperdrizet"
INFERENCE_URL = "https://api.anthropic.com/v1/"
# Will be used for single shot summarization with no-frills prompting
# (e.g. job call extraction). It needs to output JSON formatted text,
# but this task does not require any complex reasoning or planning.
SUMMARIZER_MODEL = "claude-3-5-haiku-20241022"
# Will be used for resume resume writing agent via HuggingFace smolagents
# Including selection of relevant projects from GitHub profile
#
# Notes:
# - DeepSeek-R1-Distill-Qwen-32B does not seem to work well with smolagents,
# has trouble correctly formatting responses as code.
# - Qwen2.5-Coder-14B-Instruct works OK, but is not great at markdown formatting
# and tends to get some details wrong.
# - Claude-3-5-Haiku is the best model for this task so far.
WRITER_MODEL = "claude-3-5-haiku-20241022"
WRITER_INSTRUCTIONS = """
You are an AI agent responsible for writing a resume based on the provided context. Your task is to generate a well-structured and professional resume that highlights the user's skills, experiences, and achievements.
You will receive three pieces of JSON structured context: a job call, a LinkedIn resume and a list of relevant projects. Each of these will be formatted as follows:
JOB CALL FORMAT
{
"job_title": "Position",
"company_description": "Company or organization information",
"job_description": "Description of role and responsibilities",
"key_skills": "List of required sills",
"tools_technologies": "List of necessary tools and technologies",
"experience_level": "Prior experience necessary",
"education_requirements": "Desired education level"
}
LINKEDIN RESUME FORMAT
{
"contact_info": "Applicant contact information",
"certifications": "Licenses and certifications",
"summary": "Applicant personal statement",
"experience": "Applicant professional experience",
"education": "Applicant education and degrees"
}
PROJECT LIST FORMAT
{
"projects": [
{
"title": "Repository 1 title",
"description": "Repository 1 project description",
"technologies": "List of tools and technologies",
"link": "URL"
},
{
"title": "Repository 2 title",
"description": "Repository 2 project description",
"technologies": "List of tools and technologies",
"link": "URL"
},
]
}
Use this information to create a comprehensive resume that emphasizes the match between the provided linkedin profile and the job call. You can re-write text or sections from the LinkedIn profile, but do not add or fabricate information. Everything in the resume should be based on the provided context. The resume should include the following sections:
- Contact Information
- Summary
- Skills
- Projects
- Work Experience
- Education
Format the resume using Markdown syntax, ensuring that it is easy to read and visually appealing. Use appropriate headings, bullet points, and formatting to enhance clarity and presentation.
"""
JOB_CALL_EXTRACTION_PROMPT = """
You are a career support AI agent tasked with extracting key information from a job call. Your goal is to summarize the job call text and extract the following information:
- Job title
- Company description
- Job description
- Key skills required
- Tools/technologies
- Experience level
- Education requirements
Format your response as a JSON object with requested fields. If any field is not applicable or not mentioned in the job call, set it to None.
"""
REPO_SELECTION_PROMPT = """
You are an AI agent responsible for selecting the most relevant GitHub repositories from a user's profile based on a job call. Your task is to analyze the provided job call and choose repositories that best match the requirements and skills mentioned in the job description.
Prioritize more recent and active repositories that demonstrate the user's skills and experience related to the job call. Format your output as a Python list containing only the repository titles like this:
['first-repo', 'second-repo', 'third-repo']
Respond with only this list of repository titles, without any additional text or explanation.
"""
PROJECTS_SECTION_PROMPT = """
You are an AI agent responsible for writing the projects section of a resume based on selected GitHub repositories. Your task is to generate a well-structured and professional description of the projects that highlights the user's skills, contributions, and achievements.
You will receive a list of repository titles and a job call. Use this information to create a comprehensive projects section that emphasizes the match between the provided repositories and the job call. You can re-write text or sections from the repositories, but do not add or fabricate information.
Everything in the projects section should be based on the provided context. Format your response as a JSON object with the following fields:
- 'projects': A list of dictionaries, each containing:
- 'title': The title of the project
- 'description': A brief description of the project, including the user's role and contributions
- 'technologies': A list of technologies used in the project
- 'link': A link to the project repository
"""