Setlwork

AI Scoring System Documentation

Comprehensive overview of our AI-powered evaluation system for visa sponsorship prediction, CV parsing, job readiness assessment, and company recommendations.

Visa Sponsorship

Surfaces a UK Skilled Worker Visa sponsorship readiness signal using sector, company, and job data.

CV Parser

Extracts structured information from resume text including personal info and work experience.

Job Readiness

Evaluates candidate readiness against job requirements using the UK Standard Skills Classification.

Company Matching

Recommends companies based on role keywords, salary expectations, and funding data.

UK Skilled Worker Visa Sponsorship Prediction
Analyzes multiple factors to predict the likelihood of obtaining visa sponsorship

Scoring Logic

FactorWeight
Sector sponsorship rate35%
Job-role sponsorship rate30%
Company sponsorship history25%
New-Entrant or PhD adjustment5%
Salary-threshold compliance5%
-5%New Entrant penalty
+5%PhD bonus
+5%Salary threshold met (varies by eligibility)

AI Prompt

You are an AI-powered UK Skilled Worker Visa Sponsorship Prediction Assistant.

Given the following:
--- Sector Data ---
[Matched sector information from database]

--- Company Sponsorship History ---
[Historical sponsorship data for matched companies]

--- Job Title Sponsorship History ---
[Sponsorship rates for similar job titles]

Additional Info:
- Expected Salary: £[amount]
- New Entrant: [Yes/No]
- PhD: [Yes/No]

Instructions:
Output the following JSON object:
{
  "factor_scores": {
    "eligibility_tier_score": number between 0 and 100,
    "sector_rate": number between 0 and 100,
    "role_rate": number between 0 and 100,
    "salary_compliance": number between 0 and 100
  },
  "probability": number between 0 and 100,
  "justification": "A short, clear justification in British English explaining why the user received this probability.",
  "component_scores": {
    "sector_sponsorship_popularity": number between 0 and 100,
    "soc_code_compatibility": number between 0 and 100,
    "skill_readiness": number between 0 and 100
  },
  "prediction_insights": {
    "confidence": "One of: Strong Likelihood, Moderate Likelihood, or Low Likelihood",
    "insight": "One sentence highlighting the user's current potential",
    "estimated_timeline": "e.g. '2–4 weeks' or '1–2 months'",
    "percentile": "e.g. 'Top 25% of applicants in your category' or 'Top 50%'"
  }
}

Apply the following weights (VSRS 4-factor system):
| Factor                              | Weight |
|-------------------------------------|--------|
| Eligibility tier (ISL/TSL/PhD/Gen)  | 30%    |
| Sector rate (Home Office data)      | 35%    |
| Role rate (Home Office data)        | 30%    |
| Salary compliance (SOC threshold)   | 5%     |

Eligibility tier scoring:
- ISL (Immigration Salary List / Shortage): 100
- PhD (RQF 8): 90
- TSL (Transitional Skilled List): 80
- General Threshold (RQF 6+): 70
- Subtract 10 if New Entrant

Respond only with valid JSON.

Backend Calculation Override

The system enforces manual calculation on the backend to ensure consistency:

// Backend calculates probability using exact weights
const calculatedProbability = calculateVisaProbability(parsed.factor_scores);

if (parsed.probability !== calculatedProbability) {
  console.warn(`AI probability (${parsed.probability}) differs from backend calculation (${calculatedProbability}).`);
  parsed.probability = calculatedProbability;
}

// Returns the backend-calculated probability regardless of AI output

Backend Method: calculateVisaProbability

export function calculateVisaProbability(factorScores: {
  eligibility_tier_score: number; // 0-100 (ISL=100, PhD=90, TSL=80, General=70)
  sector_rate: number;            // 0-100 from Home Office data
  role_rate: number;              // 0-100 from Home Office data
  salary_compliance: number;      // 0-100 percentage
}): number {
  const weighted =
    factorScores.eligibility_tier_score * 0.30 +
    factorScores.sector_rate * 0.35 +
    factorScores.role_rate * 0.30 +
    factorScores.salary_compliance * 0.05;

  return Math.max(0, Math.min(100, Math.round(weighted)));
}
Technical Implementation
System architecture and AI model configuration

AI Model Configuration

Model: GPT-4o (Azure OpenAI)
API Version: 2025-01-01-preview
Temperature: 0.3-0.5 (depending on task)
Max Tokens: 600-2000 (depending on task)

Data Sources

Sector/Company Data: ParseCompanySectorData entity
Job Data: ParseDataSetByJobType entity
User Profiles: User entity with work histories
Company Data: Company entity with attributes and funding