Skills Analyzer
SkillsAnalyzer
Analyzer for matching skills between job requirements and resume.
Matches required and preferred skills from job descriptions against resume skills using multiple strategies: 1. Exact matching (normalized, case-insensitive) 2. Fuzzy string matching (ratio >= 85%) 3. Semantic similarity (if semantic_matcher provided, threshold >= 0.7)
Attributes:
| Name | Type | Description |
|---|---|---|
semantic_matcher |
Optional semantic matcher for ML-powered similarity. If provided, enables semantic skills matching. |
Example
# Basic analyzer
analyzer = SkillsAnalyzer()
# With semantic matching
from at_scorer.ml import SemanticMatcher, EmbeddingModel
model = EmbeddingModel()
matcher = SemanticMatcher(model)
analyzer = SkillsAnalyzer(semantic_matcher=matcher)
score, matched, missing, preferred = analyzer.analyze(
resume_skills, required_skills, preferred_skills
)
Initialize the skills analyzer.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
semantic_matcher
|
SemanticMatcher | None
|
Optional semantic matcher for ML-powered similarity. |
None
|
Source code in at_scorer/analyzers/skills.py
Functions
analyze
Analyze skills matching between resume and job requirements.
Calculates a score based on required skills (80% weight) and preferred skills (20% weight). Required skills are mandatory, while preferred skills provide bonus points.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
resume_skills
|
Iterable[str]
|
Skills listed in the resume. |
required |
required
|
Iterable[str]
|
Required skills from the job description. |
required |
preferred
|
Iterable[str] | None
|
Preferred (nice-to-have) skills from the job description. |
None
|
Returns:
| Type | Description |
|---|---|
tuple[float, list[str], list[str], list[str]]
|
Tuple containing: - score: Float between 0.0 and 1.0 (weighted: 80% required, 20% preferred) - matched_skills: List of all matched skills (required + preferred) - missing_required: List of required skills not found - matched_preferred: List of preferred skills that were matched |