File size: 5,551 Bytes
26e8660
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
"""
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,
}