LiyaEngine Docs

Job Fit Analysis

Score a candidate's fit against a job description across skills, experience, education, and culture indicators.

Dashboard

POST /v1/hiring/job-fit-analysis

Produces a multi-dimensional fit score between a candidate's resume/profile and a job description. Returns dimension-level scores, matched and missing skills, and a recommendation on whether to proceed.


Required inputs

FieldTypeNotes
input.user_idstringYour platform's user ID
input.resumeResumeInputCandidate's resume text
input.job_descriptionJobDescriptionInputTarget role details

Optional inputs

FieldTypeNotes
input.profileProfileInputStructured profile for more precise skill matching
input.career_goalsCareerGoalsInputContextualises candidate's interest in the role

Example request

curl -X POST https://api.liyaengine.ai/v1/hiring/job-fit-analysis \
  -H "Authorization: Bearer $LIYA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": {
      "user_id": "usr_123",
      "resume": { "text": "Jane Doe\n8 years of software engineering..." },
      "job_description": {
        "title": "Staff Engineer",
        "description": "Own platform architecture, lead technical direction...",
        "required_skills": ["Go", "Kubernetes", "system design"],
        "required_experience_years": 7
      }
    }
  }'

Response

{
  "success": true,
  "data": {
    "output": {
      "overall_fit_score": 81,
      "recommendation": "good_match",
      "confidence": { "score": 0.89, "level": "high" },
      "skill_match_score": 76,
      "experience_match_score": 90,
      "education_match_score": 85,
      "skill_matches": [
        { "skill": "TypeScript", "match_type": "exact", "candidate_level": "advanced", "required_level": "advanced" },
        { "skill": "system design", "match_type": "exact", "candidate_level": "intermediate", "required_level": "advanced" },
        { "skill": "Go", "match_type": "missing", "required_level": "advanced", "gap": "No Go experience visible in resume" },
        { "skill": "Kubernetes", "match_type": "missing", "required_level": "intermediate", "gap": "No Kubernetes experience visible in resume" }
      ],
      "strengths": [
        { "strength": "8 years of experience", "relevance": "Meets the 7-year requirement", "evidence": "Resume shows continuous experience since 2018" },
        { "strength": "Cross-functional platform leadership", "relevance": "Matches the role's platform-ownership scope", "evidence": "Led migration to microservices across 3 teams" }
      ],
      "gaps": [
        { "gap": "No Go or Kubernetes experience visible in resume", "severity": "significant", "mitigation": "Highlight transferable systems experience; consider a short Kubernetes course before interviewing" }
      ],
      "application_strategy": {
        "recommended_approach": "Apply, and proactively address the Go/Kubernetes gap in the cover letter.",
        "talking_points": ["Platform migration leadership", "TypeScript and system design depth"],
        "areas_to_address": ["Go experience", "Kubernetes experience"],
        "questions_to_prepare": ["How is the platform team's Go usage structured today?"]
      },
      "actions": [
        { "action_id": "skill_gap_analysis", "action_type": "secondary", "title": "See full skill gap", "priority": 3 }
      ]
    }
  }
}

Scoring weights

Fit scores are computed using scoring_weights.job_fit_weights, a tenant-level configuration value. Default weights:

DimensionDefault weight
Skill match35%
Experience match30%
Education match15%
Culture indicators10%
Location match10%

These weights are not currently exposed as a self-serve dashboard or API setting — contact support if you need them customised for your tenant.

On this page