Improve UI styling and AI company matching
- Enhance text contrast (darker grey #2d2b27) - Soften footer with warmer dark (#3a3833) - Use warmer primary blue (#3d5a80) - Add subtle background gradient for depth - Strengthen table header styling - Increase logo size to 95px for better visibility - Fix AI matcher to handle acronyms in parentheses (e.g., NHP) - Improve matching rules for CIC/LLP legal suffixes Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -40,11 +40,13 @@ public sealed class AICompanyNameMatcherService : ICompanyNameMatcherService
|
|||||||
|
|
||||||
Rules:
|
Rules:
|
||||||
1. A match requires the companies to be the SAME organisation, not just similar names
|
1. A match requires the companies to be the SAME organisation, not just similar names
|
||||||
2. "Families First CiC" is NOT the same as "FAMILIES AGAINST CONFORMITY LTD" - these are different organisations
|
2. "Families First CiC" is NOT the same as "FAMILIES AGAINST CONFORMITY LTD" - different words = different companies
|
||||||
3. "North Halifax Partnership" is NOT the same as "NORTH LIMITED" - completely different companies
|
3. Trading names should match their registered entity (e.g., "Tesco" matches "TESCO PLC")
|
||||||
4. Trading names should match their registered entity (e.g., "Tesco" matches "TESCO PLC")
|
4. Subsidiaries can match if clearly the same organisation (e.g., "ASDA" could match "ASDA STORES LIMITED")
|
||||||
5. Subsidiaries can match if clearly the same organisation (e.g., "ASDA" could match "ASDA STORES LIMITED")
|
5. Acronyms in parentheses are abbreviations of the full name (e.g., "North Halifax Partnership (NHP)" = "NORTH HALIFAX PARTNERSHIP")
|
||||||
6. If NO candidate is clearly the same company, return "NONE" as the best match
|
6. CiC/CIC = Community Interest Company, LLP = Limited Liability Partnership - these are legal suffixes
|
||||||
|
7. If the CV name contains all the key words of a candidate (ignoring Ltd/Limited/CIC/etc.), it's likely a match
|
||||||
|
8. If NO candidate is clearly the same company, return "NONE" as the best match
|
||||||
|
|
||||||
Respond with this exact JSON structure:
|
Respond with this exact JSON structure:
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<nav class="navbar navbar-expand-lg navbar-light shadow-sm" style="background-color: var(--truecv-bg-surface);">
|
<nav class="navbar navbar-expand-lg navbar-light shadow-sm" style="background-color: var(--truecv-bg-surface);">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<a class="navbar-brand fw-bold" href="/">
|
<a class="navbar-brand fw-bold" href="/">
|
||||||
<img src="images/TrueCV_Logo.png" alt="TrueCV" style="height: 50px;" />
|
<img src="images/TrueCV_Logo.png" alt="TrueCV" style="height: 95px;" />
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
@@ -77,7 +77,7 @@
|
|||||||
@Body
|
@Body
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<footer class="bg-dark text-light py-4 mt-auto">
|
<footer class="text-light py-4 mt-auto" style="background-color: var(--truecv-footer-bg);">
|
||||||
<div class="container text-center">
|
<div class="container text-center">
|
||||||
<p class="mb-0">© @DateTime.Now.Year TrueCV. All rights reserved.</p>
|
<p class="mb-0">© @DateTime.Now.Year TrueCV. All rights reserved.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/* TrueCV Custom Design System */
|
/* TrueCV Custom Design System */
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
/* Primary brand colors - slightly softer */
|
/* Primary brand colors - warmer blue */
|
||||||
--truecv-primary: #3b6fd4;
|
--truecv-primary: #3d5a80;
|
||||||
--truecv-primary-dark: #2c5bb5;
|
--truecv-primary-dark: #2c4a6e;
|
||||||
--truecv-primary-light: #5889e0;
|
--truecv-primary-light: #5a7a9a;
|
||||||
|
|
||||||
/* Semantic colors for verification states */
|
/* Semantic colors for verification states */
|
||||||
--truecv-verified: #059669;
|
--truecv-verified: #059669;
|
||||||
@@ -14,25 +14,30 @@
|
|||||||
--truecv-danger: #dc2626;
|
--truecv-danger: #dc2626;
|
||||||
--truecv-danger-light: #fde8e8;
|
--truecv-danger-light: #fde8e8;
|
||||||
|
|
||||||
/* Eye-friendly neutral palette - warmer tones */
|
/* Eye-friendly neutral palette - warmer tones with better contrast */
|
||||||
--truecv-gray-50: #faf9f7;
|
--truecv-gray-50: #faf9f7;
|
||||||
--truecv-gray-100: #f0ede8;
|
--truecv-gray-100: #f0ede8;
|
||||||
--truecv-gray-200: #e5e2dc;
|
--truecv-gray-200: #e5e2dc;
|
||||||
--truecv-gray-300: #d6d2cb;
|
--truecv-gray-300: #d6d2cb;
|
||||||
--truecv-gray-500: #6b7280;
|
--truecv-gray-500: #5a5751;
|
||||||
--truecv-gray-700: #3a3833;
|
--truecv-gray-700: #2d2b27;
|
||||||
--truecv-gray-900: #1a1917;
|
--truecv-gray-900: #1a1917;
|
||||||
|
|
||||||
/* Surface colours for eye comfort */
|
/* Surface colours for eye comfort */
|
||||||
--truecv-bg-page: #f5f3f0;
|
--truecv-bg-page: #f5f3f0;
|
||||||
--truecv-bg-surface: #faf9f7;
|
--truecv-bg-surface: #faf9f7;
|
||||||
--truecv-bg-muted: #f0ede8;
|
--truecv-bg-muted: #f0ede8;
|
||||||
|
|
||||||
|
/* Footer */
|
||||||
|
--truecv-footer-bg: #3a3833;
|
||||||
}
|
}
|
||||||
|
|
||||||
html, body {
|
html, body {
|
||||||
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||||
color: var(--truecv-gray-700);
|
color: var(--truecv-gray-700);
|
||||||
background-color: var(--truecv-bg-page);
|
background: linear-gradient(180deg, var(--truecv-bg-page) 0%, #ebe8e3 100%);
|
||||||
|
background-attachment: fixed;
|
||||||
|
min-height: 100vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Typography scale */
|
/* Typography scale */
|
||||||
@@ -120,8 +125,12 @@ a:hover {
|
|||||||
padding: 1rem 0.75rem;
|
padding: 1rem 0.75rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.table thead th.text-muted {
|
||||||
|
color: var(--truecv-gray-500) !important;
|
||||||
|
}
|
||||||
|
|
||||||
.table-hover > tbody > tr:hover {
|
.table-hover > tbody > tr:hover {
|
||||||
background-color: rgba(37, 99, 235, 0.04);
|
background-color: rgba(61, 90, 128, 0.04);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Badges */
|
/* Badges */
|
||||||
@@ -136,7 +145,7 @@ a:hover {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.bg-primary-subtle {
|
.bg-primary-subtle {
|
||||||
background-color: #e3ecf7 !important;
|
background-color: #e1e8ef !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bg-secondary-subtle {
|
.bg-secondary-subtle {
|
||||||
|
|||||||
Reference in New Issue
Block a user