Fit Evaluation Framework: Understanding the 5 Scoring Dimensions in AI Job Search
The Fit Evaluation Framework evaluates job opportunities using five distinct dimensions—Technical Skills Match, Experience Match, Behavioral/Culture Fit, Location & Logistics, and Career Alignment & Motivation—to generate weighted fit scores that power automated job ranking.
The MadsLorentzen/ai-job-search repository implements this framework to automate candidate-job matching through AI-assisted analysis. Defined in the Job Evaluation Framework document (.claude/skills/job-application-assistant/04-job-evaluation.md), the system scores postings after preliminary eligibility and language gates, feeding results to the /rank and /apply CLI commands.
The Five Scoring Dimensions
After passing the initial Eligibility and Language gates, every job posting undergoes evaluation across five specific dimensions. Four dimensions use a 0-100 scoring scale, while Location operates as a binary veto gate.
1. Technical Skills Match
This dimension measures alignment between required technical competencies and the candidate’s capabilities. According to the source code in 04-job-evaluation.md (lines 53-62), scores range from 80-100 when "Core requirements are primary skills" down to 0-39 for "Fundamental mismatch." The evaluation considers both required and preferred technical skills listed in the job description.
2. Experience Match
The framework evaluates whether the candidate’s work history—including functions, domains, and depth—matches role expectations. As implemented in lines 67-76 of the evaluation document, "Direct experience" yields 80-100 points, while "Unrelated experience" results in 0-39 points. This assessment analyzes previous roles, industry relevance, and seniority alignment.
3. Behavioral / Culture Fit
Cultural and behavioral compatibility scores from 80-100 for "Strong cultural match" to 0-39 for "Significant mismatch" (lines 81-90). This dimension assesses company values, working style preferences, and organizational culture against the candidate’s profile and stated preferences.
4. Location & Logistics
Unlike other dimensions, Location uses a binary Pass/Fail verdict with optional FLAG notes rather than a numeric score. Positioned at lines 93-98 in the framework definition, this gate checks commute range feasibility, remote-work compatibility, relocation requirements, and travel intensity expectations. A FAIL result immediately vetoes the job from consideration regardless of other scores.
5. Career Alignment & Motivation
This dimension determines whether the role advances long-term career objectives. Scoring 80-100 for "Strong alignment & growth path" versus 0-39 for "Dead-end or backward step" (lines 99-107), it evaluates trajectory fit, skill development opportunities, and whether the position energizes the candidate.
Weighted Score Calculation
The four numeric dimensions contribute to a composite fit score using specific weights defined in the framework:
- Technical Skills Match: 30%
- Experience Match: 25%
- Behavioral / Culture Fit: 15%
- Career Alignment & Motivation: 30%
The Location & Logistics dimension does not contribute to the weighted average but functions as a veto mechanism. A FAIL verdict excludes the job from rankings entirely, while a PASS with FLAG notes triggers warnings during the /apply command execution.
Implementation in Source Code
The Fit Evaluation Framework resides in .claude/skills/job-application-assistant/04-job-evaluation.md, which serves as the system prompt for scoring agents. The /rank command (defined in .claude/commands/rank.md) orchestrates batch evaluation by reading this framework and invoking scoring agents against the job database.
Results persist to seen_jobs.json with the following structure:
{
"technical_score": 85,
"experience_score": 70,
"behavior_score": 60,
"location_verdict": "PASS",
"career_score": 78,
"strengths": ["Strong Python match", "FastAPI experience"],
"gaps": ["Limited cloud experience"]
}
The /apply command consumes these scores to generate evaluation summaries:
def format_evaluation(job, scores):
return f"""
| Dimension | Score | Verdict |
|--------------------|-------|---------|
| Technical Skills | {scores['technical_score']}/100 | {'Strong match' if scores['technical_score'] > 79 else 'Review needed'} |
| Experience Match | {scores['experience_score']}/100 | {'Direct relevance' if scores['experience_score'] > 79 else 'Transferable only'} |
| Career Alignment | {scores['career_score']}/100 | {'Growth path' if scores['career_score'] > 79 else 'Lateral move'} |
| Location | {scores['location_verdict']} | {' proceed' if scores['location_verdict'] == 'PASS' else 'STOP'} |
"""
Summary
- The Fit Evaluation Framework systematically scores job opportunities across five distinct dimensions after preliminary eligibility screening.
- Four dimensions (Technical, Experience, Behavioral, Career) use 0-100 scales with weighted contributions (30%, 25%, 15%, 30%) to the final score.
- Location & Logistics operates as a binary Pass/Fail gate that can veto opportunities regardless of other scores.
- Framework definitions live in
.claude/skills/job-application-assistant/04-job-evaluation.md, while scoring execution occurs through the/rankcommand. - Results persist to
seen_jobs.jsonfor consumption by downstream commands like/applyand/interview.
Frequently Asked Questions
What is the Fit Evaluation Framework?
The Fit Evaluation Framework is the scoring methodology defined in the MadsLorentzen/ai-job-search repository that objectively evaluates job postings against candidate profiles. It replaces subjective gut-feeling assessments with structured dimensional analysis across technical skills, experience, culture fit, logistics, and career trajectory.
How is the overall fit score calculated?
The framework calculates a weighted composite from four numeric dimensions: Technical Skills Match contributes 30%, Experience Match adds 25%, Behavioral/Culture Fit contributes 15%, and Career Alignment & Motivation provides 30%. Each dimension scores 80-100 for strong matches, 40-79 for partial fits, and 0-39 for poor alignment.
Why is Location & Logistics scored differently from other dimensions?
Location & Logistics uses a binary Pass/Fail system rather than a 0-100 scale because logistics constraints are absolute deal-breakers in job searches. A candidate cannot accept a role requiring daily office presence 100 miles away regardless of perfect technical and cultural fit, making this dimension functionally equivalent to a veto gate rather than a weighted variable.
Which source files implement the Fit Evaluation Framework?
The framework logic resides in .claude/skills/job-application-assistant/04-job-evaluation.md, which defines the scoring rubrics and weights. The /rank command (.claude/commands/rank.md) executes the scoring process, while seen_jobs.json stores persistent results. The README.md provides workflow context, and CHANGELOG.md tracks framework updates.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →