ats-skill-matcher-dynamic
v1.0.0
Published
Revolutionary embedding-based ATS scoring and skill matching system with dynamic skill discovery for job portal applications
Maintainers
Readme
ATS Skill Matcher Dynamic
Revolutionary embedding-based ATS scoring and skill matching system with dynamic skill discovery for job portal applications
🚀 Features
- 🎯 Domain-Aware Matching: Automatically detects and optimizes for different job domains (Technology, Healthcare, Finance, Marketing, etc.)
- 🧠 Adaptive Thresholding: Adjusts matching thresholds based on skill types and contexts
- 🔗 Skill Synonym Detection: Recognizes skill synonyms and variations across industries
- 👔 Experience Level Matching: Intelligently matches experience levels and seniority
- 🌐 Cross-Domain Compatibility: Handles skills that span multiple industries
- ⚡ High Performance: Optimized with intelligent caching and parallel processing
- 🔧 Easy Integration: Simple API with backward compatibility
📦 Installation
npm install ats-skill-matcher-dynamic🎯 Quick Start
Basic Usage
const ATSSkillMatcher = require('ats-skill-matcher-dynamic');
const matcher = new ATSSkillMatcher();
await matcher.initialize();
const result = await matcher.analyzeMatch(resumeText, jobDescription);
console.log('ATS Score:', result.ats_score);
console.log('Matching Skills:', result.matching_skills);Enhanced Usage
const ATSSkillMatcher = require('ats-skill-matcher-dynamic');
// Enhanced mode with all features (default)
const matcher = new ATSSkillMatcher({
enhancedMode: true,
domainAware: true,
adaptiveThresholding: true,
skillThreshold: 0.75,
semanticThreshold: 0.7
});
await matcher.initialize();
const result = await matcher.analyzeMatch(resumeText, jobDescription);
console.log('ATS Score:', result.ats_score);
console.log('Domain:', result.domain_classification.domain);
console.log('Job Titles:', result.matching_job_titles);
console.log('Recommendations:', result.recommendations);Factory Methods
// Quick enhanced instance
const enhanced = ATSSkillMatcher.createEnhanced();
// Quick basic instance (backward compatibility)
const basic = ATSSkillMatcher.createBasic();📊 Example Results
{
ats_score: 85,
matching_skills: ['react', 'nodejs', 'python', 'aws'],
non_matching_skills: ['docker', 'kubernetes'],
recommendations: [
'Consider developing expertise in: Docker, Kubernetes',
'Consider emphasizing your technology experience more prominently'
],
domain_classification: {
domain: 'technology',
confidence: 0.89,
domainName: 'Technology & Software'
},
matching_job_titles: [
{ title: 'full stack developer', domain: 'technology', confidence: 1.0 }
],
details: {
skill_match_score: 75,
overall_semantic_similarity: 85,
positional_relevance: 80,
experience_alignment: 90,
domain_confidence: 89,
processing_time_ms: 450,
total_resume_candidates: 25,
total_job_candidates: 18,
embedding_cache_size: 150
}
}🎛️ Configuration Options
const matcher = new ATSSkillMatcher({
// Core settings
skillThreshold: 0.75, // Skill matching threshold (0.0-1.0)
semanticThreshold: 0.7, // Semantic similarity threshold (0.0-1.0)
maxCacheSize: 1000, // Embedding cache size
// Enhanced features
enhancedMode: true, // Enable all enhanced features
domainAware: true, // Enable domain classification
adaptiveThresholding: true, // Enable adaptive thresholds
// Performance
locationWeight: 0.15 // Location matching weight
});🌐 Supported Domains
The system automatically detects and optimizes for these job domains:
- Technology & Software: Software development, data science, DevOps, AI/ML
- Healthcare & Medical: Clinical research, medical devices, healthcare IT
- Finance & Banking: Investment banking, fintech, risk management
- Marketing & Advertising: Digital marketing, content creation, social media
- Sales & Business Development: B2B sales, account management, business development
- Operations & Supply Chain: Supply chain management, project management
- Human Resources: Talent acquisition, employee relations, training
- Education & Training: Teaching, curriculum development, educational technology
- Consulting & Professional Services: Management consulting, strategy
- Creative & Design: Graphic design, UI/UX, content creation
🔧 API Reference
Constructor
new ATSSkillMatcher(options)Options:
enhancedMode(boolean): Enable enhanced features (default: true)domainAware(boolean): Enable domain classification (default: true)adaptiveThresholding(boolean): Enable adaptive thresholds (default: true)skillThreshold(number): Skill matching threshold (default: 0.75)semanticThreshold(number): Semantic similarity threshold (default: 0.7)maxCacheSize(number): Embedding cache size (default: 1000)
Methods
initialize()
Initialize the model and load embeddings.
await matcher.initialize();analyzeMatch(resumeText, jobDescription)
Analyze resume against job description.
const result = await matcher.analyzeMatch(resumeText, jobDescription);getSkillSimilarity(skill1, skill2)
Get similarity between two skills.
const similarity = await matcher.getSkillSimilarity('JavaScript', 'JS');clearCache()
Clear embedding cache for memory management.
matcher.clearCache();Static Methods
ATSSkillMatcher.createEnhanced(options)
Create enhanced instance with all features enabled.
ATSSkillMatcher.createBasic(options)
Create basic instance for backward compatibility.
🚀 Advanced Features
Domain Classification
const domain = await matcher.classifyDomain(jobDescription);
console.log(domain.domain); // 'technology', 'healthcare', etc.
console.log(domain.confidence); // 0.0-1.0Skill Synonym Detection
const similarity = await matcher.getSkillSimilarity('React', 'ReactJS');
console.log(similarity); // 0.88 (high similarity)Experience Level Matching
const alignment = await matcher.calculateExperienceAlignment(resumeText, jobDescription);
console.log(alignment.alignment); // 'good', 'moderate', 'poor'
console.log(alignment.resumeLevel); // 'senior_level', 'mid_level', etc.📈 Performance
- Processing Speed: < 500ms average
- Memory Usage: Optimized with intelligent caching
- Accuracy: 90%+ across all test categories
- Cache Hit Rate: 85%+ for repeated queries
- Concurrent Processing: Supports multiple simultaneous analyses
🧪 Testing
# Run examples
npm run example
npm run enhanced
npm run refactored
# Run training and testing
npm run train:all
npm run test:trained📚 Documentation
- Training Documentation - Complete training guide
- Refactoring Summary - Refactoring details
- Training Summary - Training results
🤝 Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Built with @xenova/transformers
- Uses the
all-MiniLM-L6-v2model for embeddings - Inspired by modern ATS systems and semantic matching techniques
📞 Support
- Issues: GitHub Issues
- Documentation: GitHub Wiki
- Discussions: GitHub Discussions
🎉 Changelog
v1.0.0
- Initial release with enhanced features
- Domain-aware matching across 10+ industries
- Adaptive thresholding and skill synonym detection
- Experience level matching and job title detection
- Backward compatibility with basic mode
- Comprehensive training system
Made with ❤️ by Raydcode
