resumescreener_v2 / config.py
root
ss
26e8660
"""
Configuration file for AI Resume Screener
Modify these settings to customize the application behavior
"""
# Model Configuration
MODELS = {
"embedding_model": "BAAI/bge-large-en-v1.5",
"cross_encoder": "cross-encoder/ms-marco-MiniLM-L6-v2",
"llm_model": "Qwen/Qwen2-1.5B", # Using smaller model for compatibility
}
# Pipeline Configuration
PIPELINE_CONFIG = {
"faiss_recall_top_k": 50,
"cross_encoder_top_k": 20,
"max_text_length": 8000,
"embedding_dimension": 1024,
}
# Scoring Weights (must sum to 1.0)
SCORING_WEIGHTS = {
"cross_encoder": 0.5,
"bm25": 0.3,
"intent": 0.2,
}
# Intent Analysis Configuration
INTENT_CONFIG = {
"max_prompt_length": 1024,
"max_new_tokens": 10,
"temperature": 0.1,
"intent_scores": {
"yes": 0.9,
"maybe": 0.5,
"no": 0.1,
}
}
# File Processing Configuration
FILE_CONFIG = {
"supported_formats": ["pdf", "docx", "txt", "csv"],
"max_file_size_mb": 10,
"max_files_per_upload": 50,
}
# UI Configuration
UI_CONFIG = {
"page_title": "πŸ€– AI Resume Screener",
"page_icon": "πŸ€–",
"layout": "wide",
"sidebar_state": "expanded",
"max_display_resumes": 100,
}
# Performance Configuration
PERFORMANCE_CONFIG = {
"use_gpu": True,
"quantization": True,
"batch_size": 32,
"cache_models": True,
}
# Skills Database
TECHNICAL_SKILLS = [
# Programming Languages
'python', 'java', 'javascript', 'typescript', 'c++', 'c#', 'go', 'rust',
'scala', 'r', 'matlab', 'php', 'ruby', 'swift', 'kotlin', 'dart',
# Web Technologies
'html', 'css', 'react', 'angular', 'vue', 'node.js', 'express', 'django',
'flask', 'fastapi', 'spring', 'laravel', 'bootstrap', 'tailwind',
# Databases
'sql', 'mongodb', 'postgresql', 'mysql', 'redis', 'elasticsearch',
'cassandra', 'dynamodb', 'sqlite', 'oracle',
# Cloud & DevOps
'aws', 'azure', 'gcp', 'docker', 'kubernetes', 'terraform', 'ansible',
'jenkins', 'gitlab', 'github', 'ci/cd', 'devops', 'microservices',
# Data Science & ML
'machine learning', 'deep learning', 'tensorflow', 'pytorch', 'keras',
'scikit-learn', 'pandas', 'numpy', 'matplotlib', 'plotly', 'seaborn',
'jupyter', 'spark', 'hadoop', 'kafka', 'airflow',
# Analytics & BI
'tableau', 'powerbi', 'excel', 'google analytics', 'mixpanel', 'amplitude',
'looker', 'qlik', 'sas', 'spss', 'stata',
# Operating Systems & Tools
'linux', 'ubuntu', 'centos', 'windows', 'macos', 'bash', 'powershell',
'git', 'vim', 'vscode', 'intellij', 'eclipse',
# Methodologies
'agile', 'scrum', 'kanban', 'lean', 'waterfall', 'tdd', 'bdd',
# Networking & Security
'tcp/ip', 'http', 'https', 'ssl', 'oauth', 'jwt', 'api', 'rest', 'graphql',
'nginx', 'apache', 'load balancing', 'vpn', 'firewall',
]
# Job Categories for Enhanced Matching
JOB_CATEGORIES = {
"software_engineer": [
"programming", "coding", "development", "software", "engineer", "developer"
],
"data_scientist": [
"data", "analytics", "machine learning", "statistics", "modeling", "scientist"
],
"devops_engineer": [
"devops", "infrastructure", "deployment", "automation", "cloud", "operations"
],
"product_manager": [
"product", "manager", "strategy", "roadmap", "requirements", "stakeholder"
],
"designer": [
"design", "ui", "ux", "user experience", "interface", "visual", "creative"
],
"marketing": [
"marketing", "campaign", "brand", "social media", "content", "seo", "sem"
],
"sales": [
"sales", "business development", "account", "revenue", "client", "customer"
]
}
# Default Job Description Template
DEFAULT_JOB_DESCRIPTION = """
Software Engineer - Full Stack Development
We are looking for a talented Software Engineer to join our growing team.
Requirements:
- 3+ years of experience in software development
- Proficiency in Python, JavaScript, and SQL
- Experience with React and Node.js
- Knowledge of cloud platforms (AWS, Azure, or GCP)
- Familiarity with Docker and CI/CD pipelines
- Strong problem-solving and communication skills
Responsibilities:
- Develop and maintain web applications
- Collaborate with cross-functional teams
- Write clean, maintainable code
- Participate in code reviews
- Contribute to technical architecture decisions
Nice to have:
- Experience with machine learning
- Knowledge of microservices architecture
- DevOps experience
- Open source contributions
"""
# Error Messages
ERROR_MESSAGES = {
"models_not_loaded": "❌ AI models are still loading. Please wait...",
"no_job_description": "❌ Please enter a job description",
"no_resumes": "❌ Please load some resumes first",
"file_processing_error": "❌ Error processing file: {filename}",
"model_loading_error": "❌ Error loading model: {model_name}",
"pipeline_error": "❌ Error in pipeline stage: {stage}",
}
# Success Messages
SUCCESS_MESSAGES = {
"models_loaded": "βœ… All AI models loaded successfully!",
"files_processed": "βœ… Processed {count} resume files",
"pipeline_complete": "βœ… Resume screening pipeline completed!",
"results_exported": "βœ… Results exported successfully",
}
# Validation Rules
VALIDATION_RULES = {
"min_job_description_length": 50,
"max_job_description_length": 10000,
"min_resume_length": 20,
"max_resume_length": 20000,
"min_resumes_for_ranking": 1,
"max_resumes_for_ranking": 1000,
}