Python, AWS, DockerVPN Gateway, ExpressRoute)skills_source: Shows if skills were user-provided or AI-extractedollama_status: Shows if Ollama is enabled/disabledUpload Resume → Analyze with predefined skills → Get Score
Upload Resume → Choose Skills → Auto-extract with AI → Intelligent Match → Get Score
Option 1: Provide Skills Explicitly
├─ Fast (10-15 sec)
├─ Precise matching
└─ Full control
Option 2: Let AI Extract
├─ Smart extraction (20-30 sec)
├─ Discovers relevant skills
└─ Adaptive to any role
Option 3: Hybrid
├─ Provide core skills
├─ AI finds related ones
└─ Best of both worlds
Hiring for: "Senior Python Developer"
Action: Enter specific skills
"Python, Django, FastAPI, PostgreSQL, Docker,
AWS EC2, AWS RDS, REST API, Git, Jenkins"
Result: Precise matching against known requirements
Hiring for: "Cloud Solutions Architect (Azure)"
Action: Leave skills empty, paste full JD
Result: Ollama finds:
- Azure infrastructure
- High availability
- Disaster recovery
- Architecture design
- Security compliance
- Identity management
- ... (20+ more auto-extracted)
Hiring for: "Tech Lead"
Action: Provide base skills + let AI enhance
"Python, Team Leadership, Communication, Mentoring"
Ollama adds:
- Project management
- Technical architecture
- CI/CD pipelines
- Software design patterns
# If no skills provided, use Ollama to extract them
if not required_keywords:
ollama = get_ollama_scorer()
if ollama.available:
extracted_skills = ollama.extract_skills_with_llm(job_desc)
# Top 25 skills from AI extraction
required_keywords = ', '.join(extracted_skills[:25])
# Add metadata to response
result['skills_source'] = 'user_provided' or 'ai_extracted'
result['ollama_status'] = 'enabled' or 'disabled'
# Validate skills with Ollama for confidence scoring
validate_skills_with_ollama(provided_skills, job_desc, resume)
# Extract skills intelligently from job description
enhance_skill_extraction(job_description)
<label for="required_keywords">Required Skills (Optional):</label>
<textarea id="required_keywords" name="required_keywords"
placeholder="Python, AWS, Docker, Kubernetes...
Leave empty to auto-extract from job description">
</textarea>
| Metric | Value | |——–|——-| | Time | 10-15 seconds | | Precision | Very High (100% control) | | Coverage | As provided | | Effort | Manual list creation |
| Metric | Value | |——–|——-| | Time | 20-30 seconds | | Precision | High (LLM-based) | | Coverage | Comprehensive | | Effort | Zero - automatic |
| Metric | Value | |——–|——-| | Time | 20-30 seconds | | Precision | Very High | | Coverage | Excellent | | Effort | Minimal |
INPUT:
Skills: "AWS EC2, AWS S3, Lambda, DynamoDB, CloudFormation"
JD: "...design scalable AWS solutions, implement disaster recovery..."
OUTPUT:
- Matched: 5 (all provided skills)
- Extracted: 8 more (Aurora, Route53, VPC, etc.)
- Total Skills Checked: 13
- Score: 65/100
INPUT:
Skills: (empty - let AI extract)
JD: "...Azure infrastructure, high availability,
backup/disaster recovery, identity management..."
OUTPUT:
- Extracted: 22 skills automatically
- Azure Virtual Machines
- Azure Networking
- VPN Gateway
- ExpressRoute
- Azure AD
- Backup/DR strategies
- ... and 16 more
- Matched: 8/22
- Score: 42/100
1. Go to /hiring-manager
2. Enter skills: "Python, Docker, AWS"
3. Paste job description
4. Upload resume
5. Check results show skills_source = "user_provided"
1. Go to /hiring-manager
2. Leave skills empty
3. Paste job description
4. Upload resume
5. Check results show skills_source = "ai_extracted"
6. Note: Takes 20-30 seconds (Ollama processing)
1. Go to /hiring-manager
2. Enter: "Azure, Python" (just core skills)
3. Paste full job description
4. Upload resume
5. System uses provided skills + extracts additional ones
In performance_config.py:
DEFAULT_MODE = PerformanceConfig.FAST
# Skills extraction: TF-IDF only (instant)
# No Ollama calls (fastest)
DEFAULT_MODE = PerformanceConfig.BALANCED
# Skills extraction: TF-IDF + user input
# Optional Ollama for deep analysis
# 20-30 seconds expected
DEFAULT_MODE = PerformanceConfig.QUALITY
# Skills extraction: Ollama LLM (intelligent)
# Full Ollama analysis (comprehensive)
# 40-60 seconds expected
No More Guesswork - AI extracts relevant skills Saves Time - Don’t manually list 50+ skills Flexible - Use AI or provide explicit skills Adaptive - Works with new technologies Transparent - Knows what criteria are used
Fairer Scoring - Relevant skills detected Clearer Feedback - See exactly what skills matter Growth Path - Understand what to learn
Better Candidates - More accurate matching Faster Hiring - Automated skill extraction Scalable - Works for any role Data-Driven - Metrics on skill importance
1. Start app: python app.py
2. Go to http://localhost:5000/hiring-manager
3. Enter skills: "Python, Docker, AWS"
4. Upload resume + job description
5. See how it scores
1. Same as above, but leave Skills field empty
2. App uses Ollama to extract skills (if running)
3. Takes 20-30 seconds
4. See AI-extracted results
1. Enter base skills: "Python, AWS"
2. Leave other skills to AI
3. See combined results
4. Best of both worlds!
All enhancements are backward compatible:
Start using it now:
python app.py
Visit: http://localhost:5000/hiring-manager