feat: Expand UK institution recognition with professional bodies and variations
- Add CIPD, CIMA, ACCA, ICAEW, ICAS, CII, CIPS, CMI as recognized professional bodies - Add 40+ university name variations (e.g., "Hull University" → "University of Hull") - Add automatic "X University" ↔ "University of X" pattern transformation - Improves education verification accuracy for common CV name formats 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -156,6 +156,24 @@ public static class UKInstitutions
|
||||
"University for the Creative Arts",
|
||||
"Ravensbourne University London",
|
||||
|
||||
// Professional Bodies (accredited qualification-awarding)
|
||||
"CIPD",
|
||||
"Chartered Institute of Personnel and Development",
|
||||
"CIMA",
|
||||
"Chartered Institute of Management Accountants",
|
||||
"ACCA",
|
||||
"Association of Chartered Certified Accountants",
|
||||
"ICAEW",
|
||||
"Institute of Chartered Accountants in England and Wales",
|
||||
"ICAS",
|
||||
"Institute of Chartered Accountants of Scotland",
|
||||
"CII",
|
||||
"Chartered Insurance Institute",
|
||||
"CIPS",
|
||||
"Chartered Institute of Procurement and Supply",
|
||||
"CMI",
|
||||
"Chartered Management Institute",
|
||||
|
||||
// Business Schools (accredited)
|
||||
"Henley Business School",
|
||||
"Warwick Business School",
|
||||
@@ -231,6 +249,77 @@ public static class UKInstitutions
|
||||
["Queen Mary"] = "Queen Mary University of London",
|
||||
["Royal Holloway University"] = "Royal Holloway, University of London",
|
||||
["RHUL"] = "Royal Holloway, University of London",
|
||||
["Hull University"] = "University of Hull",
|
||||
["Hull"] = "University of Hull",
|
||||
|
||||
// Additional "X University" variations for "University of X" institutions
|
||||
["Birmingham University"] = "University of Birmingham",
|
||||
["Bristol University"] = "University of Bristol",
|
||||
["Edinburgh University"] = "University of Edinburgh",
|
||||
["Exeter University"] = "University of Exeter",
|
||||
["Glasgow University"] = "University of Glasgow",
|
||||
["Leeds University"] = "University of Leeds",
|
||||
["Leicester University"] = "University of Leicester",
|
||||
["Liverpool University"] = "University of Liverpool",
|
||||
["Manchester University"] = "University of Manchester",
|
||||
["Nottingham University"] = "University of Nottingham",
|
||||
["Sheffield University"] = "University of Sheffield",
|
||||
["Southampton University"] = "University of Southampton",
|
||||
["Warwick University"] = "University of Warwick",
|
||||
["York University"] = "University of York",
|
||||
["Bath University"] = "University of Bath",
|
||||
["Bradford University"] = "University of Bradford",
|
||||
["Brighton University"] = "University of Brighton",
|
||||
["Derby University"] = "University of Derby",
|
||||
["Dundee University"] = "University of Dundee",
|
||||
["Essex University"] = "University of Essex",
|
||||
["Greenwich University"] = "University of Greenwich",
|
||||
["Hertfordshire University"] = "University of Hertfordshire",
|
||||
["Huddersfield University"] = "University of Huddersfield",
|
||||
["Kent University"] = "University of Kent",
|
||||
["Lincoln University"] = "University of Lincoln",
|
||||
["Plymouth University"] = "University of Plymouth",
|
||||
["Portsmouth University"] = "University of Portsmouth",
|
||||
["Reading University"] = "University of Reading",
|
||||
["Salford University"] = "University of Salford",
|
||||
["Surrey University"] = "University of Surrey",
|
||||
["Sussex University"] = "University of Sussex",
|
||||
["Westminster University"] = "University of Westminster",
|
||||
["Winchester University"] = "University of Winchester",
|
||||
["Wolverhampton University"] = "University of Wolverhampton",
|
||||
["Worcester University"] = "University of Worcester",
|
||||
["Aberdeen University"] = "University of Aberdeen",
|
||||
["Stirling University"] = "University of Stirling",
|
||||
["Strathclyde University"] = "University of Strathclyde",
|
||||
["Aberystwyth University"] = "Aberystwyth University",
|
||||
["Bangor University"] = "Bangor University",
|
||||
["Swansea University"] = "Swansea University",
|
||||
|
||||
// London university variations
|
||||
["UCL"] = "University College London",
|
||||
["University College, London"] = "University College London",
|
||||
["East London University"] = "University of East London",
|
||||
["London Metropolitan"] = "London Metropolitan University",
|
||||
["London Met"] = "London Metropolitan University",
|
||||
["South Bank University"] = "London South Bank University",
|
||||
["LSBU"] = "London South Bank University",
|
||||
|
||||
// Other common variations
|
||||
["Open University"] = "The Open University",
|
||||
["OU"] = "The Open University",
|
||||
["Northumbria"] = "Northumbria University",
|
||||
["De Montfort"] = "De Montfort University",
|
||||
["DMU"] = "De Montfort University",
|
||||
["Sheffield Hallam"] = "Sheffield Hallam University",
|
||||
["Nottingham Trent"] = "Nottingham Trent University",
|
||||
["NTU"] = "Nottingham Trent University",
|
||||
["Oxford Brookes"] = "Oxford Brookes University",
|
||||
["MMU"] = "Manchester Metropolitan University",
|
||||
["Manchester Met"] = "Manchester Metropolitan University",
|
||||
["Liverpool John Moores"] = "Liverpool John Moores University",
|
||||
["LJMU"] = "Liverpool John Moores University",
|
||||
["UWE"] = "University of the West of England",
|
||||
["West of England"] = "University of the West of England",
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
@@ -283,6 +372,11 @@ public static class UKInstitutions
|
||||
if (NameVariations.TryGetValue(normalised, out var officialName))
|
||||
return officialName;
|
||||
|
||||
// Try automatic "X University" ↔ "University of X" transformation
|
||||
var transformed = TryTransformUniversityName(normalised);
|
||||
if (transformed != null && RecognisedInstitutions.Contains(transformed))
|
||||
return transformed;
|
||||
|
||||
// Handle compound names (e.g., "Loughborough College/Motorsport UK Academy")
|
||||
// Split by common separators and check each part
|
||||
var separators = new[] { '/', '&', '-', '–', '—', ',' };
|
||||
@@ -323,4 +417,27 @@ public static class UKInstitutions
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Attempts to transform university name between common formats:
|
||||
/// "X University" ↔ "University of X"
|
||||
/// </summary>
|
||||
private static string? TryTransformUniversityName(string name)
|
||||
{
|
||||
// Try "X University" → "University of X"
|
||||
if (name.EndsWith(" University", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
var place = name[..^11].Trim(); // Remove " University"
|
||||
return $"University of {place}";
|
||||
}
|
||||
|
||||
// Try "University of X" → "X University"
|
||||
if (name.StartsWith("University of ", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
var place = name[14..].Trim(); // Remove "University of "
|
||||
return $"{place} University";
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user