From 3e6eb59251daa280147dae147f616bc092117be2 Mon Sep 17 00:00:00 2001 From: Peter Foster Date: Thu, 22 Jan 2026 01:34:26 +0000 Subject: [PATCH] chore: Remove strategy docs and rename TrueCV to RealCV MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove markdown and txt documentation files - Update PdfReportService.cs with RealCV branding πŸ€– Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- API_RESOURCES_AND_CONTACTS.md | 515 ------- DELIVERY_SUMMARY.txt | 476 ------ DEPLOYMENT-GUIDE.md | 447 ------ EXECUTIVE_SUMMARY.md | 236 --- INDEX.md | 492 ------ PHASE1_TECHNICAL_IMPLEMENTATION.md | 1491 ------------------- QUICK_REFERENCE.md | 380 ----- README_UK_STRATEGY.md | 419 ------ UK_FEATURE_PRIORITIZATION.md | 631 -------- UK_MARKET_STRATEGY.md | 416 ------ deploy/README.md | 161 -- src/RealCV.Web/Services/PdfReportService.cs | 8 +- 12 files changed, 4 insertions(+), 5668 deletions(-) delete mode 100644 API_RESOURCES_AND_CONTACTS.md delete mode 100644 DELIVERY_SUMMARY.txt delete mode 100644 DEPLOYMENT-GUIDE.md delete mode 100644 EXECUTIVE_SUMMARY.md delete mode 100644 INDEX.md delete mode 100644 PHASE1_TECHNICAL_IMPLEMENTATION.md delete mode 100644 QUICK_REFERENCE.md delete mode 100644 README_UK_STRATEGY.md delete mode 100644 UK_FEATURE_PRIORITIZATION.md delete mode 100644 UK_MARKET_STRATEGY.md delete mode 100644 deploy/README.md diff --git a/API_RESOURCES_AND_CONTACTS.md b/API_RESOURCES_AND_CONTACTS.md deleted file mode 100644 index 8d13757..0000000 --- a/API_RESOURCES_AND_CONTACTS.md +++ /dev/null @@ -1,515 +0,0 @@ -# TrueCV UK APIs & Integration Resources - -**Last Updated:** January 2026 -**Purpose:** Practical guide for obtaining API access and integration details - ---- - -## 1. HEDD (Higher Education Degree Datacheck) - -### Overview -- **Service:** UK degree verification against 140+ university records -- **Coverage:** All UK Russell Group + most other UK universities -- **Request Type:** Real-time matching + manual university verification (10 days) - -### Access & Integration - -#### Contact Information -- **Website:** https://hedd.ac.uk/ -- **For API/Integration Inquiries:** - - Contact: partnerships@hedd.ac.uk - - Business Development: [HEDD website contact form](https://hedd.ac.uk/) - - Alternative: Prospects Limited (maintains HEDD) - -#### Integration Methods - -**Option A: REST API (Preferred - Direct)** -- **Status:** Available for registered partners -- **Endpoint Base:** `https://api.hedd.ac.uk/v2/` -- **Authentication:** API Key (basic auth) -- **Rate Limits:** Typically 500 requests/day (negotiable) -- **Response Time:** <2 seconds for exact matches -- **Cost:** Β£1-5 per verification (pass-through to customers) - -**Option B: Web Portal Integration (Fallback)** -- **Status:** Available immediately to registered employers -- **Registration:** https://hedd.ac.uk/employers -- **Process:** Embed form or redirect to HEDD portal -- **Response:** Email notification when manual review completes -- **Cost:** Same as API (Β£1-5 per verification) -- **Implementation:** 3-5 days (iframe/redirect pattern) - -#### Required Information for Registration -- Company/organization name -- Principal contact person -- Use case (CV verification for recruitment) -- Expected volume (verifications/month) -- Data handling procedure (consent workflow) -- GDPR/data protection process -- Whether requiring API vs. web portal access - -#### Timeline for Access -- **Application review:** 5-10 business days -- **Approval + credential issue:** +3-5 business days -- **API testing:** +2-3 business days -- **Total:** 10-20 days (best case) - -#### API Documentation -- **Base URL:** https://api.hedd.ac.uk/v2/ -- **Key Endpoints:** - - `POST /api/verify/degree` - Submit verification request - - `GET /api/verify/status/{referenceId}` - Check manual review status - - `GET /api/institutions` - List participating universities - - `POST /api/batch` - Batch verification (if available) - ---- - -## 2. GMC Register (General Medical Council) - -### Overview -- **Service:** UK medical practitioner registration and verification -- **Coverage:** ~250K registered doctors in UK -- **Searchable:** Public website at https://www.gmc-uk.org/ - -### Access & Integration - -#### Contact Information -- **Main Website:** https://www.gmc-uk.org/ -- **Registration Search:** https://www.gmc-uk.org/registration-and-licensing/the-medical-register -- **For API/Integration:** - - Digital Services: digital@gmc-uk.org - - Developer Info: [Check developer portal/API docs] - - Business Development: partnerships@gmc-uk.org - -#### Integration Methods - -**Option A: Official API (Recommended)** -- **Status:** Available for verification services -- **Endpoint Base:** Likely `https://www.gmc-uk.org/api/v1/` or similar -- **Authentication:** OAuth2 or API Key -- **Rate Limits:** TBD with GMC -- **Response Time:** <1 second -- **Cost:** Free or nominal fee (TBD) - -**Option B: Web Scraping (Immediate Alternative)** -- **Status:** Legal for aggregation/verification purposes -- **Target:** https://www.gmc-uk.org/ -- **Method:** BeautifulSharp/Selenium for search results -- **Implementation:** 5-7 days (C# scraper) -- **Risk:** Minor - GMC unlikely to block verification use case -- **Maintenance:** Monitor for website structure changes quarterly - -#### Required Information for API Request -- Organization name + registration number -- Intended use case (CV verification) -- Expected request volume -- Data protection/GDPR compliance -- Integration timeline/urgency - -#### API Documentation (if available) -- Likely endpoints: - - `GET /api/doctors/search?name={name}` - Search by name - - `GET /api/doctors/{gmcNumber}` - Lookup by GMC number - - `GET /api/doctors/status?name={name}&specialty={specialty}` - Verify status - -#### Timeline for Access -- **API Request β†’ Review:** 2-4 weeks -- **If rejected:** Fallback to web scraper (5-7 days dev) - ---- - -## 3. NMC Register (Nursing and Midwifery Council) - -### Overview -- **Service:** UK nurse/midwife registration -- **Coverage:** ~700K registered nurses, midwives, nursing associates -- **Searchable:** Public website at https://www.nmc.org.uk/ - -### Access & Integration - -#### Contact Information -- **Main Website:** https://www.nmc.org.uk/ -- **Register Search:** https://www.nmc.org.uk/registration/search-the-register/ -- **For API/Integration:** - - Digital Services: [Check website for tech contact] - - Developer Relations: [Likely on website or contact form] - - Main Contact: www.nmc.org.uk/contact - -#### Integration Methods - -**Option A: Official API** -- **Status:** Available for verification partners -- **Endpoint Base:** Likely `https://api.nmc.org.uk/` or similar -- **Authentication:** OAuth2 or API Key -- **Cost:** Free or nominal -- **Implementation:** Same pattern as GMC - -**Option B: Web Scraping** -- **Status:** Legal for verification -- **Target:** https://www.nmc.org.uk/ -- **Implementation:** 5-7 days (reusable pattern from GMC scraper) -- **Risk:** Low - -#### Timeline -- **Same as GMC:** 2-4 weeks (API) or 5-7 days (scraper fallback) - ---- - -## 4. Companies House API (Already Integrated) - -### Overview -- **Service:** UK company registration and officer records -- **Status:** βœ… Already integrated in TrueCV -- **Coverage:** 3.4M registered UK companies - -### Enhancement Opportunities - -#### Existing Implementation -- See: `/src/TrueCV.Infrastructure/ExternalApis/CompaniesHouseClient.cs` -- Current: Company search + basic data lookup -- Rate Limit: 500 requests/hour (generous) - -#### New Endpoints to Utilize - -**Officers/Directors API:** -- **Endpoint:** `/company/{companyNumber}/officers` -- **Returns:** List of directors, secretaries, appointments -- **Use Case:** Verify director claims against employment history -- **Implementation:** Already drafted in Phase 1 technical doc - -**Disqualifications API:** -- **Endpoint:** `/disqualifications` (if available) -- **Returns:** Directors banned from serving -- **Use Case:** Flag disqualified director claims -- **Implementation:** 2-3 days - -**Charges/Mortgages API:** -- **Endpoint:** `/company/{companyNumber}/charges` -- **Use Case:** Assess company financial stability -- **Implementation:** Optional enhancement - -#### Documentation -- **Official Docs:** https://developer.companieshouse.gov.uk/ -- **Key Endpoints Already Used:** - - `/search/companies?q={query}` - - `/company/{companyNumber}` -- **New Endpoints:** - - `/company/{companyNumber}/officers` - - `/company/{companyNumber}/disqualifications` - ---- - -## 5. GOV.UK Regulated Professions Register - -### Overview -- **Service:** Directory of 140+ regulated professions in UK -- **URL:** https://www.regulated-professions.service.gov.uk/ -- **Use Case:** Cross-check CV claims against official regulator list - -### Access & Integration - -#### Integration Type -- **API:** Public REST API available -- **Documentation:** https://www.regulated-professions.service.gov.uk/ -- **Authentication:** None (public data) -- **Rate Limits:** Minimal/none -- **Cost:** Free - -#### Key Endpoints -- `GET /professions` - List all regulated professions -- `GET /professions/search?q={query}` - Search by profession name -- `GET /professions/{id}/regulators` - Get regulator info - -#### Implementation -- **Effort:** 2-3 days (simple enrichment layer) -- **Purpose:** When CV claims regulated profession, validate regulator exists -- **Example:** CV says "Chartered Accountant (ICAEW)" β†’ Verify ICAEW in register - ---- - -## 6. ICAEW Register (Accountants) - -### Overview -- **Service:** Institute of Chartered Accountants in England & Wales -- **Coverage:** ~180K members -- **Website:** https://www.icaew.com/ - -### Access & Integration - -#### Contact Information -- **Member Search:** https://www.icaew.com/find-a-member -- **For API/Integration:** - - Technical Contact: [Check website] - - Business Development: [Check website contact] - - Email: partnerships@icaew.com - -#### Integration Methods - -**Option A: API (Recommended)** -- **Status:** Check if available for third-party verification -- **Implementation:** 2-3 weeks (likely similar to GMC/NMC pattern) - -**Option B: Web Scraping** -- **Status:** Legal for verification purposes -- **Target:** https://www.icaew.com/find-a-member -- **Implementation:** 7-10 days - -#### Data Points to Verify -- Member status (Active/Retired/Lapsed) -- Membership type (ACA/FCA/AAIA/etc.) -- Regulated areas (audit, insolvency, etc.) - ---- - -## 7. SRA Register (Solicitors) - -### Overview -- **Service:** Solicitors Regulation Authority -- **Coverage:** ~170K solicitors in UK -- **Website:** https://www.sra.org.uk/ - -### Access & Integration - -#### Contact Information -- **Solicitor Search:** https://www.sra.org.uk/solicitors/ -- **For API/Integration:** - - Technical Services: [Check website] - - Business Partnerships: [Check website] - - Email: Try via website contact form - -#### Integration Methods -- **Same pattern as ICAEW (API or scraper)** -- **Implementation:** 7-10 days total -- **Data Points:** Solicitor status, specializations, practice areas - ---- - -## 8. IET Register (Engineers) - -### Overview -- **Service:** Institution of Engineering and Technology -- **Coverage:** ~150K members -- **Website:** https://www.theiet.org/ - -### Access & Integration - -#### Similar to ICAEW/SRA -- **Contact:** partnerships@theiet.org -- **Member Search:** Available on website -- **API Status:** Check with IET directly - ---- - -## 9. HCPC Register (Healthcare Professionals) - -### Overview -- **Service:** Health and Care Professions Council -- **Coverage:** 15 regulated professions (physios, psychologists, paramedics, etc.) -- **Website:** https://www.hcpc-uk.org/ - -### Access & Integration -- **Register Search:** https://www.hcpc-uk.org/registration/the-register/ -- **For API:** Contact digital@hcpc-uk.org -- **Implementation:** 2-3 weeks (if API available) or 7-10 days (scraper) - ---- - -## 10. DBS Integration (Partnership Required) - -### Overview -- **Service:** Disclosure and Barring Service checks -- **No Direct API:** Accessed through pre-employment screening vendors -- **Vendors offering DBS APIs:** - - Verifile - - DDC (Due Diligence Checking) - - Security Watchdog - - uCheck - - Certn - -### Recommended Vendor for TrueCV Integration - -**Verifile** (Suggested) -- **Website:** https://www.verifile.io/ -- **Contact:** [Check website] -- **API Type:** REST-based -- **Cost Structure:** Β£20-50 per DBS check (pass-through) -- **Integration:** 6-8 weeks (includes compliance setup) - -### Alternative Vendors -- **DDC:** https://www.ddc.uk.net/ -- **Security Watchdog:** https://www.securitywatchdog.org.uk/ -- **uCheck:** https://www.ucheck.co.uk/ - -### Implementation Approach -1. Contact 2-3 vendors for partnership discussion -2. Negotiate revenue share (typically 20-30% for platform) -3. Integrate DBS check submission API -4. Build compliance/audit trail layer -5. White-label DBS reports in TrueCV UI - -### Timeline -- **Vendor selection:** 1-2 weeks -- **Agreement negotiation:** 2-4 weeks -- **Technical integration:** 6-8 weeks -- **Compliance approval:** 2-4 weeks -- **Total:** 12-18 weeks (Q3 timeline realistic) - ---- - -## 11. HMRC Payroll Verification (Restricted Access) - -### Overview -- **Service:** Real-time employment verification via HMRC -- **Access:** Restricted to pre-employment screening vendors with accreditation -- **Use Case:** Authoritative employment history + dates + salary bands - -### Implementation Approach - -**NOT Direct API Access** - Must partner with accredited vendor - -#### Recommended Path -1. **Contact accredited vendors:** Verifile, DDC, or similar -2. **Explain use case:** CV verification platform -3. **Request sub-licensing:** Access to their HMRC integration -4. **Build wrapper:** TrueCV UI calls vendor API - -#### Vendors with HMRC Access -- Verifile (https://www.verifile.io/) -- DDC (https://www.ddc.uk.net/) -- Digital Marketplace vendors (check list) - -#### Timeline -- **Vendor discussion:** 2-4 weeks -- **Partnership agreement:** 4-6 weeks -- **Technical integration:** 4-6 weeks -- **Total:** 10-16 weeks (Q3 2026) - -#### Cost Model -- Likely: Β£0.50-2 per verification (wholesale rate) -- Pass-through cost to customers: Β£2-5 - ---- - -## Implementation Prioritization for Phase 1 - -| Component | Primary API | Fallback | Effort | Start | Complete | -|---|---|---|---|---|---| -| **HEDD** | βœ… API | Web portal | 3 weeks | Week 1 | Week 3 | -| **GMC** | πŸ”„ API TBD | Scraper | 1 week | Week 2 | Week 3 | -| **NMC** | πŸ”„ API TBD | Scraper | 1 week | Week 2 | Week 3 | -| **Companies House** | βœ… API exist | N/A | 2 weeks | Week 1 | Week 3 | -| **GOV.UK Registry** | βœ… API public | N/A | 3 days | Week 2 | Week 2 | -| **Timeline Enhancement** | N/A | Internal | 1 week | Week 1 | Week 1 | - ---- - -## Action Items for Product Manager - -### This Week -1. **Email HEDD:** partnerships@hedd.ac.uk with: - - Company info (TrueCV) - - Use case (CV verification for UK recruiters) - - Expected volume (start with 100/month) - - Request: API access or partnership discussion - -2. **Email GMC:** digital@gmc-uk.org with similar inquiry - -3. **Email NMC:** [Check website for technical contact] - -4. **Review Companies House API Docs:** https://developer.companieshouse.gov.uk/ - -### Next Week -1. **Follow up if no response:** Contact alternative channels (partnerships@, main contact) -2. **Prepare scraper approach:** If APIs not available, start scraper development anyway -3. **Create test accounts:** Register on HEDD, GMC, NMC websites as backup -4. **Identify beta partners:** Contact recruitment agencies for testing - -### Timeline Expectations -- **HEDD API Response:** 2-4 weeks -- **GMC API Response:** 2-4 weeks (or fallback to scraper) -- **NMC API Response:** 2-4 weeks (or fallback to scraper) -- **If APIs unavailable:** Scraper approach = 3-4 days per service -- **Companies House:** Already have access; can start immediately - ---- - -## Compliance & Data Protection Checklist - -For each API integration, ensure: -- [ ] Terms of Service reviewed (especially data retention/use restrictions) -- [ ] GDPR data processing agreement in place -- [ ] Candidate consent workflow implemented -- [ ] Data retention policy documented -- [ ] Audit logging enabled -- [ ] Data deletion procedures defined -- [ ] Third-party processing agreement signed (where applicable) -- [ ] Privacy notice updated on website - ---- - -## References & Documentation - -### Official API Documentation Links -- **Companies House:** https://developer.companieshouse.gov.uk/ -- **HEDD:** https://hedd.ac.uk/ (contact for API docs) -- **GMC:** https://www.gmc-uk.org/ (check for developer resources) -- **NMC:** https://www.nmc.org.uk/ (check for developer resources) -- **GOV.UK Professions:** https://www.regulated-professions.service.gov.uk/ -- **DBS Vendors:** Contact directly - -### Useful Resources -- [UK Pre-Employment Screening Industry Overview](https://www.verifyed.io/) -- [HEDD Employers Toolkit](https://hedd.ac.uk/employers) -- [UK Data Protection Act 2018](https://www.legislation.gov.uk/ukpga/2018/12/contents/enacted) -- [GDPR Requirements for HR](https://ico.org.uk/) - ---- - -## Contact Template for API Requests - -``` -Subject: API Integration Request - TrueCV Recruitment Verification Platform - -Dear [Service] Team, - -We are developing TrueCV, a UK-focused CV verification platform for recruitment agencies and corporate HR departments. As part of our Phase 1 launch (Q1 2026), we would like to integrate with [Service Name] to verify [candidate credentials] in real-time during the hiring process. - -Use Case: -- Candidates upload CV during job application -- TrueCV extracts education/qualification claims -- Real-time verification against [Service] records -- Fraud flags generated for recruiter review - -Integration Preference: -- REST API integration (preferred) -- Web portal integration (acceptable) - -Anticipated Volume: -- Initial: 100-500 verifications/month -- Scale: 5,000+ verifications/month (Year 2) - -Questions: -1. Is API access available for third-party verification services? -2. What is the application timeline? -3. Are there rate limits or volume commitments? -4. Is there a cost per verification or licensing fee? -5. What data retention policies apply? - -We're committed to compliance and will execute necessary data processing agreements. - -Please advise next steps. - -Best regards, -[Your Name] -TrueCV -``` - ---- - -## Next Steps - -1. **Start with HEDD:** Highest ROI; contact this week -2. **Parallel track GMC/NMC:** Prepare scraper approach as backup -3. **Companies House:** Begin director verification enhancement immediately (API exists) -4. **Timeline:** Full Phase 1 integration possible within 8 weeks - diff --git a/DELIVERY_SUMMARY.txt b/DELIVERY_SUMMARY.txt deleted file mode 100644 index 4fe9ffd..0000000 --- a/DELIVERY_SUMMARY.txt +++ /dev/null @@ -1,476 +0,0 @@ -================================================================================ -TRUECV UK MARKET STRATEGY - COMPLETE DELIVERY PACKAGE -================================================================================ - -Project: Rethinking TrueCV Feature Priorities with UK-Only Focus -Date Delivered: January 20, 2026 -Total Documents: 8 comprehensive strategy guides -Total Content: ~200 pages -Estimated Read Time: 2-4 hours (depending on role) - -================================================================================ -DELIVERABLES -================================================================================ - -FILE 1: QUICK_REFERENCE.md (3-4 pages) -- Purpose: Desk reference card for quick lookups -- Format: Visual tables, bullet points, one-liners -- Contains: Market opportunity, competitive advantage, timeline, pricing, metrics -- Best For: All audiences - print and keep at desk - -FILE 2: EXECUTIVE_SUMMARY.md (5-6 pages) -- Purpose: Executive brief for decision-making -- Format: Business narrative with financial projections -- Contains: Market problem, solution, competitive advantage, financials, 30-day plan -- Best For: Executives, investors, decision-makers - -FILE 3: UK_FEATURE_PRIORITIZATION.md (25-30 pages) -- Purpose: Detailed feature prioritization and analysis -- Format: Tables, matrices, ranked lists, implementation examples -- Contains: 8 UK APIs analyzed, features ranked by impactΓ—feasibility, 3-phase roadmap -- Best For: Product managers, engineering leads - -FILE 4: PHASE1_TECHNICAL_IMPLEMENTATION.md (50-60 pages) -- Purpose: Complete technical specifications for Phase 1 (8-week) delivery -- Format: Architecture diagrams, production-ready C# code, configuration guides -- Contains: 4 features with complete implementation details, testing strategy, deployment checklist -- Best For: Backend engineers, QA engineers - -FILE 5: UK_MARKET_STRATEGY.md (40-50 pages) -- Purpose: Comprehensive market and go-to-market strategy -- Format: Market analysis, competitive landscape, GTM strategy, financials -- Contains: Market sizing, competitive analysis, 3-phase product strategy, GTM channels, unit economics -- Best For: Product team, marketing, sales, leadership - -FILE 6: API_RESOURCES_AND_CONTACTS.md (20-25 pages) -- Purpose: Practical guide to accessing UK APIs and vendor partnerships -- Format: Reference guide, contact information, implementation methods -- Contains: 11 API integration guides, contact details, email templates, compliance checklist -- Best For: Engineering + product during implementation phase - -FILE 7: README_UK_STRATEGY.md (8-10 pages) -- Purpose: Navigation guide and orientation document -- Format: Document hierarchy, role-based reading paths, cross-references -- Contains: Quick navigation, decision framework, reading order recommendations -- Best For: Orientation and finding specific information - -FILE 8: INDEX.md (10-12 pages) -- Purpose: Complete document index and reference guide -- Format: Document inventory, cross-references, reading guides by role -- Contains: What's in each document, how to find information, version control -- Best For: Understanding what information exists where - -================================================================================ -KEY FINDINGS & RECOMMENDATIONS -================================================================================ - -MARKET OPPORTUNITY: -βœ“ Β£4.2B annual cost of CV fraud to UK employers -βœ“ 1 in 5 UK candidates falsify university degrees -βœ“ 24% of screened CVs fail verification -βœ“ Β£3.3M serviceable market for TrueCV -βœ“ No existing competitor offers integrated UK CV verification - -COMPETITIVE ADVANTAGE: -βœ“ Only platform integrating HEDD degree verification (no competitors do) -βœ“ Only tool targeting healthcare recruiting niche (GMC/NMC registers) -βœ“ Only solution verifying director claims vs. Companies House -βœ“ Only platform detecting timeline fraud across education-employment boundary -βœ“ 6-12 month first-mover advantage window - -RECOMMENDED STRATEGY: -βœ“ PROCEED with Phase 1 implementation immediately -βœ“ Launch 4 features in 8 weeks (Q1 2026) -βœ“ Target healthcare recruiting niche first (GMC/NMC) -βœ“ Expand to professional bodies in Q2 (ICAEW, SRA) -βœ“ Add compliance tier (DBS, HMRC) in Q3 - -FINANCIAL PROJECTIONS: -βœ“ Year 1 Revenue: Β£113K-226K (conservative to growth) -βœ“ Break-even: 24-30 customers (achievable by month 6-7) -βœ“ Customer Acquisition Cost: Β£150-300 -βœ“ Average Revenue Per User: Β£60-120/month -βœ“ Gross Margin: 75-80% (healthy SaaS model) - -CRITICAL PATH: -1. Email HEDD requesting API access (this week) -2. Email GMC/NMC requesting verification APIs (this week) -3. Allocate 2 engineers full-time for 8 weeks (immediate) -4. Recruit 3-5 beta partner recruitment agencies (week 2) -5. Begin development (week 2) -6. Public launch (week 8) - -================================================================================ -PHASE 1 FEATURE PRIORITIES (Q1 2026 - 8 Weeks) -================================================================================ - -RANK FEATURE IMPACT EFFORT TIMELINE -───────────────────────────────────────────────────────────────────── -1. HEDD Degree Verification 9.5/10 β˜…β˜…β˜… Weeks 1-3 - └─ Real-time + manual review tracking - -2. Enhanced Timeline Analysis 7.0/10 β˜…β˜†β˜† Weeks 1-2 - └─ Education-employment sequencing - -3. Healthcare Registers (GMC/NMC) 6.5/10 β˜…β˜†β˜† Weeks 2-3 - └─ Doctor/nurse registration verification - -4. Companies House Director 7.5/10 β˜…β˜…β˜† Weeks 2-4 - Verification - └─ Self-employment claim validation - -APIs INTEGRATED: -βœ“ HEDD (degree verification, 140+ universities) -βœ“ GMC (doctor registration, 250K practitioners) -βœ“ NMC (nurse registration, 700K practitioners) -βœ“ Companies House Directors (existing API enhancement) -βœ“ GOV.UK Regulated Professions (enrichment layer) - -EXPECTED OUTCOMES: -βœ“ 500+ signups in first month -βœ“ 10%+ weekly active check rate -βœ“ 85%+ feature satisfaction -βœ“ 90%+ accuracy on fraud detection - -================================================================================ -COMPETITIVE LANDSCAPE ANALYSIS -================================================================================ - -COMPETITOR FEATURES OFFERED TrueCV ADVANTAGE -───────────────────────────────────────────────────────────── -Workable ATS + basic screening HEDD integration (exclusive) -Deel Global hiring + screening UK-specific stack -Checkr Background checks + DBS Timeline fraud detection -Verifile Pre-employment screening Healthcare niche dominance -Veriff Identity verification CV-focused approach - -MARKET GAP: -No existing competitor integrates: -- HEDD degree verification -- GMC/NMC healthcare registers -- Timeline fraud detection -- Companies House director verification -β†’ TrueCV is only player filling this gap - -MOAT BUILDING: -- Deep integrations difficult to replicate (6+ months each) -- Network effects as data accumulates -- Regulatory compliance/audit trail = switching costs -- Vertical dominance in healthcare (first-mover) - -================================================================================ -FRAUD DETECTION COVERAGE -================================================================================ - -FRAUD TYPE DETECTION RATE PHASE -──────────────────────────────────────────────────────────── -Fake/False Degrees 90%+ Phase 1 -Employment Date Falsification 80%+ Phase 1 -Directorship False Claims 95%+ Phase 1 -Job Title Inflation Partial Phase 1 -Exaggerated Qualifications 85%+ Phase 2 -Professional Certification Fraud 95%+ Phase 2 -Timeline Gaps/Overlaps 85%+ Phase 1 - -PHASE 1 COVERAGE: ~80% of common fraud patterns - -================================================================================ -GO-TO-MARKET STRATEGY -================================================================================ - -PRIMARY CHANNELS: -1. Direct Sales (target: agency owners, HR directors) - Expected conversion: 5-8% - Sales cycle: 2-4 weeks - -2. Partnerships (ATS integrations, background check white-label) - Expected impact: +30% user acquisition - -3. Content & SEO (blog, case studies, webinars) - Expected impact: +20% organic users - -4. Vertical Specialists (healthcare, finance, legal recruiters) - Expected impact: +25% high-value customers - -CUSTOMER TIERS: -β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” -β”‚ TIER PRICE/MO TARGET CUSTOMER β”‚ -β”‚ ─────────────────────────────────────────────────── β”‚ -β”‚ Free Β£0 Solo recruiters β”‚ -β”‚ Professional Β£49/month Small agencies (50-200) β”‚ -β”‚ Enterprise Β£199/month Large orgs (200+) β”‚ -β”‚ API/Platform Β£1,000/mo Integration partners β”‚ -β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ - -PRICING UNIT ECONOMICS: -- Customer Acquisition Cost (CAC): Β£150-300 -- Average Revenue Per User (ARPU): Β£60-120/month -- Payback Period: 2-4 months -- LTV:CAC Ratio: 4:1+ (healthy SaaS benchmark) - -================================================================================ -TEAM REQUIREMENTS -================================================================================ - -PHASE 1 (Q1 2026): -βœ“ Backend Engineer (Lead): Full-time 8 weeks - HEDD integration -βœ“ Backend Engineer (Secondary): Full-time 8 weeks - Healthcare + Timeline -βœ“ QA Engineer: Part-time (weeks 2-3) -βœ“ Product Manager: Full-time (coordination) -βœ“ Marketing Lead: Part-time 50% (content & outreach) - -PHASE 2 (Q2 2026) ADD: -βœ“ Full-Stack Engineer (vertical expansion) -βœ“ Sales/BD Lead (partnership development) - -PHASE 3 (Q3 2026) ADD: -βœ“ Customer Success Manager -βœ“ Data Analyst (metrics/LTV) - -ESTIMATED BUDGET: -Phase 1: Β£40-50K (8 weeks, 2 engineers + support) - -================================================================================ -RISK ASSESSMENT & MITIGATIONS -================================================================================ - -RISK PROBABILITY SEVERITY MITIGATION -────────────────────────────────────────────────────────────────── -HEDD API Access Delayed MEDIUM MEDIUM Scraper fallback -GMC Blocks Scraping LOW LOW Request official API -Market Adoption Slow MEDIUM HIGH Focus healthcare 1st -Regulatory Gatekeeping MEDIUM MEDIUM Partner with vendors early -Competitor Response MEDIUM MEDIUM First-mover advantage - -CONTINGENCY PLANS: -- If HEDD API denied: Use web portal integration (3-day fallback) -- If GMC API denied: Deploy scraper (5-7 days dev) -- If market adoption slow: Pivot to healthcare vertical (faster wins) -- If regulatory delays: Partner with established vendors (vendor risk) - -================================================================================ -30-DAY ACTION PLAN -================================================================================ - -WEEK 1 - SETUP & INITIATION -β–‘ Email HEDD (partnerships@hedd.ac.uk) requesting API access -β–‘ Email GMC (digital@gmc-uk.org) requesting verification API -β–‘ Email NMC requesting verification capabilities -β–‘ Allocate 2 engineers to Phase 1 development -β–‘ Identify 3-5 recruitment agency beta partners -β–‘ Set up development environment - -WEEK 2-3 - DEVELOPMENT BEGINS -β–‘ Receive HEDD credentials (or begin scraper development) -β–‘ Start HEDD integration development -β–‘ Begin Companies House enhancement code -β–‘ Begin healthcare register scraper development -β–‘ Begin enhanced timeline analysis implementation -β–‘ Set up CI/CD pipeline for testing - -WEEK 4 - FEATURE INTEGRATION -β–‘ Complete HEDD client and verification service -β–‘ Complete healthcare register scrapers -β–‘ Complete timeline analysis enhancement -β–‘ Complete director verification service -β–‘ Deploy to test environment - -WEEK 5 - BETA TESTING -β–‘ Deploy beta environment -β–‘ Onboard beta partner agencies (3-5 companies) -β–‘ Conduct user testing -β–‘ Collect feedback on UX and feature value -β–‘ Document edge cases and issues - -WEEK 6-7 - REFINEMENT -β–‘ Iterate based on beta feedback -β–‘ Fix bugs and refine accuracy -β–‘ Finalize UI/UX for public version -β–‘ Prepare marketing materials -β–‘ Brief sales team on features - -WEEK 8 - PUBLIC LAUNCH -β–‘ Final QA sign-off -β–‘ Deploy to production -β–‘ Public launch announcement -β–‘ Press/analyst outreach -β–‘ Sales outreach to prospects -β–‘ Monitor for production issues - -================================================================================ -SUCCESS CRITERIA (POST-PHASE 1) -================================================================================ - -MUST-HAVES (Gate for Phase 2): -βœ“ HEDD integration live and functional -βœ“ Timeline fraud detection enhanced -βœ“ Companies House director verification working -βœ“ GMC/NMC healthcare checks live -βœ“ 500+ public signups within first month -βœ“ 10%+ weekly active check rate -βœ“ <5% API error rate -βœ“ Zero critical production incidents - -NICE-TO-HAVES (Excellence targets): -βœ“ 85%+ user satisfaction score (NPS >40) -βœ“ Media/analyst coverage -βœ“ 5+ paying customers (Β£2-5K MRR) -βœ“ Documented case studies -βœ“ 10+ recruitment agencies in beta - -RED FLAGS (Reassess strategy if occurring): -βœ— <100 signups after public launch -βœ— HEDD access denied AND scraper fails -βœ— <3 beta partners willing to participate -βœ— >10% API error rate or frequent outages -βœ— <20% weekly active rate -βœ— Market research shows insufficient demand - -================================================================================ -NEXT STEPS FOR STAKEHOLDERS -================================================================================ - -FOR EXECUTIVES/INVESTORS: -1. Review EXECUTIVE_SUMMARY.md (5 minutes) -2. Review QUICK_REFERENCE.md for metrics (3 minutes) -3. Review Financial Projections in UK_MARKET_STRATEGY.md (5 minutes) -4. DECISION: Approve Phase 1 go-ahead? (Yes/No) -5. If YES: Approve budget (Β£40-50K) and resource allocation - -FOR PRODUCT MANAGERS: -1. Read entire UK_FEATURE_PRIORITIZATION.md -2. Read GTM section of UK_MARKET_STRATEGY.md -3. Read API_RESOURCES_AND_CONTACTS.md for API status -4. Begin API access coordination (email HEDD, GMC, NMC) -5. Start recruiting beta partners this week - -FOR ENGINEERING LEADS: -1. Read PHASE1_TECHNICAL_IMPLEMENTATION.md (full - 40+ minutes) -2. Read API_RESOURCES_AND_CONTACTS.md (full - 20+ minutes) -3. Study the 4 code examples for each feature -4. Set up development environment -5. Plan sprint structure for 8-week delivery -6. Identify any blockers or concerns -7. Brief team on Phase 1 scope and timeline - -FOR SALES/MARKETING: -1. Read UK_MARKET_STRATEGY.md (full) -2. Review Customer Personas section -3. Review GTM Channels section -4. Begin designing marketing materials -5. Create sales talking points -6. Prepare for "degree verification" messaging - -================================================================================ -DOCUMENT LOCATIONS -================================================================================ - -All files have been created in: /mnt/d/Git/TrueCV/ - -FILE STRUCTURE: -/mnt/d/Git/TrueCV/QUICK_REFERENCE.md (Start here) -/mnt/d/Git/TrueCV/EXECUTIVE_SUMMARY.md (Execs/investors) -/mnt/d/Git/TrueCV/UK_FEATURE_PRIORITIZATION.md (Product) -/mnt/d/Git/TrueCV/PHASE1_TECHNICAL_IMPLEMENTATION.md (Engineering) -/mnt/d/Git/TrueCV/UK_MARKET_STRATEGY.md (Strategy/Sales/Marketing) -/mnt/d/Git/TrueCV/API_RESOURCES_AND_CONTACTS.md (Implementation) -/mnt/d/Git/TrueCV/README_UK_STRATEGY.md (Navigation) -/mnt/d/Git/TrueCV/INDEX.md (Reference index) - -FILES READY FOR USE IMMEDIATELY. - -================================================================================ -FINAL RECOMMENDATIONS -================================================================================ - -STRATEGIC DECISION: -βœ“ STRONGLY RECOMMEND proceeding with Phase 1 immediately - -RATIONALE: -βœ“ Market gap is real and valuable (Β£3.3M addressable) -βœ“ Competitive advantage is sustainable (6-12 month window) -βœ“ Financial model is attractive (break-even in 6-7 months) -βœ“ Technical feasibility is high (APIs accessible, proven patterns) -βœ“ Team requirements are reasonable (2 engineers for 8 weeks) -βœ“ Risk mitigation strategies are solid (fallbacks in place) - -CRITICAL SUCCESS FACTORS: -1. Secure HEDD API access (or verify scraper approach works) -2. Recruit 3-5 beta partners committed to testing -3. Maintain 8-week timeline (no scope creep) -4. Achieve 500+ signups in first month (viral/organic growth) -5. Monitor unit economics carefully (adjust pricing if needed) - -NEXT DECISION POINT: -Post-Phase 1 (Week 8): Should we proceed to Phase 2 (Q2) and Phase 3 (Q3)? -- SUCCESS: Yes, proceed with professional bodies expansion -- MODERATE: Yes, but revisit roadmap based on market feedback -- WEAK: Pause, reassess market viability - -================================================================================ -CONTACT INFORMATION -================================================================================ - -STRATEGIC QUESTIONS: -β†’ Product Leadership: [Assign contact] - -MARKET ANALYSIS QUESTIONS: -β†’ Marketing/Sales: [Assign contact] - -TECHNICAL FEASIBILITY QUESTIONS: -β†’ Engineering Lead: [Assign contact] - -FINANCIAL MODEL QUESTIONS: -β†’ Finance/CFO: [Assign contact] - -================================================================================ -DOCUMENT VERSION & CONTROL -================================================================================ - -VERSION: 1.0 -CREATED: January 20, 2026 -LAST UPDATED: January 20, 2026 -STATUS: READY FOR EXECUTION - -DISTRIBUTION: Internal Only -RECIPIENTS: Product, Engineering, Leadership - -PLANNED UPDATES: -- April 1, 2026: Post-Phase 1 launch retrospective -- July 1, 2026: Post-Phase 2 launch update -- October 1, 2026: Post-Phase 3 launch update -- January 1, 2027: Year 1 retrospective + Year 2 planning - -================================================================================ -CLOSING NOTES -================================================================================ - -This strategy document represents a comprehensive analysis of TrueCV's -opportunity in the UK CV verification market. It provides: - -βœ“ Clear market opportunity quantification (Β£3.3M addressable) -βœ“ Competitive advantage analysis (exclusive features) -βœ“ Detailed technical implementation plans (production-ready code) -βœ“ Go-to-market strategy (4 sales channels) -βœ“ Financial projections (Year 1 break-even) -βœ“ Risk mitigation (contingency plans) -βœ“ 30-day action plan (immediate next steps) - -The strategy is: -βœ“ Data-driven (based on market research and API analysis) -βœ“ Actionable (contains concrete implementation details) -βœ“ Realistic (includes risk assessment and fallbacks) -βœ“ Executable (fits within 8-week Phase 1 timeline) - -Next step: **Leadership decision on Phase 1 go-ahead** - -If approved, Phase 1 can launch by Week 2 of this plan. - -================================================================================ -END OF DELIVERY SUMMARY -================================================================================ - -Questions? Contact [Product Leadership] -More details? See INDEX.md for document navigation -Ready to execute? See 30-DAY ACTION PLAN above - diff --git a/DEPLOYMENT-GUIDE.md b/DEPLOYMENT-GUIDE.md deleted file mode 100644 index 226df37..0000000 --- a/DEPLOYMENT-GUIDE.md +++ /dev/null @@ -1,447 +0,0 @@ -# TrueCV Production Deployment Guide - -A low-budget guide to launching TrueCV as a professional, secure offering. - ---- - -## Budget Summary - -| Component | Monthly Cost | Notes | -|-----------|-------------|-------| -| Azure App Service (B1) | ~Β£10 | 1.75GB RAM, custom domain, SSL | -| Azure SQL (Basic) | ~Β£4 | 2GB, 5 DTUs - upgrade as needed | -| Azure Blob Storage | ~Β£1 | Pay per GB stored | -| Domain name | ~Β£10/year | .com or .co.uk | -| **Total** | **~Β£15-20/month** | Scales with usage | - -Alternative: A single Β£5-10/month VPS (Hetzner, DigitalOcean) can run everything if you're comfortable with Linux administration. - ---- - -## Phase 1: Pre-Launch Checklist - -### 1.1 Stripe Setup (Required for Payments) - -1. Create a Stripe account at [stripe.com](https://stripe.com) -2. Complete business verification (required for live payments) -3. Create two Products in Stripe Dashboard: - - **Professional**: Β£49/month recurring - - **Enterprise**: Β£199/month recurring -4. Copy the Price IDs (start with `price_`) to your config -5. Configure the Customer Portal: - - Dashboard β†’ Settings β†’ Billing β†’ Customer Portal - - Enable: Update payment methods, Cancel subscriptions, View invoices -6. Set up webhook endpoint (after deployment): - - Dashboard β†’ Developers β†’ Webhooks β†’ Add endpoint - - URL: `https://yourdomain.com/api/stripe/webhook` - - Events: `checkout.session.completed`, `customer.subscription.updated`, `customer.subscription.deleted`, `invoice.payment_failed` -7. Copy the webhook signing secret to your config - -### 1.2 External API Keys - -| Service | Purpose | How to Get | -|---------|---------|-----------| -| Companies House | Company verification | [developer.company-information.service.gov.uk](https://developer.company-information.service.gov.uk) - Free | -| Anthropic (Claude) | CV parsing & analysis | [console.anthropic.com](https://console.anthropic.com) - Pay per use | - -### 1.3 Domain & Email - -1. Register a domain (Cloudflare, Namecheap, or similar) -2. Set up a professional email: - - Budget option: Zoho Mail free tier (5 users) - - Better option: Google Workspace (Β£5/user/month) -3. Configure SPF, DKIM, DMARC records for email deliverability - ---- - -## Phase 2: Infrastructure Setup - -### Option A: Azure (Recommended for .NET) - -#### App Service + Azure SQL - -```bash -# Install Azure CLI, then: -az login - -# Create resource group -az group create --name truecv-prod --location uksouth - -# Create App Service plan (B1 = ~Β£10/month) -az appservice plan create \ - --name truecv-plan \ - --resource-group truecv-prod \ - --sku B1 \ - --is-linux - -# Create web app -az webapp create \ - --name truecv-app \ - --resource-group truecv-prod \ - --plan truecv-plan \ - --runtime "DOTNETCORE:8.0" - -# Create SQL Server -az sql server create \ - --name truecv-sql \ - --resource-group truecv-prod \ - --location uksouth \ - --admin-user truecvadmin \ - --admin-password - -# Create database (Basic = ~Β£4/month) -az sql db create \ - --name truecv-db \ - --server truecv-sql \ - --resource-group truecv-prod \ - --service-objective Basic - -# Create storage account for CV files -az storage account create \ - --name truecvstorage \ - --resource-group truecv-prod \ - --location uksouth \ - --sku Standard_LRS -``` - -#### Environment Variables (App Service Configuration) - -Set these in Azure Portal β†’ App Service β†’ Configuration β†’ Application settings: - -``` -ConnectionStrings__DefaultConnection=Server=truecv-sql.database.windows.net;Database=truecv-db;User Id=truecvadmin;Password=;Encrypt=True; -ConnectionStrings__HangfireConnection= -Stripe__SecretKey=sk_live_xxx -Stripe__PublishableKey=pk_live_xxx -Stripe__WebhookSecret=whsec_xxx -Stripe__PriceIds__Professional=price_xxx -Stripe__PriceIds__Enterprise=price_xxx -Anthropic__ApiKey=sk-ant-xxx -CompaniesHouse__ApiKey=xxx -AzureBlob__ConnectionString= -AzureBlob__ContainerName=cvfiles -``` - -### Option B: VPS (Budget Alternative) - -A Β£5-10/month VPS from Hetzner, DigitalOcean, or Vultr can run everything: - -1. Ubuntu 22.04 LTS -2. Install Docker and Docker Compose -3. Use the existing `docker-compose.yml` with modifications: - -```yaml -# docker-compose.prod.yml -version: '3.8' -services: - web: - build: . - ports: - - "5000:8080" - environment: - - ASPNETCORE_ENVIRONMENT=Production - - ConnectionStrings__DefaultConnection=Server=db;Database=TrueCV;User Id=sa;Password=${DB_PASSWORD};TrustServerCertificate=True - depends_on: - - db - restart: always - - db: - image: mcr.microsoft.com/mssql/server:2022-latest - environment: - - ACCEPT_EULA=Y - - SA_PASSWORD=${DB_PASSWORD} - volumes: - - sqldata:/var/opt/mssql - restart: always - - caddy: # Reverse proxy with automatic HTTPS - image: caddy:2 - ports: - - "80:80" - - "443:443" - volumes: - - ./Caddyfile:/etc/caddy/Caddyfile - - caddy_data:/data - restart: always - -volumes: - sqldata: - caddy_data: -``` - -``` -# Caddyfile -yourdomain.com { - reverse_proxy web:5000 -} -``` - ---- - -## Phase 3: Security Hardening - -### 3.1 Application Security (Critical) - -#### Secrets Management -- **Never** commit secrets to git -- Use Azure Key Vault or environment variables -- Rotate API keys quarterly - -#### HTTPS Enforcement -Already configured in `Program.cs`: -```csharp -app.UseHsts(); -app.UseHttpsRedirection(); -``` - -#### Content Security Policy -Add to `Program.cs`: -```csharp -app.Use(async (context, next) => -{ - context.Response.Headers.Append("X-Content-Type-Options", "nosniff"); - context.Response.Headers.Append("X-Frame-Options", "DENY"); - context.Response.Headers.Append("X-XSS-Protection", "1; mode=block"); - context.Response.Headers.Append("Referrer-Policy", "strict-origin-when-cross-origin"); - context.Response.Headers.Append("Permissions-Policy", "camera=(), microphone=(), geolocation=()"); - await next(); -}); -``` - -#### Rate Limiting -Add to `Program.cs`: -```csharp -builder.Services.AddRateLimiter(options => -{ - options.GlobalLimiter = PartitionedRateLimiter.Create(context => - RateLimitPartition.GetFixedWindowLimiter( - partitionKey: context.User.Identity?.Name ?? context.Request.Headers.Host.ToString(), - factory: _ => new FixedWindowRateLimiterOptions - { - AutoReplenishment = true, - PermitLimit = 100, - Window = TimeSpan.FromMinutes(1) - })); -}); - -// In middleware pipeline -app.UseRateLimiter(); -``` - -### 3.2 Database Security - -1. **Use strong passwords** (20+ characters, random) -2. **Enable Azure SQL firewall** - allow only App Service IP -3. **Enable Transparent Data Encryption** (on by default in Azure) -4. **Regular backups** - Azure does this automatically (7-day retention on Basic tier) - -### 3.3 File Storage Security - -CV files contain sensitive data: - -1. **Private container** - never allow public blob access -2. **SAS tokens** - generate time-limited URLs for downloads -3. **Encryption at rest** - enabled by default in Azure Storage -4. **Consider encryption at application level** for extra protection - -### 3.4 Authentication Security - -Already using ASP.NET Identity with good defaults. Verify these settings: - -```csharp -// In Program.cs - identity configuration -builder.Services.Configure(options => -{ - options.Password.RequiredLength = 12; - options.Password.RequireDigit = true; - options.Password.RequireLowercase = true; - options.Password.RequireUppercase = true; - options.Password.RequireNonAlphanumeric = true; - options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(15); - options.Lockout.MaxFailedAccessAttempts = 5; -}); -``` - -### 3.5 Stripe Webhook Security - -Already implemented - verify signature on every webhook: -```csharp -// In StripeService.cs - this is critical -stripeEvent = EventUtility.ConstructEvent(json, signature, _settings.WebhookSecret); -``` - ---- - -## Phase 4: Compliance & Legal - -### 4.1 GDPR Compliance (Required for UK/EU) - -1. **Privacy Policy** - create and link in footer - - What data you collect (CVs, email, payment info) - - How long you retain it - - User rights (access, deletion, portability) - - Third parties (Stripe, Anthropic, Companies House) - -2. **Cookie Consent** - add banner for analytics cookies - -3. **Data Retention Policy**: - - CVs: Delete after 30 days or on user request - - Accounts: Retain while active, delete 90 days after closure - - Payment data: Stripe handles this (PCI compliant) - -4. **Right to Deletion** - implement account deletion feature - -5. **Data Processing Agreement** - required if you have business customers - -### 4.2 Terms of Service - -Cover: -- Service description and limitations -- Acceptable use policy -- Payment terms and refund policy -- Liability limitations -- Dispute resolution - -### 4.3 PCI Compliance - -Stripe Checkout handles card data - you never touch it. This puts you in **PCI SAQ-A** (simplest level): -- Use only Stripe Checkout or Elements -- Serve pages over HTTPS -- Don't store card numbers - ---- - -## Phase 5: Monitoring & Operations - -### 5.1 Application Monitoring - -#### Free Option: Application Insights (Azure) -```csharp -// In Program.cs -builder.Services.AddApplicationInsightsTelemetry(); -``` - -#### Budget Option: Seq + Serilog -```csharp -// Already using Serilog - add Seq sink -Log.Logger = new LoggerConfiguration() - .WriteTo.Seq("http://localhost:5341") // Self-hosted Seq - .CreateLogger(); -``` - -### 5.2 Uptime Monitoring - -Free options: -- [UptimeRobot](https://uptimerobot.com) - 50 free monitors -- [Freshping](https://freshping.io) - 50 free monitors - -Set up alerts for: -- Homepage availability -- API health endpoint -- Webhook endpoint - -### 5.3 Error Tracking - -Add a health check endpoint: -```csharp -// In Program.cs -app.MapGet("/health", () => Results.Ok(new { status = "healthy", timestamp = DateTime.UtcNow })); -``` - -### 5.4 Backup Strategy - -| Component | Backup Method | Frequency | -|-----------|--------------|-----------| -| Database | Azure automated backups | Continuous (7-day retention) | -| CV files | Azure Blob redundancy (LRS) | Automatic | -| Config | Git repository | On change | - -For VPS: Set up daily database dumps to offsite storage. - ---- - -## Phase 6: Launch Checklist - -### Pre-Launch (1 week before) - -- [ ] All environment variables configured -- [ ] Database migrations applied -- [ ] Stripe products created and tested -- [ ] Webhook endpoint configured and tested -- [ ] SSL certificate active -- [ ] Privacy Policy and Terms published -- [ ] Test complete user journey (signup β†’ payment β†’ CV check) -- [ ] Test subscription cancellation flow -- [ ] Error pages customised (404, 500) - -### Launch Day - -- [ ] Switch Stripe to live mode (change API keys) -- [ ] Verify webhook is receiving live events -- [ ] Monitor error logs closely -- [ ] Test a real payment (refund yourself) - -### Post-Launch (First Week) - -- [ ] Monitor for errors daily -- [ ] Check Stripe dashboard for failed payments -- [ ] Respond to support queries within 24 hours -- [ ] Gather user feedback - ---- - -## Phase 7: Scaling (When Needed) - -Start small and scale based on actual usage: - -| Trigger | Action | Cost Impact | -|---------|--------|-------------| -| Response time > 2s | Upgrade App Service to B2/B3 | +Β£10-30/month | -| Database DTU > 80% | Upgrade to Standard S0 | +Β£15/month | -| Storage > 5GB | Already pay-per-use | Minimal | -| > 1000 users | Add Redis for caching | +Β£15/month | - ---- - -## Quick Reference: Configuration Files - -### appsettings.Production.json -```json -{ - "Logging": { - "LogLevel": { - "Default": "Warning", - "Microsoft.AspNetCore": "Warning" - } - }, - "AllowedHosts": "yourdomain.com;www.yourdomain.com" -} -``` - -Sensitive values should be in environment variables, not this file. - ---- - -## Support & Resources - -- [Azure App Service Docs](https://learn.microsoft.com/en-us/azure/app-service/) -- [Stripe Documentation](https://stripe.com/docs) -- [ASP.NET Core Security](https://learn.microsoft.com/en-us/aspnet/core/security/) -- [OWASP Top 10](https://owasp.org/www-project-top-ten/) - ---- - -## Estimated Time to Launch - -| Phase | Effort | -|-------|--------| -| Stripe setup | 1-2 hours | -| Infrastructure | 2-4 hours | -| Security hardening | 2-3 hours | -| Legal pages | 2-4 hours (use templates) | -| Testing | 2-4 hours | -| **Total** | **1-2 days** | - ---- - -*Document version: 1.0 | Last updated: January 2026* diff --git a/EXECUTIVE_SUMMARY.md b/EXECUTIVE_SUMMARY.md deleted file mode 100644 index ea26097..0000000 --- a/EXECUTIVE_SUMMARY.md +++ /dev/null @@ -1,236 +0,0 @@ -# TrueCV UK Market Opportunity - Executive Summary - -**Prepared for:** Product Leadership -**Date:** January 2026 -**Priority:** High - Q1 2026 Implementation Opportunity - ---- - -## The Opportunity - -**UK CV fraud costs employers Β£4.2B annually. Current verification takes 5-10 days. TrueCV can do it in seconds.** - -### Market Problem -- **1 in 5 UK candidates** falsify university degrees -- **24% of screened CVs** fail verification checks -- **40% of CV lies** involve qualification exaggeration -- **Regulatory risk:** Companies face legal liability in healthcare, finance, legal sectors -- **AI-accelerated fraud:** Deepfakes and synthetic identities emerging in 2026 - -### Current Solution Gaps -- Education verification requires contacting universities individually (10+ days per candidate) -- Professional registration checks vary by profession with no central API -- No integrated view connecting employment, education, and professional credentials -- Manual processes don't scale for high-volume recruiters - ---- - -## TrueCV's Solution - -**Integrated CV verification platform leveraging UK-specific data sources:** - -| Feature | Coverage | Implementation | Impact | -|---|---|---|---| -| **HEDD Degree Verification** | UK degrees (140+ universities) | Q1 2026 (2-3 weeks) | Detects 90%+ of fake degrees | -| **Healthcare Registers** (GMC/NMC) | Doctors, nurses, midwives | Q1 2026 (1 week) | Dominates healthcare niche | -| **Timeline Fraud Detection** | Employment/education overlaps, gaps | Q1 2026 (1 week) | Catches 80%+ of timeline lies | -| **Company Director Verification** | Self-employment claims (Companies House) | Q1 2026 (1-2 weeks) | Validates 15-20% of CVs | -| **Professional Bodies** | ICAEW, SRA, IET, RIBA | Q2 2026 (4 weeks) | Expands to regulated professions | -| **DBS Integration** | Criminal record checks | Q3 2026 (8 weeks) | Compliance + revenue stream | - ---- - -## Competitive Advantage - -**TrueCV is the ONLY CV verification tool that:** - -1. βœ… Integrates with HEDD (no competitors do) -2. βœ… Targets healthcare recruiting niche (GMC/NMC) -3. βœ… Verifies director claims (Companies House cross-check) -4. βœ… Detects timeline fraud across education-employment boundary -5. βœ… UK-first approach vs. global platforms - -**Nearest competitors** (Workable, Deel, Checkr) focus on broad background screening, not CV verification. - ---- - -## Market Size - -### Addressable Market -- **18,300 potential customers** (recruitment agencies + corporate HR) -- **Β£2.8B UK pre-employment screening market** -- **~Β£3.3M serviceable opportunity** for TrueCV platform - -### Year 1 Revenue Target -- **50-75 paying customers** at Β£49-199/month -- **Β£30-240K revenue** Year 1 (conservative-growth scenario) -- **Β£113K-226K annualized** by end of Year 1 - -### Unit Economics -- **CAC:** Β£150-300 (organic/partner-led) -- **ARPU:** Β£60-120/month -- **Payback:** 2-4 months -- **Gross margin:** 75-80% - ---- - -## Implementation Plan - -### Phase 1: MVP (Q1 2026 - 8 weeks) -**Deliverables:** -1. HEDD degree verification (real-time + manual review tracking) -2. GMC/NMC healthcare register checks -3. Enhanced timeline analysis (education/employment sequencing) -4. Companies House director verification -5. Public beta launch - -**Team:** 2 backend engineers, 1 QA, 1 PM, 1 marketing - -**Go-to-Market:** Beta with 3-5 recruitment agencies β†’ Public launch β†’ Press/analyst outreach - -**Success Metrics:** -- 500+ signups in first month -- 10%+ weekly active check rate -- 85%+ feature satisfaction - -### Phase 2: Professional Bodies (Q2 2026) -- ICAEW, SRA, IET, RIBA integration -- Vertical market expansion -- +40% user growth -- +3x engagement - -### Phase 3: Compliance & Regulatory (Q3 2026) -- HMRC payroll verification -- DBS check integration (partnership) -- Enterprise/platform tier -- Recurring revenue + commission model - ---- - -## Key Dependencies & Risks - -### Critical Path Items -1. βœ… **HEDD API Access** - Start conversations NOW - - Fallback: Web portal integration (still works) - - Timeline: Approval expected 2-4 weeks - -2. βœ… **GMC/NMC Verification** - Request official API access - - Fallback: Web scraper (more fragile) - - Timeline: Scraper approach = 1 week dev - -3. βœ… **Companies House API** - Already have access - - Enhancement to existing client = 1-2 weeks - -### Risks & Mitigations - -| Risk | Probability | Mitigation | -|---|---|---| -| HEDD API delayed | Medium | Use web portal integration in parallel | -| GMC/NMC scraper blocked | Low | Request official API; provide value-add | -| Slow market adoption | Medium | Focus vertically (healthcare first) | -| Regulatory gatekeeping | Medium | Partner with established vendors early | - ---- - -## Financial Projections - -### Conservative Scenario (50 customers) -- **MRR (end-of-year):** Β£9,455 -- **Annualized:** Β£113,460 -- **Costs:** Β£220K/year -- **Result:** Approaching break-even - -### Growth Scenario (100 customers) -- **MRR (end-of-year):** Β£18,910 -- **Annualized:** Β£226,920 -- **Gross margin:** 75% = Β£170K+ operational profit -- **Result:** Profitable by month 9 - -### Break-even Point -- **Customers needed:** 24-30 at blended ARPU of Β£80/month -- **Timeline:** Expected by month 6-7 - ---- - -## Why Now? - -1. **Market Conditions Perfect:** - - UK CV fraud peaking (1 in 5 have fake degrees) - - AI-generated fraud emerging (accelerating urgency) - - HEDD now mature platform (140+ universities on network) - - GMC/NMC registers fully digital (scraping viable) - -2. **No Competitive Threat:** - - Workable/Deel don't focus on CV verification - - Checkr/Verifile are manual processes - - No integrated UK player in market - -3. **Technical Feasibility:** - - HEDD integration straightforward - - Scraper patterns proven (NHS, Companies House) - - Timeline analysis already implemented - ---- - -## Recommendation - -**PROCEED with Phase 1 implementation immediately.** - -### Next 30 Days -- [ ] Secure HEDD API access (contact Prospects/Jisc) -- [ ] Recruit 3-5 beta partner agencies -- [ ] Begin HEDD client development (Day 1) -- [ ] Finalize consent/compliance workflows - -### Success Metrics (Month 1) -- HEDD integration code complete -- 3+ beta partners onboarded -- Timeline analysis enhanced -- Public beta announcement scheduled - -### Decision Gate (Month 2) -- Evaluate adoption rate (target: 100+ signups) -- Assess feature-market fit with agencies -- Validate revenue model (pricing feedback) -- Proceed to Phase 2 if metrics green - ---- - -## Appendix: Detailed Feature Priorities - -### Ranked by: Detection Value Γ— Implementation Feasibility - -**TIER 1 (Start immediately):** -1. HEDD Degree Verification - 9.5/10 impact, medium effort -2. Timeline Fraud Detection - 7/10 impact, low effort (extending existing) -3. GMC/NMC Healthcare Registers - 6.5/10 impact, low effort - -**TIER 2 (Weeks 3-5):** -4. Companies House Director Verification - 7.5/10 impact, low effort (extending existing) - -**TIER 3 (Q2):** -5. Professional Body Registers - 6.5-7/10 impact, medium effort -6. GOV.UK Regulated Professions Enrichment - 5/10 impact, very low effort - -**TIER 4 (Q3+):** -7. HMRC Payroll Verification - 9/10 impact, high effort (partnership required) -8. DBS Integration - 8.5/10 impact, high effort (partnership + compliance) - ---- - -## Questions for Stakeholders - -1. **Timeline:** Can we commit 2 engineers full-time for 8 weeks? -2. **HEDD Access:** Will you sponsor approach to HEDD/Prospects for API partnership? -3. **Beta Partners:** Do we have recruitment agency relationships for beta testing? -4. **Revenue Model:** Approve tiered pricing (Free/Pro/Enterprise)? -5. **International:** After UK success, expand to Ireland/Australia? - ---- - -## Contact & Next Steps - -**Product Lead:** [Name] - TrueCV Product Strategy -**Engineering Lead:** [Name] - Phase 1 Technical Implementation - -**Next Meeting:** [Date] - Review technical implementation plan + finalize go-to-market diff --git a/INDEX.md b/INDEX.md deleted file mode 100644 index 86301d7..0000000 --- a/INDEX.md +++ /dev/null @@ -1,492 +0,0 @@ -# TrueCV UK Strategy - Complete Document Index - -**Total Documents:** 6 comprehensive strategy guides -**Total Pages:** ~200 pages -**Total Read Time:** 2-3 hours (depending on role) - ---- - -## Document Inventory - -### 1. **QUICK_REFERENCE.md** ⭐ START HERE (5 minutes) -**Size:** 3 pages -**Format:** Quick-reference card format -**Best For:** All audiences - desk reference -**Contains:** -- Market opportunity summary -- Competitive advantage matrix -- Phase 1 timeline (visual) -- Feature ranking (visual) -- API status table -- Pricing strategy -- Success metrics -- Fraud detection coverage -- 30-day action plan -- Team requirements -- Risk dashboard -- Customer personas (condensed) -- Sales channels -- Decision framework -- Key contacts - -**Action Items:** Print this for your desk during planning - ---- - -### 2. **EXECUTIVE_SUMMARY.md** (5-10 minutes) -**Size:** 5 pages -**Format:** Executive brief -**Best For:** Executives, Investors, Decision-makers -**Contains:** -- Market opportunity (Β£4.2B fraud cost) -- Problem statement -- Solution overview (4 features) -- Competitive advantage -- Market size & revenue targets -- Implementation plan (3 phases) -- Key dependencies & risks -- Financial projections (2 scenarios) -- Why now analysis -- Recommendation -- Appendix with detailed feature priorities - -**Next Document:** UK_MARKET_STRATEGY.md (for GTM details) - ---- - -### 3. **UK_FEATURE_PRIORITIZATION.md** (20-30 minutes) -**Size:** 25-30 pages -**Format:** Detailed technical analysis -**Best For:** Product Managers, Engineering Leads -**Contains:** -- Executive summary -- Market context (fraud patterns & statistics) -- Available UK data sources (detailed analysis of 8 APIs) -- Ranked feature prioritization (matrix format) -- Recommended implementation roadmap (3 phases) -- Feature implementation examples (code pseudocode) -- Success metrics per feature -- Risk mitigation strategies -- UK market positioning statement -- API accessibility summary table -- Next steps (this week actions) - -**Key Section:** "Ranked Feature Prioritization" (clear action priorities) - ---- - -### 4. **PHASE1_TECHNICAL_IMPLEMENTATION.md** (40-50 minutes) -**Size:** 50-60 pages -**Format:** Complete technical specification + code -**Best For:** Backend Engineers, QA Engineers -**Contains:** -- Phase 1 overview (8-week timeline) -- Feature 1: HEDD Integration (complete implementation) - - Architecture diagram - - 5 complete C# files (interfaces, services, models) - - Configuration examples - - Database considerations -- Feature 2: Enhanced Timeline Analysis (code example) -- Feature 3: Companies House Director Verification (code example) -- Feature 4: Healthcare Register Scrapers (code example) -- Dependency injection setup -- Integration examples -- Testing strategy -- Configuration checklist -- Database migration guide -- Validation checklist - -**Most Valuable:** "Phase 1a-1g" sections with production-ready code - ---- - -### 5. **UK_MARKET_STRATEGY.md** (30-40 minutes) -**Size:** 40-50 pages -**Format:** Comprehensive market strategy document -**Best For:** Product Team, Marketing, Sales, Leadership -**Contains:** -- Market opportunity analysis -- Problem statement (detailed) -- Market sizing (TAM/SAM/SOM) -- Competitive landscape (8 competitors analyzed) -- Product strategy (3 phases) -- Go-to-market strategy (4 sales channels) -- Pricing strategy (tier analysis + unit economics) -- Organizational requirements (team structure over 12 months) -- Key risks & mitigations -- 12-month success metrics -- Financial projections (conservative + growth scenarios) -- Next 30 days action plan -- Long-term vision (2-3 years, international expansion) -- Customer personas (3 detailed profiles) -- References & data sources - -**Most Valuable:** Financials section + Customer personas - ---- - -### 6. **API_RESOURCES_AND_CONTACTS.md** (20-30 minutes) -**Size:** 20-25 pages -**Format:** Practical implementation guide -**Best For:** Engineering + Product (implementation phase) -**Contains:** -- Detailed guide for 11 UK APIs - - HEDD (degree verification) - - GMC Register (doctors) - - NMC Register (nurses) - - Companies House (already integrated) - - GOV.UK Regulated Professions - - ICAEW (accountants) - - SRA (lawyers) - - IET (engineers) - - HCPC (health professionals) - - DBS Integration (partnership model) - - HMRC Payroll (restricted access) -- For each API: - - Overview & coverage - - Access information - - Contact details - - Integration methods (API vs. scraper) - - Required registration info - - Timeline for access - - Documentation links -- Implementation prioritization table -- Compliance & data protection checklist -- Email template for API requests -- Contact information for vendors - -**Most Valuable:** For getting API access - everything you need to know - ---- - -### 7. **README_UK_STRATEGY.md** (5-10 minutes) -**Size:** 8-10 pages -**Format:** Navigation guide + executive summary -**Best For:** Navigation & orientation for all audiences -**Contains:** -- Document hierarchy -- Quick navigation by role -- Key metrics at a glance -- Fraud detection coverage -- Competitive moat explanation -- Critical path dependencies -- Financial summary -- Risk mitigation -- 30-day plan (high-level) -- Recommended reading order -- Questions & decision points -- Success criteria -- File manifest -- Version history -- Key definitions & terminology -- License & confidentiality notice - -**Most Valuable:** Orientation + role-based reading paths - ---- - -## Role-Based Reading Guide - -### For Executives (20-30 minutes total) -1. **QUICK_REFERENCE.md** (5 min) - Print & keep at desk -2. **EXECUTIVE_SUMMARY.md** (10 min) - Full read -3. **UK_MARKET_STRATEGY.md** (10 min) - Market Opportunity + Financials sections only -4. **Decision:** Approve Phase 1 go-ahead? - ---- - -### For Product Managers (90 minutes total) -1. **QUICK_REFERENCE.md** (5 min) - Orientation -2. **EXECUTIVE_SUMMARY.md** (10 min) - Full read -3. **UK_FEATURE_PRIORITIZATION.md** (35 min) - Full read (PRIORITY) -4. **UK_MARKET_STRATEGY.md** (25 min) - GTM + Personas sections -5. **API_RESOURCES_AND_CONTACTS.md** (10 min) - Skim for reference -6. **PHASE1_TECHNICAL_IMPLEMENTATION.md** (5 min) - Skim architecture section only - ---- - -### For Backend Engineers (2 hours total) -1. **QUICK_REFERENCE.md** (5 min) - Context -2. **EXECUTIVE_SUMMARY.md** (5 min) - Skim only -3. **PHASE1_TECHNICAL_IMPLEMENTATION.md** (70 min) - FULL READ + study code -4. **API_RESOURCES_AND_CONTACTS.md** (30 min) - FULL READ + bookmark sections -5. **UK_FEATURE_PRIORITIZATION.md** (10 min) - Implementation examples section - ---- - -### For QA Engineers (60 minutes total) -1. **QUICK_REFERENCE.md** (5 min) -2. **EXECUTIVE_SUMMARY.md** (5 min) -3. **UK_FEATURE_PRIORITIZATION.md** (20 min) - Success metrics section -4. **PHASE1_TECHNICAL_IMPLEMENTATION.md** (30 min) - Testing & validation sections - ---- - -### For Sales/Marketing (60 minutes total) -1. **QUICK_REFERENCE.md** (5 min) - Print one -2. **EXECUTIVE_SUMMARY.md** (10 min) -3. **UK_MARKET_STRATEGY.md** (35 min) - GTM Strategy + Customer Personas + Messaging -4. **API_RESOURCES_AND_CONTACTS.md** (5 min) - Quick skim - ---- - -### For Investors/Analysts (45 minutes total) -1. **EXECUTIVE_SUMMARY.md** (10 min) - FULL READ -2. **UK_MARKET_STRATEGY.md** (30 min) - Market Opportunity, Financials, Competitive Landscape sections -3. **QUICK_REFERENCE.md** (5 min) - Risk dashboard - ---- - -## Document Cross-References - -### How to Find Information About... - -**HEDD Integration:** -- Quick overview β†’ QUICK_REFERENCE.md (API Integration Status table) -- Strategic importance β†’ EXECUTIVE_SUMMARY.md -- Detailed analysis β†’ UK_FEATURE_PRIORITIZATION.md (Section: "HEDD Degree Verification") -- Technical implementation β†’ PHASE1_TECHNICAL_IMPLEMENTATION.md (Feature 1) -- How to get access β†’ API_RESOURCES_AND_CONTACTS.md (Section 1) - -**Market Opportunity:** -- Quick version β†’ QUICK_REFERENCE.md (Market Opportunity section) -- Detailed analysis β†’ EXECUTIVE_SUMMARY.md (full document) -- Go-to-market strategy β†’ UK_MARKET_STRATEGY.md (full document) -- Customer research β†’ UK_MARKET_STRATEGY.md (Customer Personas) - -**Financial Projections:** -- Quick reference β†’ QUICK_REFERENCE.md (Financial Projections) -- Conservative scenario β†’ EXECUTIVE_SUMMARY.md -- Detailed projections β†’ UK_MARKET_STRATEGY.md (Financial Projections section) -- Unit economics β†’ UK_MARKET_STRATEGY.md (Pricing Strategy) - -**Timeline & Roadmap:** -- Quick version β†’ QUICK_REFERENCE.md (Phase 1 Roadmap) -- Executive summary β†’ EXECUTIVE_SUMMARY.md (Implementation Plan) -- Detailed roadmap β†’ UK_MARKET_STRATEGY.md (3-phase strategy) -- Technical details β†’ PHASE1_TECHNICAL_IMPLEMENTATION.md (entire document) - -**Competitive Advantage:** -- Matrix format β†’ QUICK_REFERENCE.md (Competitive Advantage) -- Analysis β†’ EXECUTIVE_SUMMARY.md (Why Now section) -- Detailed analysis β†’ UK_MARKET_STRATEGY.md (Competitive Landscape) -- Moat explanation β†’ README_UK_STRATEGY.md - -**Team & Resources:** -- Summary β†’ QUICK_REFERENCE.md (Team Requirements) -- Detailed breakdown β†’ UK_MARKET_STRATEGY.md (Organizational Requirements) -- Implementation details β†’ PHASE1_TECHNICAL_IMPLEMENTATION.md - -**Risk Management:** -- Dashboard β†’ QUICK_REFERENCE.md (Risk Dashboard) -- Brief mitigation β†’ EXECUTIVE_SUMMARY.md (Key Dependencies & Risks) -- Detailed analysis β†’ UK_FEATURE_PRIORITIZATION.md (Risk Mitigation) -- Market risks β†’ UK_MARKET_STRATEGY.md (Key Risks & Mitigations) - -**API Information:** -- Status table β†’ QUICK_REFERENCE.md (API Integration Status) -- Accessibility overview β†’ UK_FEATURE_PRIORITIZATION.md (API Accessibility Summary) -- Detailed guides β†’ API_RESOURCES_AND_CONTACTS.md (entire document) - ---- - -## Information Density by Document - -| Document | Pages | Detail Level | Best For | -|---|---|---|---| -| QUICK_REFERENCE.md | 3-4 | High density, visual | Desk reference | -| EXECUTIVE_SUMMARY.md | 5-6 | Medium density | Decision-making | -| UK_FEATURE_PRIORITIZATION.md | 25-30 | High detail | Strategy execution | -| PHASE1_TECHNICAL_IMPLEMENTATION.md | 50-60 | Very high detail | Engineering | -| UK_MARKET_STRATEGY.md | 40-50 | High detail | Business strategy | -| API_RESOURCES_AND_CONTACTS.md | 20-25 | Reference style | API integration | -| README_UK_STRATEGY.md | 8-10 | Navigation focus | Finding information | - ---- - -## Key Metrics Summary - -All documents contain these key metrics: - -**Market Opportunity:** -- TAM: Β£3.3M (UK recruitment market) -- Year 1 Revenue Target: Β£30-240K -- Break-even: 24-30 customers -- Profitability: Month 6-7 - -**Fraud Coverage:** -- HEDD: 90%+ detection of fake degrees -- Timeline: 80%+ detection of employment date fraud -- Healthcare: 95%+ detection of GMC/NMC fraud - -**Success Metrics:** -- Signups: 500+ in first month -- Active rate: 10%+ weekly -- Feature satisfaction: 85%+ -- Uptime: 99.9% - -**Financial Unit Economics:** -- CAC: Β£150-300 -- ARPU: Β£60-120/month -- Payback: 2-4 months -- Gross margin: 75-80% - ---- - -## Action Items Checklist - -After reading these documents, complete: - -### Week 1 (Critical Path) -- [ ] Read EXECUTIVE_SUMMARY.md + QUICK_REFERENCE.md -- [ ] Decide: Proceed with Phase 1? -- [ ] If YES: Send API access requests (HEDD, GMC, NMC) -- [ ] If YES: Allocate 2 engineers to Phase 1 -- [ ] If YES: Identify 3-5 beta partner recruitment agencies - -### Week 2-3 -- [ ] Read PHASE1_TECHNICAL_IMPLEMENTATION.md (if engineering) -- [ ] Read UK_FEATURE_PRIORITIZATION.md (if product) -- [ ] Receive API access credentials or begin scraper development -- [ ] Set up development environment -- [ ] Begin Phase 1 coding - -### Week 4-8 -- [ ] Execute Phase 1 development plan -- [ ] Deploy beta environment -- [ ] Conduct user testing with beta partners -- [ ] Iterate based on feedback -- [ ] Plan public launch - ---- - -## Version Control & Updates - -**Current Version:** 1.0 - January 20, 2026 - -**Planned Updates:** -- **April 2026:** Post-Phase 1 launch review -- **July 2026:** Post-Phase 2 launch update (Professional Bodies) -- **October 2026:** Post-Phase 3 launch update (Compliance/Regulatory) -- **January 2027:** Year 1 retrospective + Year 2 planning - -**Update Process:** -1. Incorporate market feedback from beta/paying customers -2. Update financial projections with actual metrics -3. Revise timeline based on actual delivery vs. plan -4. Add new competitive intelligence -5. Update feature roadmap based on customer demand - ---- - -## Document Quality Standards - -Each document has been: -- βœ… Reviewed for accuracy (market data, API info current as of Jan 2026) -- βœ… Checked for internal consistency (numbers align across docs) -- βœ… Tested for completeness (all major topics covered) -- βœ… Formatted for easy navigation (clear sections, tables, links) -- βœ… Validated for actionability (contains concrete next steps) - ---- - -## Copyright & Distribution - -**Ownership:** TrueCV Product Team -**Classification:** Internal Only -**Distribution:** Leadership, Product, Engineering only - -**Permitted Use:** -- Internal strategic planning βœ… -- Cross-functional alignment meetings βœ… -- Board presentations βœ… -- Investor pitches βœ… - -**Prohibited Use:** -- Public distribution ❌ -- Sharing with competitors ❌ -- Press releases without approval ❌ -- Posting on public repositories ❌ - ---- - -## Support & Questions - -**For questions about this strategy:** - -- **Strategy Overview:** Product Manager -- **Market Analysis:** Marketing Lead -- **Technical Implementation:** Engineering Lead -- **Financial Model:** CFO/Finance -- **Customer Personas:** Sales Lead -- **API Integration:** Technical Lead - -**Document Feedback:** -- Report errors: [Internal feedback channel] -- Suggest additions: [Internal feedback channel] -- Request updates: [Internal feedback channel] - ---- - -## Appendix: Quick Stats - -``` -MARKET OPPORTUNITY -UK CV fraud cost: Β£4.2B annually -Addressable market: Β£3.3M (TrueCV's portion) -Candidates lying: 1 in 5 (20%) -Failed verifications: 24% of CVs -Current verification time: 5-10 DAYS - -COMPETITIVE ADVANTAGE -Features only TrueCV offers: 4 major features -Market gap size: Unexploited (Β£3.3M) -Time to market advantage: 6-12 months - -PHASE 1 DELIVERY -Timeline: 8 weeks (Q1 2026) -Features: 4 major features -Team: 2 engineers + 1 QA -APIs integrated: 5 new integrations -Testing: >90% code coverage - -YEAR 1 TARGETS -Revenue (conservative): Β£113K (50 customers) -Revenue (growth): Β£227K (100 customers) -Break-even: 24-30 customers (Month 6-7) -Profitability: Month 8-9 (if growth scenario) - -SUCCESS METRICS -Signups month 1: 500+ -Weekly active rate: 10%+ -Feature satisfaction: 85%+ -Uptime: 99.9% - -TEAM REQUIREMENTS -Phase 1 (Q1): 3 engineers + 1 PM + 1 marketing -Phase 2 (Q2): +1 engineer + 1 sales/BD -Phase 3 (Q3): +1 customer success + 1 analyst -``` - ---- - -**Last Updated:** January 20, 2026 -**Next Review:** April 1, 2026 -**Status:** READY FOR EXECUTION - ---- - -## Quick Links - -**Files Created:** -- `/mnt/d/Git/TrueCV/QUICK_REFERENCE.md` -- `/mnt/d/Git/TrueCV/EXECUTIVE_SUMMARY.md` -- `/mnt/d/Git/TrueCV/UK_FEATURE_PRIORITIZATION.md` -- `/mnt/d/Git/TrueCV/PHASE1_TECHNICAL_IMPLEMENTATION.md` -- `/mnt/d/Git/TrueCV/UK_MARKET_STRATEGY.md` -- `/mnt/d/Git/TrueCV/API_RESOURCES_AND_CONTACTS.md` -- `/mnt/d/Git/TrueCV/README_UK_STRATEGY.md` -- `/mnt/d/Git/TrueCV/INDEX.md` (this file) - -**Total:** 8 comprehensive strategy documents (~200 pages) - diff --git a/PHASE1_TECHNICAL_IMPLEMENTATION.md b/PHASE1_TECHNICAL_IMPLEMENTATION.md deleted file mode 100644 index 56e3603..0000000 --- a/PHASE1_TECHNICAL_IMPLEMENTATION.md +++ /dev/null @@ -1,1491 +0,0 @@ -# Phase 1 Technical Implementation Guide (Q1 2026) - -**Timeline:** 8 weeks -**Target:** 4 high-impact features live in production - ---- - -## Feature 1: HEDD Degree Verification Integration - -### Overview -Real-time integration with HEDD (Higher Education Degree Datacheck) to verify UK degrees against 140+ university records. - -**Current Baseline:** TrueCV parses education entries from CV using Claude AI -**Gap:** No verification against actual university records -**Value:** Eliminates 90%+ of fake degree claims - -### Architecture - -``` -CVParserService (existing) - ↓ extracts education data -EducationVerificationService (NEW) - β”œβ”€β”€ IEducationVerifierService interface - β”œβ”€β”€ HeddClient (web integration) - β”œβ”€β”€ HeddConsentManager (workflow) - └── EducationFlag generation - ↓ -CVCheck (database) + new EducationVerification flags - ↓ -Report & UI -``` - -### Phase 1a: Create Infrastructure (Days 1-5) - -#### File 1: `src/TrueCV.Infrastructure/Configuration/HeddSettings.cs` - -```csharp -namespace TrueCV.Infrastructure.Configuration; - -public class HeddSettings -{ - public required string BaseUrl { get; set; } - public required string ApiKey { get; set; } // Registration credentials - public int TimeoutSeconds { get; set; } = 30; - public bool RequireConsentAcknowledgment { get; set; } = true; -} -``` - -#### File 2: `src/TrueCV.Infrastructure/ExternalApis/HeddClient.cs` - -```csharp -using System.Net.Http.Json; -using System.Text; -using System.Text.Json; -using System.Text.Json.Serialization; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Options; -using TrueCV.Infrastructure.Configuration; - -namespace TrueCV.Infrastructure.ExternalApis; - -public sealed class HeddClient -{ - private readonly HttpClient _httpClient; - private readonly ILogger _logger; - private readonly HeddSettings _settings; - - private static readonly JsonSerializerOptions JsonOptions = new() - { - PropertyNamingPolicy = JsonNamingPolicy.CamelCase, - PropertyNameCaseInsensitive = true, - DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull - }; - - public HeddClient( - HttpClient httpClient, - IOptions settings, - ILogger logger) - { - _httpClient = httpClient; - _logger = logger; - _settings = settings.Value; - _httpClient.BaseAddress = new Uri(_settings.BaseUrl); - _httpClient.Timeout = TimeSpan.FromSeconds(_settings.TimeoutSeconds); - } - - public async Task VerifyDegreeAsync( - HeddVerificationRequest request, - CancellationToken cancellationToken = default) - { - ArgumentNullException.ThrowIfNull(request); - - _logger.LogDebug( - "Submitting degree verification to HEDD for {CandidateName} from {Institution}", - request.CandidateName, request.Institution); - - try - { - var content = new StringContent( - JsonSerializer.Serialize(request, JsonOptions), - Encoding.UTF8, - "application/json"); - - var response = await _httpClient.PostAsync( - "/api/verify/degree", - content, - cancellationToken); - - if (!response.IsSuccessStatusCode) - { - _logger.LogWarning( - "HEDD verification failed with status {StatusCode}", - response.StatusCode); - return null; - } - - var result = await response.Content.ReadFromJsonAsync( - JsonOptions, - cancellationToken); - - _logger.LogInformation( - "HEDD verification completed: {Status}", - result?.VerificationStatus ?? "Unknown"); - - return result; - } - catch (HttpRequestException ex) - { - _logger.LogError(ex, "HEDD API request failed"); - throw; - } - } - - public async Task CheckManualVerificationStatusAsync( - string referenceId, - CancellationToken cancellationToken = default) - { - _logger.LogDebug("Checking HEDD manual verification status: {ReferenceId}", referenceId); - - try - { - var response = await _httpClient.GetAsync( - $"/api/verify/status/{referenceId}", - cancellationToken); - - if (!response.IsSuccessStatusCode) - { - _logger.LogWarning( - "Failed to check verification status {ReferenceId}", - referenceId); - return null; - } - - var result = await response.Content.ReadFromJsonAsync( - JsonOptions, - cancellationToken); - - return result; - } - catch (HttpRequestException ex) - { - _logger.LogError(ex, "Failed to check HEDD status for {ReferenceId}", referenceId); - throw; - } - } -} - -// Request/Response DTOs -public sealed record HeddVerificationRequest -{ - [JsonPropertyName("candidateName")] - public required string CandidateName { get; init; } - - [JsonPropertyName("dateOfBirth")] - public required string DateOfBirth { get; init; } // YYYY-MM-DD - - [JsonPropertyName("institution")] - public required string Institution { get; init; } - - [JsonPropertyName("qualificationLevel")] - public required string QualificationLevel { get; init; } // "Bachelor's", "Master's", "PhD" - - [JsonPropertyName("subject")] - public string? Subject { get; init; } - - [JsonPropertyName("classificationOrGrade")] - public string? ClassificationOrGrade { get; init; } // "First", "Upper Second", "2:1", etc. - - [JsonPropertyName("graduationYear")] - public required string GraduationYear { get; init; } // YYYY - - [JsonPropertyName("consentAcknowledgment")] - public required bool ConsentAcknowledgment { get; init; } -} - -public sealed record HeddVerificationResponse -{ - [JsonPropertyName("referenceId")] - public required string ReferenceId { get; init; } - - [JsonPropertyName("verificationStatus")] - public required string VerificationStatus { get; init; } // "Verified", "Manual", "Unverified" - - [JsonPropertyName("institutionMatch")] - public bool? InstitutionMatch { get; init; } - - [JsonPropertyName("qualificationMatch")] - public bool? QualificationMatch { get; init; } - - [JsonPropertyName("graduationYearMatch")] - public bool? GraduationYearMatch { get; init; } - - [JsonPropertyName("classificationMatch")] - public bool? ClassificationMatch { get; init; } - - [JsonPropertyName("verifiedInstitution")] - public string? VerifiedInstitution { get; init; } - - [JsonPropertyName("verifiedQualification")] - public string? VerifiedQualification { get; init; } - - [JsonPropertyName("notes")] - public string? Notes { get; init; } - - [JsonPropertyName("estimatedManualReviewDate")] - public DateTime? EstimatedManualReviewDate { get; init; } -} - -public sealed record HeddManualVerificationStatus -{ - [JsonPropertyName("referenceId")] - public required string ReferenceId { get; init; } - - [JsonPropertyName("status")] - public required string Status { get; init; } // "Pending", "Verified", "UnableToVerify" - - [JsonPropertyName("resolvedAt")] - public DateTime? ResolvedAt { get; init; } - - [JsonPropertyName("verificationDetails")] - public string? VerificationDetails { get; init; } -} -``` - -#### File 3: `src/TrueCV.Application/Interfaces/IEducationVerifierService.cs` - -```csharp -using TrueCV.Application.Models; - -namespace TrueCV.Application.Interfaces; - -public interface IEducationVerifierService -{ - /// - /// Verify education entry against HEDD database - /// - Task VerifyEducationEntryAsync( - string fullName, - DateOnly dateOfBirth, - string institution, - string qualification, - string? subject, - string? grade, - DateOnly graduationDate, - CancellationToken cancellationToken = default); - - /// - /// Check status of manual verification (for entries not instantly matched) - /// - Task CheckVerificationStatusAsync( - string referenceId, - CancellationToken cancellationToken = default); -} -``` - -#### File 4: `src/TrueCV.Application/Models/EducationVerificationResult.cs` - -```csharp -namespace TrueCV.Application.Models; - -public sealed record EducationVerificationResult -{ - /// - /// HEDD reference ID for tracking/follow-up - /// - public required string ReferenceId { get; init; } - - /// - /// Overall verification result - /// - public required VerificationStatus Status { get; init; } - - /// - /// Field-level verification results - /// - public required EducationFieldMatches FieldMatches { get; init; } - - /// - /// Verified information returned from HEDD - /// - public EducationVerifiedData? VerifiedData { get; init; } - - /// - /// If manual verification required, estimated completion date - /// - public DateTime? ManualReviewEstimatedDate { get; init; } - - /// - /// Additional notes from verification process - /// - public string? Notes { get; init; } - - /// - /// Confidence score (0-100) for the verification - /// - public int ConfidenceScore { get; init; } -} - -public enum VerificationStatus -{ - /// - /// All fields matched exactly against university records - /// - Verified, - - /// - /// Submitted for manual university verification (10 working days) - /// - PendingManualReview, - - /// - /// Could not be verified or manual review failed - /// - Unverified -} - -public sealed record EducationFieldMatches -{ - public bool? InstitutionMatched { get; init; } - public bool? QualificationMatched { get; init; } - public bool? GraduationYearMatched { get; init; } - public bool? GradeMatched { get; init; } - public bool? SubjectMatched { get; init; } -} - -public sealed record EducationVerifiedData -{ - public string? VerifiedInstitution { get; init; } - public string? VerifiedQualification { get; init; } - public int? VerifiedGraduationYear { get; init; } - public string? VerifiedGrade { get; init; } - public string? VerifiedSubject { get; init; } -} - -public sealed record EducationManualVerificationStatus -{ - public required string ReferenceId { get; init; } - public required ManualVerificationStatus Status { get; init; } - public DateTime? CompletedAt { get; init; } - public string? Details { get; init; } -} - -public enum ManualVerificationStatus -{ - Pending, - Verified, - UnableToVerify -} -``` - -### Phase 1b: Implement Service Layer (Days 6-10) - -#### File 5: `src/TrueCV.Infrastructure/Services/EducationVerifierService.cs` - -```csharp -using Microsoft.Extensions.Logging; -using TrueCV.Application.Interfaces; -using TrueCV.Application.Models; -using TrueCV.Infrastructure.ExternalApis; - -namespace TrueCV.Infrastructure.Services; - -public sealed class EducationVerifierService : IEducationVerifierService -{ - private readonly HeddClient _heddClient; - private readonly ILogger _logger; - - public EducationVerifierService( - HeddClient heddClient, - ILogger logger) - { - _heddClient = heddClient; - _logger = logger; - } - - public async Task VerifyEducationEntryAsync( - string fullName, - DateOnly dateOfBirth, - string institution, - string qualification, - string? subject, - string? grade, - DateOnly graduationDate, - CancellationToken cancellationToken = default) - { - ArgumentException.ThrowIfNullOrWhiteSpace(fullName); - ArgumentException.ThrowIfNullOrWhiteSpace(institution); - ArgumentException.ThrowIfNullOrWhiteSpace(qualification); - - _logger.LogDebug( - "Verifying education for {FullName}: {Institution} - {Qualification}", - fullName, institution, qualification); - - var request = new HeddVerificationRequest - { - CandidateName = fullName, - DateOfBirth = dateOfBirth.ToString("yyyy-MM-dd"), - Institution = institution, - QualificationLevel = NormalizeQualification(qualification), - Subject = subject, - ClassificationOrGrade = grade, - GraduationYear = graduationDate.Year.ToString(), - ConsentAcknowledgment = true - }; - - try - { - var response = await _heddClient.VerifyDegreeAsync(request, cancellationToken); - - if (response is null) - { - _logger.LogWarning( - "HEDD verification returned null for {FullName}", - fullName); - return CreateUnverifiedResult(); - } - - return MapToEducationVerificationResult(response); - } - catch (Exception ex) - { - _logger.LogError(ex, "Error during education verification for {FullName}", fullName); - throw; - } - } - - public async Task CheckVerificationStatusAsync( - string referenceId, - CancellationToken cancellationToken = default) - { - ArgumentException.ThrowIfNullOrWhiteSpace(referenceId); - - _logger.LogDebug("Checking verification status for reference: {ReferenceId}", referenceId); - - try - { - var status = await _heddClient.CheckManualVerificationStatusAsync( - referenceId, - cancellationToken); - - if (status is null) - { - return null; - } - - return new EducationManualVerificationStatus - { - ReferenceId = status.ReferenceId, - Status = status.Status switch - { - "Verified" => ManualVerificationStatus.Verified, - "UnableToVerify" => ManualVerificationStatus.UnableToVerify, - _ => ManualVerificationStatus.Pending - }, - CompletedAt = status.ResolvedAt, - Details = status.VerificationDetails - }; - } - catch (Exception ex) - { - _logger.LogError(ex, "Error checking verification status for {ReferenceId}", referenceId); - throw; - } - } - - private static EducationVerificationResult MapToEducationVerificationResult( - HeddVerificationResponse response) - { - var status = response.VerificationStatus switch - { - "Verified" => VerificationStatus.Verified, - "Manual" => VerificationStatus.PendingManualReview, - _ => VerificationStatus.Unverified - }; - - var confidenceScore = CalculateConfidenceScore(response); - - return new EducationVerificationResult - { - ReferenceId = response.ReferenceId, - Status = status, - FieldMatches = new EducationFieldMatches - { - InstitutionMatched = response.InstitutionMatch, - QualificationMatched = response.QualificationMatch, - GraduationYearMatched = response.GraduationYearMatch, - GradeMatched = response.ClassificationMatch - }, - VerifiedData = new EducationVerifiedData - { - VerifiedInstitution = response.VerifiedInstitution, - VerifiedQualification = response.VerifiedQualification, - VerifiedGraduationYear = int.TryParse(response.VerifiedInstitution, out var year) ? year : null, - VerifiedGrade = response.Notes - }, - ManualReviewEstimatedDate = response.EstimatedManualReviewDate, - Notes = response.Notes, - ConfidenceScore = confidenceScore - }; - } - - private static int CalculateConfidenceScore(HeddVerificationResponse response) - { - return response.VerificationStatus switch - { - "Verified" => 100, - "Manual" => 50, - _ => 0 - }; - } - - private static string NormalizeQualification(string qualification) - { - return qualification.ToLowerInvariant() switch - { - var q when q.Contains("bachelor") => "Bachelor's", - var q when q.Contains("master") => "Master's", - var q when q.Contains("phd") || q.Contains("doctorate") => "PhD", - var q when q.Contains("hnd") => "HND", - var q when q.Contains("diploma") => "Diploma", - _ => qualification - }; - } - - private static EducationVerificationResult CreateUnverifiedResult() - { - return new EducationVerificationResult - { - ReferenceId = Guid.NewGuid().ToString(), - Status = VerificationStatus.Unverified, - FieldMatches = new EducationFieldMatches(), - ConfidenceScore = 0, - Notes = "Unable to contact verification service" - }; - } -} -``` - -### Phase 1c: Database & Flag Integration (Days 11-12) - -#### Update: `src/TrueCV.Domain/Enums/FlagCategory.cs` - -```csharp -namespace TrueCV.Domain.Enums; - -public enum FlagCategory -{ - Employment, - Education, - Timeline, - Plausibility, - EducationVerification, // NEW - DirectorshipVerification, // NEW (for Phase 1d) - HealthcareRegistration // NEW (for Phase 1e) -} -``` - -#### New File: `src/TrueCV.Infrastructure/Services/EducationFlagGenerator.cs` - -```csharp -using TrueCV.Application.Models; -using TrueCV.Domain.Entities; -using TrueCV.Domain.Enums; - -namespace TrueCV.Infrastructure.Services; - -public sealed class EducationFlagGenerator -{ - public static CVFlag? GenerateEducationVerificationFlag( - EducationVerificationResult verificationResult, - EducationEntry claimedEducation) - { - // Verified = no flag - if (verificationResult.Status == VerificationStatus.Verified) - { - return null; - } - - // Unverified = high severity flag - if (verificationResult.Status == VerificationStatus.Unverified) - { - return new CVFlag - { - Category = FlagCategory.EducationVerification, - Severity = FlagSeverity.High, - Title = "Degree Verification Failed", - Description = $"Could not verify degree from {claimedEducation.Institution} " + - $"({claimedEducation.Qualification}). " + - $"Reference: {verificationResult.ReferenceId}", - ScoreImpact = -40 - }; - } - - // PendingManualReview = medium severity flag (temporary) - if (verificationResult.Status == VerificationStatus.PendingManualReview) - { - var reviewDate = verificationResult.ManualReviewEstimatedDate? - .ToString("dd MMM yyyy") ?? "soon"; - - return new CVFlag - { - Category = FlagCategory.EducationVerification, - Severity = FlagSeverity.Medium, - Title = "Degree Under Manual Review", - Description = $"Degree from {claimedEducation.Institution} submitted for " + - $"manual university verification. Expected completion: {reviewDate}. " + - $"Reference: {verificationResult.ReferenceId}", - ScoreImpact = -15 - }; - } - - return null; - } - - public static CVFlag? GenerateFieldMismatchFlag( - EducationFieldMatches matches, - EducationEntry claimed) - { - // Check for specific field mismatches - if (matches.InstitutionMatched == false) - { - return new CVFlag - { - Category = FlagCategory.EducationVerification, - Severity = FlagSeverity.High, - Title = "Institution Name Mismatch", - Description = $"Claimed institution '{claimed.Institution}' does not match " + - "verified university records. Verify exact institution name.", - ScoreImpact = -35 - }; - } - - if (matches.GraduationYearMatched == false) - { - return new CVFlag - { - Category = FlagCategory.EducationVerification, - Severity = FlagSeverity.High, - Title = "Graduation Date Mismatch", - Description = $"Claimed graduation year ({claimed.EndDate?.Year}) does not match " + - "verified university records.", - ScoreImpact = -30 - }; - } - - if (matches.QualificationMatched == false) - { - return new CVFlag - { - Category = FlagCategory.EducationVerification, - Severity = FlagSeverity.Medium, - Title = "Qualification Mismatch", - Description = $"Claimed qualification '{claimed.Qualification}' does not match " + - "verified university records.", - ScoreImpact = -25 - }; - } - - return null; - } -} -``` - -### Phase 1d: Companies House Enhancement - Director Verification - -#### File: `src/TrueCV.Infrastructure/ExternalApis/CompaniesHouseDirectorsClient.cs` - -```csharp -using System.Net.Http.Json; -using System.Text.Json; -using System.Text.Json.Serialization; -using Microsoft.Extensions.Logging; -using TrueCV.Infrastructure.ExternalApis; - -namespace TrueCV.Infrastructure.ExternalApis; - -public sealed class CompaniesHouseDirectorsClient -{ - private readonly HttpClient _httpClient; - private readonly ILogger _logger; - - private static readonly JsonSerializerOptions JsonOptions = new() - { - PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower, - PropertyNameCaseInsensitive = true - }; - - public CompaniesHouseDirectorsClient( - HttpClient httpClient, - ILogger logger) - { - _httpClient = httpClient; - _logger = logger; - } - - public async Task?> GetDirectorAppointmentsAsync( - string companyNumber, - CancellationToken cancellationToken = default) - { - ArgumentException.ThrowIfNullOrWhiteSpace(companyNumber); - - _logger.LogDebug("Fetching director appointments for company: {CompanyNumber}", companyNumber); - - try - { - var requestUrl = $"/company/{companyNumber}/officers"; - var response = await _httpClient.GetAsync(requestUrl, cancellationToken); - - if (!response.IsSuccessStatusCode) - { - _logger.LogWarning( - "Failed to fetch officers for {CompanyNumber}: {StatusCode}", - companyNumber, response.StatusCode); - return null; - } - - var result = await response.Content.ReadFromJsonAsync( - JsonOptions, - cancellationToken); - - return result?.Items? - .Where(o => o.OfficerRole == "Director" || o.OfficerRole == "Secretary") - .Select(o => new DirectorAppointment - { - OfficerId = o.Id, - OfficerName = o.Name, - OfficerRole = o.OfficerRole, - AppointmentDate = ParseDate(o.AppointedOn), - ResignationDate = ParseDate(o.ResignedOn), - IsActive = o.ResignedOn == null - }) - .ToList() ?? []; - } - catch (HttpRequestException ex) - { - _logger.LogError(ex, "Error fetching officers for {CompanyNumber}", companyNumber); - throw; - } - } - - private static DateOnly? ParseDate(string? dateString) - { - if (string.IsNullOrWhiteSpace(dateString) || - !DateOnly.TryParse(dateString, out var date)) - { - return null; - } - return date; - } -} - -public sealed record DirectorAppointment -{ - public required string OfficerId { get; init; } - public required string OfficerName { get; init; } - public required string OfficerRole { get; init; } - public required DateOnly AppointmentDate { get; init; } - public DateOnly? ResignationDate { get; init; } - public bool IsActive { get; init; } -} - -// Companies House API Response DTOs -public sealed record OfficersResponse -{ - public List? Items { get; init; } -} - -public sealed record Officer -{ - public required string Id { get; init; } - public required string Name { get; init; } - public required string OfficerRole { get; init; } - public string? AppointedOn { get; init; } - public string? ResignedOn { get; init; } -} -``` - -#### File: `src/TrueCV.Application/Interfaces/IDirectorshipVerifierService.cs` - -```csharp -namespace TrueCV.Application.Interfaces; - -public interface IDirectorshipVerifierService -{ - Task VerifyDirectorshipAsync( - string candidateName, - string companyName, - DateOnly claimedStartDate, - DateOnly? claimedEndDate, - CancellationToken cancellationToken = default); -} - -public sealed record DirectorshipVerificationResult -{ - public required bool IsVerified { get; init; } - public required string ClaimedCompany { get; init; } - public required string ClaimedRole { get; init; } - public required DateOnly ClaimedStartDate { get; init; } - public DateOnly? ClaimedEndDate { get; init; } - public string? VerifiedOfficerName { get; init; } - public string? VerifiedRole { get; init; } - public DateOnly? VerifiedAppointmentDate { get; init; } - public DateOnly? VerifiedResignationDate { get; init; } - public string? Notes { get; init; } - public int ConfidenceScore { get; init; } -} -``` - -#### File: `src/TrueCV.Infrastructure/Services/DirectorshipVerifierService.cs` - -```csharp -using FuzzySharp; -using Microsoft.Extensions.Logging; -using TrueCV.Application.Interfaces; -using TrueCV.Infrastructure.ExternalApis; - -namespace TrueCV.Infrastructure.Services; - -public sealed class DirectorshipVerifierService : IDirectorshipVerifierService -{ - private readonly CompanyVerifierService _companyVerifier; - private readonly CompaniesHouseDirectorsClient _directorsClient; - private readonly ILogger _logger; - - private const int FuzzyNameThreshold = 75; - - public DirectorshipVerifierService( - CompanyVerifierService companyVerifier, - CompaniesHouseDirectorsClient directorsClient, - ILogger logger) - { - _companyVerifier = companyVerifier; - _directorsClient = directorsClient; - _logger = logger; - } - - public async Task VerifyDirectorshipAsync( - string candidateName, - string companyName, - DateOnly claimedStartDate, - DateOnly? claimedEndDate, - CancellationToken cancellationToken = default) - { - ArgumentException.ThrowIfNullOrWhiteSpace(candidateName); - ArgumentException.ThrowIfNullOrWhiteSpace(companyName); - - _logger.LogDebug( - "Verifying directorship: {CandidateName} at {CompanyName}", - candidateName, companyName); - - // Step 1: Verify company exists - var companyVerification = await _companyVerifier.VerifyCompanyAsync( - companyName, - claimedStartDate, - claimedEndDate); - - if (!companyVerification.IsVerified) - { - _logger.LogDebug( - "Company not verified for directorship check: {CompanyName}", - companyName); - return CreateUnverifiedResult( - candidateName, - companyName, - claimedStartDate, - claimedEndDate, - "Company not found in Companies House"); - } - - // Step 2: Get directors for verified company - var appointments = await _directorsClient.GetDirectorAppointmentsAsync( - companyVerification.MatchedCompanyNumber!, - cancellationToken); - - if (appointments is null || appointments.Count == 0) - { - _logger.LogDebug( - "No directors found for company {CompanyNumber}", - companyVerification.MatchedCompanyNumber); - return CreateUnverifiedResult( - candidateName, - companyName, - claimedStartDate, - claimedEndDate, - "No director appointments found"); - } - - // Step 3: Fuzzy match candidate name against directors - var matchedDirector = FindBestNameMatch(candidateName, appointments); - - if (matchedDirector is null) - { - _logger.LogDebug( - "No name match found for {CandidateName} in {CompanyNumber}", - candidateName, companyVerification.MatchedCompanyNumber); - return CreateUnverifiedResult( - candidateName, - companyName, - claimedStartDate, - claimedEndDate, - $"Name '{candidateName}' not found in director records"); - } - - // Step 4: Validate dates - var dateValidation = ValidateDates( - claimedStartDate, - claimedEndDate, - matchedDirector); - - if (!dateValidation.IsValid) - { - _logger.LogWarning( - "Date mismatch for directorship: claimed {ClaimedStart}-{ClaimedEnd}, " + - "actual {ActualStart}-{ActualEnd}", - claimedStartDate, claimedEndDate, - matchedDirector.AppointmentDate, matchedDirector.ResignationDate); - - return CreateDateMismatchResult( - candidateName, - companyName, - claimedStartDate, - claimedEndDate, - matchedDirector, - dateValidation.Reason); - } - - // Step 5: Success - directorship verified - _logger.LogInformation( - "Directorship verified: {CandidateName} at {CompanyName}", - candidateName, companyName); - - return new DirectorshipVerificationResult - { - IsVerified = true, - ClaimedCompany = companyName, - ClaimedRole = "Director", - ClaimedStartDate = claimedStartDate, - ClaimedEndDate = claimedEndDate, - VerifiedOfficerName = matchedDirector.OfficerName, - VerifiedRole = matchedDirector.OfficerRole, - VerifiedAppointmentDate = matchedDirector.AppointmentDate, - VerifiedResignationDate = matchedDirector.ResignationDate, - Notes = "Directorship verified against Companies House records", - ConfidenceScore = 100 - }; - } - - private static DirectorAppointment? FindBestNameMatch( - string candidateName, - List appointments) - { - var matches = appointments - .Select(a => new - { - Appointment = a, - Score = Fuzz.Ratio( - candidateName.ToUpperInvariant(), - a.OfficerName.ToUpperInvariant()) - }) - .Where(m => m.Score >= FuzzyNameThreshold) - .OrderByDescending(m => m.Score) - .FirstOrDefault(); - - return matches?.Appointment; - } - - private static DateValidation ValidateDates( - DateOnly claimedStart, - DateOnly? claimedEnd, - DirectorAppointment actual) - { - // Claimed start before actual appointment - if (claimedStart < actual.AppointmentDate) - { - return new DateValidation - { - IsValid = false, - Reason = $"Claimed start date ({claimedStart}) " + - $"before actual appointment ({actual.AppointmentDate})" - }; - } - - // Claimed end after actual resignation (if resigned) - if (actual.ResignationDate.HasValue && claimedEnd.HasValue) - { - if (claimedEnd > actual.ResignationDate) - { - return new DateValidation - { - IsValid = false, - Reason = $"Claimed end date ({claimedEnd}) " + - $"after actual resignation ({actual.ResignationDate})" - }; - } - } - - return new DateValidation { IsValid = true }; - } - - private static DirectorshipVerificationResult CreateUnverifiedResult( - string candidateName, - string companyName, - DateOnly claimedStartDate, - DateOnly? claimedEndDate, - string reason) - { - return new DirectorshipVerificationResult - { - IsVerified = false, - ClaimedCompany = companyName, - ClaimedRole = "Director", - ClaimedStartDate = claimedStartDate, - ClaimedEndDate = claimedEndDate, - Notes = reason, - ConfidenceScore = 0 - }; - } - - private static DirectorshipVerificationResult CreateDateMismatchResult( - string candidateName, - string companyName, - DateOnly claimedStartDate, - DateOnly? claimedEndDate, - DirectorAppointment actual, - string reason) - { - return new DirectorshipVerificationResult - { - IsVerified = false, - ClaimedCompany = companyName, - ClaimedRole = "Director", - ClaimedStartDate = claimedStartDate, - ClaimedEndDate = claimedEndDate, - VerifiedOfficerName = actual.OfficerName, - VerifiedRole = actual.OfficerRole, - VerifiedAppointmentDate = actual.AppointmentDate, - VerifiedResignationDate = actual.ResignationDate, - Notes = reason, - ConfidenceScore = 30 - }; - } - - private sealed record DateValidation - { - public required bool IsValid { get; init; } - public string? Reason { get; init; } - } -} -``` - -### Phase 1e: Enhanced Timeline Analysis - -#### File: `src/TrueCV.Infrastructure/Services/EnhancedTimelineAnalyserService.cs` - -```csharp -using Microsoft.Extensions.Logging; -using TrueCV.Application.Models; -using TrueCV.Domain.Entities; -using TrueCV.Domain.Enums; - -namespace TrueCV.Infrastructure.Services; - -public sealed class EnhancedTimelineAnalyserService -{ - private readonly ILogger _logger; - - private const int NormalGapMonths = 3; // UK norm - private const int RedFlagGapMonths = 6; - private const int SuspiciousGapMonths = 12; - - public EnhancedTimelineAnalyserService( - ILogger logger) - { - _logger = logger; - } - - public List AnalyzeEducationEmploymentSequence( - List education, - List employment) - { - var flags = new List(); - - foreach (var emp in employment) - { - // Check if employment started before education ended - var conflictingEducation = education - .Where(e => e.EndDate.HasValue && emp.StartDate <= e.EndDate.Value.AddMonths(1)) - .ToList(); - - foreach (var edu in conflictingEducation) - { - var timeBetween = (emp.StartDate - edu.EndDate.Value).Days; - - if (timeBetween < 0) - { - flags.Add(new CVFlag - { - Category = FlagCategory.Timeline, - Severity = FlagSeverity.Medium, - Title = "Employment Overlaps Education", - Description = $"Employment at {emp.CompanyName} started " + - $"{Math.Abs(timeBetween)} days before completing degree " + - $"from {edu.Institution}. " + - $"Education end: {edu.EndDate:yyyy-MM}, " + - $"Employment start: {emp.StartDate:yyyy-MM}", - ScoreImpact = -20 - }); - } - } - } - - flags.AddRange(DetectAnomalousEmploymentPatterns(employment)); - return flags; - } - - private List DetectAnomalousEmploymentPatterns( - List employment) - { - var flags = new List(); - - for (int i = 0; i < employment.Count - 1; i++) - { - var current = employment[i]; - var next = employment[i + 1]; - - if (!current.EndDate.HasValue || next.StartDate < current.EndDate.Value) - { - // Overlapping employment - flags.Add(new CVFlag - { - Category = FlagCategory.Timeline, - Severity = current.EndDate == next.StartDate ? FlagSeverity.Low : FlagSeverity.Medium, - Title = "Overlapping Employment Periods", - Description = $"Employment at {current.CompanyName} and {next.CompanyName} " + - $"overlap. End date: {current.EndDate:yyyy-MM}, " + - $"Next start: {next.StartDate:yyyy-MM}", - ScoreImpact = current.EndDate == next.StartDate ? -10 : -25 - }); - - continue; - } - - var gapDays = (next.StartDate - current.EndDate.Value).Days; - var gapMonths = gapDays / 30; - - if (gapMonths > SuspiciousGapMonths) - { - flags.Add(new CVFlag - { - Category = FlagCategory.Timeline, - Severity = FlagSeverity.Low, - Title = "Extended Employment Gap", - Description = $"{gapMonths}-month gap between {current.CompanyName} " + - $"(ended {current.EndDate:yyyy-MM}) and {next.CompanyName} " + - $"(started {next.StartDate:yyyy-MM}). " + - $"Note: UK employment gaps becoming more common (24% of workforce in 2025)", - ScoreImpact = -10 - }); - } - } - - return flags; - } - - public List AnalyzeGraduationEmploymentGaps( - List education, - List employment) - { - var flags = new List(); - - foreach (var edu in education.Where(e => e.EndDate.HasValue)) - { - var firstEmployment = employment - .Where(e => e.StartDate >= edu.EndDate.Value) - .OrderBy(e => e.StartDate) - .FirstOrDefault(); - - if (firstEmployment is null) - { - continue; // No employment recorded after education - } - - var gapDays = (firstEmployment.StartDate - edu.EndDate.Value).Days; - var gapMonths = gapDays / 30; - - // Large gap between graduation and first job - if (gapMonths > RedFlagGapMonths && gapMonths < SuspiciousGapMonths) - { - flags.Add(new CVFlag - { - Category = FlagCategory.Timeline, - Severity = FlagSeverity.Low, - Title = "Extended Gap After Graduation", - Description = $"{gapMonths}-month gap between graduation " + - $"({edu.EndDate:yyyy-MM}) and first employment " + - $"({firstEmployment.StartDate:yyyy-MM}). Verify reason if claimed.", - ScoreImpact = -5 - }); - } - } - - return flags; - } -} -``` - -### Phase 1f: Dependency Injection & Integration (Days 13-14) - -#### Update: `src/TrueCV.Infrastructure/DependencyInjection.cs` - -```csharp -// Add to existing DependencyInjection class: - -services.Configure(configuration.GetSection("Hedd")); - -services.AddHttpClient() - .SetHandlerLifetime(TimeSpan.FromMinutes(5)); - -services.AddHttpClient() - .SetHandlerLifetime(TimeSpan.FromMinutes(5)); - -services.AddScoped(); -services.AddScoped(); -services.AddScoped(); -``` - -#### Update: `src/TrueCV.Infrastructure/Jobs/ProcessCVCheckJob.cs` - -Add education and directorship verification to the processing pipeline: - -```csharp -public async Task ExecuteAsync(Guid cvCheckId, CancellationToken cancellationToken) -{ - // ... existing code ... - - // Step 3: Verify education entries (NEW) - var educationFlags = await VerifyEducationAsync(cvData, cvCheck, cancellationToken); - flags.AddRange(educationFlags); - - // Step 4: Enhanced timeline analysis (UPDATED) - var enhancedTimeline = _enhancedTimelineService.AnalyzeEducationEmploymentSequence( - cvData.Education, - cvData.Employment); - flags.AddRange(enhancedTimeline); - - // Step 5: Verify directorship claims (NEW) - var directorshipFlags = await VerifyDirectorshipsAsync( - cvData.Employment, cancellationToken); - flags.AddRange(directorshipFlags); - - // ... rest of processing ... -} - -private async Task> VerifyEducationAsync( - CVData cvData, - CVCheck cvCheck, - CancellationToken cancellationToken) -{ - var flags = new List(); - - foreach (var edu in cvData.Education) - { - if (!edu.EndDate.HasValue) - continue; - - try - { - var result = await _educationVerifier.VerifyEducationEntryAsync( - cvData.FullName, - DateOnly.FromDateTime(DateTime.Now).AddYears(-30), // Estimate DOB - edu.Institution, - edu.Qualification ?? "Unknown", - edu.Subject, - edu.Grade, - edu.EndDate.Value, - cancellationToken); - - var verificationFlag = EducationFlagGenerator.GenerateEducationVerificationFlag( - result, edu); - - if (verificationFlag is not null) - { - flags.Add(verificationFlag); - } - } - catch (Exception ex) - { - _logger.LogError(ex, "Error verifying education for CV {CheckId}", cvCheckId); - } - } - - return flags; -} - -private async Task> VerifyDirectorshipsAsync( - List employment, - CancellationToken cancellationToken) -{ - var flags = new List(); - - foreach (var emp in employment.Where(e => - e.Description?.Contains("director", StringComparison.OrdinalIgnoreCase) == true || - e.JobTitle?.Contains("director", StringComparison.OrdinalIgnoreCase) == true)) - { - try - { - var result = await _directorshipVerifier.VerifyDirectorshipAsync( - // Use company name from employment record - emp.CompanyName, - emp.StartDate, - emp.EndDate, - cancellationToken); - - if (!result.IsVerified) - { - flags.Add(new CVFlag - { - Category = FlagCategory.DirectorshipVerification, - Severity = FlagSeverity.Medium, - Title = "Directorship Verification Failed", - Description = result.Notes, - ScoreImpact = -30 - }); - } - } - catch (Exception ex) - { - _logger.LogWarning(ex, "Error verifying directorship for {CompanyName}", - emp.CompanyName); - } - } - - return flags; -} -``` - -### Phase 1g: Testing & QA (Days 15-16) - -#### Test File: `tests/TrueCV.Tests/Services/EducationVerifierServiceTests.cs` - -```csharp -using Moq; -using Xunit; -using TrueCV.Application.Models; -using TrueCV.Infrastructure.ExternalApis; -using TrueCV.Infrastructure.Services; - -namespace TrueCV.Tests.Services; - -public class EducationVerifierServiceTests -{ - private readonly Mock _mockHeddClient; - private readonly EducationVerifierService _service; - - public EducationVerifierServiceTests() - { - _mockHeddClient = new Mock(); - _service = new EducationVerifierService( - _mockHeddClient.Object, - new Mock>().Object); - } - - [Fact] - public async Task VerifyEducationEntryAsync_WithValidDegree_ReturnsVerified() - { - // Arrange - var heddResponse = new HeddVerificationResponse - { - ReferenceId = "REF-123", - VerificationStatus = "Verified", - InstitutionMatch = true, - QualificationMatch = true, - GraduationYearMatch = true - }; - - _mockHeddClient - .Setup(x => x.VerifyDegreeAsync( - It.IsAny(), - It.IsAny())) - .ReturnsAsync(heddResponse); - - // Act - var result = await _service.VerifyEducationEntryAsync( - "John Smith", - new DateOnly(1990, 1, 1), - "University of Oxford", - "Bachelor of Science", - "Computer Science", - "First", - new DateOnly(2012, 6, 1)); - - // Assert - Assert.Equal(VerificationStatus.Verified, result.Status); - Assert.Equal(100, result.ConfidenceScore); - Assert.Equal("REF-123", result.ReferenceId); - } - - [Fact] - public async Task VerifyEducationEntryAsync_WithUnverifiedDegree_ReturnsFlagGenerated() - { - // Similar test for unverified case - } -} -``` - ---- - -## Feature 2-4: Parallel Development - -### Timeline Summary -- **Feature 1 (HEDD):** Days 1-16 (primary focus, 2 engineers) -- **Feature 2 (GMC/NMC):** Days 5-12 (secondary, 1 engineer) - Scraper pattern -- **Feature 3 (Companies House Enhancement):** Days 8-14 (1 engineer) - API extension -- **Feature 4 (Enhanced Timeline):** Days 10-14 (1 engineer) - Logic extension - -### Staffing Recommendation -- **Lead Engineer:** HEDD integration (full-time, 2 weeks) -- **Backend Engineer 2:** Healthcare registers + timeline (concurrent, weeks 1-2) -- **Backend Engineer 3:** Companies House enhancement (weeks 2-3) -- **QA Engineer:** Validation & testing (weeks 2-3) - ---- - -## Configuration Required - -### `appsettings.json` Addition - -```json -{ - "Hedd": { - "BaseUrl": "https://api.hedd.ac.uk", - "ApiKey": "YOUR_HEDD_API_KEY", - "TimeoutSeconds": 30, - "RequireConsentAcknowledgment": true - } -} -``` - -### Environment Variables -- `HEDD_API_KEY` - Hedd registration credentials -- `HEDD_BASE_URL` - Hedd API endpoint (default: production) - ---- - -## Database Migration - -Create migration for storing verification results: - -```bash -dotnet ef migrations add AddEducationAndDirectorshipVerification --project src/TrueCV.Infrastructure --startup-project src/TrueCV.Web -``` - -Add optional columns to CVCheck entity: -- `HeddReferenceId` - Track pending manual reviews -- `DirectorshipVerificationStatus` - Cache directorship results - ---- - -## Validation Checklist - -- [ ] HEDD credentials configured and tested -- [ ] Education verification returns proper flag categories -- [ ] Directorship verification cross-checks Companies House -- [ ] Enhanced timeline detects education/employment overlaps -- [ ] All flags generate with correct severity levels -- [ ] Error handling graceful (timeouts, API failures) -- [ ] Logging captures all verification attempts -- [ ] Tests passing (>90% coverage) -- [ ] Documentation updated -- [ ] Demo prepared for stakeholders - diff --git a/QUICK_REFERENCE.md b/QUICK_REFERENCE.md deleted file mode 100644 index a072319..0000000 --- a/QUICK_REFERENCE.md +++ /dev/null @@ -1,380 +0,0 @@ -# TrueCV UK Strategy - Quick Reference Card - -**Print this page for desk reference during planning & execution** - ---- - -## Market Opportunity (The Why) - -``` -UK CV Fraud Cost: Β£4.2B annually -Candidates Lying: 1 in 5 (20%) -Failed Verifications: 24% of CVs -Current Verification Time: 5-10 DAYS -TrueCV Solution Time: 5 SECONDS ⚑ - -Market Addressable: Β£3.3M (UK) -Year 1 Target Revenue: Β£30-240K -Break-even Customers: 24-30 -Expected Profitability: Month 6-7 -``` - ---- - -## Competitive Advantage (Why Now) - -``` -FEATURE TrueCV Workable Deel Checkr -───────────────────────────────────────────────────────── -HEDD Degree Verification βœ… ❌ ❌ ❌ -GMC/NMC Healthcare βœ… ❌ ❌ ❌ -Timeline Fraud Detection βœ… ❌ ❌ ❌ -Director Verification βœ… ❌ ❌ ❌ -Companies House API βœ… ❌ ❌ ❌ - -CONCLUSION: Only player with integrated UK CV verification -``` - ---- - -## Phase 1 Roadmap (Q1 2026 - 8 Weeks) - -``` -Week 1-2: SETUP -β”œβ”€ Secure API access (HEDD, GMC, NMC) -β”œβ”€ Allocate 2 engineers -└─ Recruit 3-5 beta partners - -Week 2-4: DEVELOPMENT (Parallel Tracks) -β”œβ”€ HEDD integration (Lead eng: 2-3 weeks) -β”œβ”€ Healthcare registers (Sec eng: 1 week) -β”œβ”€ Companies House enhancement (Sec eng: 1-2 weeks) -└─ Timeline analysis (Tertiary: 1 week) - -Week 5-7: BETA TESTING -β”œβ”€ Deploy to test environment -β”œβ”€ Onboard beta agencies -β”œβ”€ Collect feedback -└─ Iterate on UX/flags - -Week 8: PUBLIC LAUNCH -β”œβ”€ GA release -β”œβ”€ Marketing campaign -β”œβ”€ Press/analyst outreach -└─ Sales outreach begins -``` - ---- - -## Features Ranked by Impact Γ— Feasibility - -``` -HIGH IMPACT + EASY ─────────────┬─ HIGH IMPACT + HARD - β”‚ -1. HEDD Verification (9.5/10) β”‚ 8. DBS Integration (Q3) -2. Timeline Analysis (7/10) β”‚ 5. HMRC Payroll (Q3) -3. GMC/NMC Checks (6.5/10) β”‚ 6. Professional Bodies -4. Director Verify (7.5/10) β”‚ - β”‚ -MEDIUM IMPACT + EASY ───────────┼─ MEDIUM IMPACT + HARD - β”‚ -7. GOV.UK Registry (5/10) β”‚ - β”‚ -``` - ---- - -## API Integration Status - -| Service | Type | Access | Effort | Timeline | -|---|---|---|---|---| -| **HEDD** | API/Portal | REQUEST | 3 wks | Weeks 1-3 | -| **GMC** | API/Scraper | REQUEST | 1 wk | Weeks 2-3 | -| **NMC** | API/Scraper | REQUEST | 1 wk | Weeks 2-3 | -| **Companies House** | βœ… API | READY | 2 wks | Weeks 2-4 | -| **GOV.UK** | βœ… API | PUBLIC | 3 days | Week 2 | -| **ICAEW** | API/Scraper | REQUEST | 2-3 wks | Q2 | -| **SRA** | API/Scraper | REQUEST | 2-3 wks | Q2 | -| **DBS** | Partner API | VENDOR | 8 wks | Q3 | - ---- - -## Pricing Strategy - -``` -TIER PRICE/MO CUSTOMERS MRR CONTRIB -───────────────────────────────────────────────────── -Free Β£0 30% Β£0 -Professional Β£49/mo 40% 1,470 (30 cust) -Enterprise Β£199/mo 20% 2,985 (15 cust) -API/Platform Β£1,000/mo 5% 5,000 (5 cust) - -TOTAL MRR TARGET: Β£9,455 (50 customers) -ANNUALIZED: Β£113K - -Break-even MRR: Β£1,833 (24 customers) -``` - ---- - -## Success Metrics - Phase 1 - -| Metric | Target | Owner | Measurement | -|---|---|---|---| -| Signups | 500+ month 1 | Growth | User registrations | -| Active Rate | 10%+ weekly | Product | Weekly check rate | -| HEDD Accuracy | >98% | QA | Match rate vs. actual | -| Timeline Detection | 85%+ | QA | Gaps/overlaps caught | -| Feature Satisfaction | 85%+ | Support | NPS feedback | -| Infrastructure Uptime | 99.9% | DevOps | Monitoring alerts | - ---- - -## Fraud Detection Coverage - -``` -FRAUD TYPE DETECTION RATE PHASE -─────────────────────────────────────────────────── -Fake Degrees 90%+ Phase 1 ⭐ -Job Title Inflation Partial Phase 1 -Employment Date Lies 80%+ Phase 1 ⭐ -Directorship False Claims 95%+ Phase 1 ⭐ -Professional Cert Fraud 95%+ Phase 2 -Timeline Gaps/Overlaps 85%+ Phase 1 ⭐ -Medical Register Fraud 95%+ Phase 1 ⭐ - -PHASE 1 COVERAGE: ~80% of common fraud patterns -``` - ---- - -## Financial Projections - -### Year 1 (Conservative) -``` -Customers: 50 -MRR: Β£9,455 -Annual Revenue: Β£113,460 -Gross Margin: 75% (Β£85K) -Operating Costs: Β£220K -Result: BREAK-EVEN -``` - -### Year 1 (Growth) -``` -Customers: 100 -MRR: Β£18,910 -Annual Revenue: Β£226,920 -Gross Margin: 75% (Β£170K) -Operating Costs: Β£220K -Result: PROFITABLE (+Β£20K margin) -``` - -### CAC Payback -``` -Customer Acquisition Cost: Β£150-300 -Average Revenue Per User: Β£60-120/mo -Payback Period: 2-4 MONTHS (healthy) -LTV:CAC Ratio: 4:1+ (excellent) -``` - ---- - -## 30-Day Action Plan - -### NOW (This Week) -``` -Priority 1: Email HEDD (partnerships@hedd.ac.uk) - ↳ Request API access or partnership discussion - ↳ Mention CV verification for UK recruiters - ↳ Expect response: 5-10 business days - -Priority 2: Email GMC (digital@gmc-uk.org) - ↳ Same request structure - ↳ Fallback: scraper development if denied - -Priority 3: Allocate Engineering Resources - ↳ 2 FTE engineers full-time for 8 weeks - ↳ 1 QA engineer (weeks 2-3) - ↳ 1 PM for coordination - -Priority 4: Recruit Beta Partners - ↳ Target 3-5 recruitment agencies - ↳ Offer free access in exchange for feedback - ↳ Aim: 5+ interviews by end of week 2 -``` - -### WEEK 2-3 (Development Starts) -``` -βœ… HEDD credentials received (or scraper ready) -βœ… Development environment configured -βœ… Companies House enhancement code started -βœ… Timeline analysis enhancements begun -βœ… Healthcare register scrapers drafted -``` - -### WEEK 4-8 (Beta & Launch) -``` -βœ… Features completed & tested -βœ… Beta deployment & testing -βœ… Public launch announcement -βœ… First 100 signups targeted -``` - ---- - -## Team Requirements - -### Phase 1 (Q1) -``` -Backend Engineer (Lead): Full-time (8 weeks) - HEDD integration -Backend Engineer (Secondary): Full-time (8 weeks) - Healthcare + Timeline -QA Engineer: Part-time (weeks 2-3) -Product Manager: Full-time (coordination) -Marketing Lead: Part-time (50%) - Content & outreach -``` - -### Phase 2 Addition (Q2) -``` -+ Full-Stack Engineer (vertical expansion) -+ Sales/BD Lead (partnership development) -``` - -### Phase 3 Addition (Q3) -``` -+ Customer Success Manager -+ Data Analyst (metrics/LTV) -``` - ---- - -## Risk Dashboard - -``` -RISK PROB SEVERITY MITIGATION -────────────────────────────────────────────────────────── -HEDD API Access Delayed 🟑 🟑 Scraper fallback -GMC Blocks Scraping 🟒 🟑 Request official API -Market Adoption Slow 🟑 πŸ”΄ Focus healthcare 1st -Regulatory Gatekeeping 🟒 🟑 Partner early -Competitor Response 🟑 🟑 First-mover advantage - -🟒 LOW (20%) 🟑 MEDIUM (50%) πŸ”΄ HIGH (80%) -``` - ---- - -## Customer Personas - -### Persona 1: Agency Owner (Mid-Market) -``` -Name: Sarah, 48 years old -Company: Recruitment agency (80 staff) -Problem: Wasting 2-3 hrs/hire verifying degrees -Budget: Β£3K-8K/year on screening -Buying Signal: "Can you reduce verification from 5 days to 5 min?" -Target Tier: PROFESSIONAL (Β£49/mo) -``` - -### Persona 2: Corporate HR Manager -``` -Name: James, 35 years old -Company: Financial services (200 employees) -Problem: Regulatory liability + reputational risk -Budget: Β£20K-50K/year on compliance -Buying Signal: "We need proof every hire is verified" -Target Tier: ENTERPRISE (Β£199/mo) -``` - -### Persona 3: Healthcare Recruiter -``` -Name: Dr. Lisa, 42 years old -Company: Healthcare recruiter (20 staff) -Problem: Need instant GMC/NMC verification -Budget: Β£2K-5K/year (cost-sensitive) -Buying Signal: "If you verify healthcare pros instantly, we're in" -Target Tier: PROFESSIONAL (Β£49/mo) -``` - ---- - -## Sales Channels - -``` -1. DIRECT SALES (Primary) - └─ Target agency owners + HR directors - └─ LinkedIn outreach + cold calls - └─ Expected conversion: 5-8% - └─ Sales cycle: 2-4 weeks - -2. PARTNERSHIPS (Secondary) - └─ ATS integrations (Workable, Bullhorn, Lever) - └─ White-label for background check providers - └─ Marketplace listings (Zapier, Make) - └─ Expected impact: +30% acquisition - -3. CONTENT & SEO (Tertiary) - └─ Blog posts: "UK CV Fraud Patterns" - └─ Case studies: "How we caught 18 fake degrees" - └─ Webinars for HR professionals - └─ Expected impact: +20% organic - -4. VERTICAL SPECIALISTS (Niche) - └─ Healthcare recruiting (GMC/NMC entry) - └─ Financial services (ICAEW/compliance) - └─ Legal recruiting (SRA verification) - └─ Expected impact: +25% high-value -``` - ---- - -## Decision Framework - -### Go-Ahead Criteria -- βœ… 2 engineers available full-time for 8 weeks -- βœ… HEDD partnership or web portal access confirmed -- βœ… 3+ beta partner recruitment agencies identified -- βœ… Budget approved for Phase 1 (Β£40-50K estimated) -- βœ… Product & GTM strategy aligned with leadership - -### Red Flags (Stop & Reassess) -- ❌ HEDD access denied AND scraper approach infeasible -- ❌ <3 beta partners willing to participate -- ❌ Engineering capacity not available -- ❌ Market research shows insufficient demand -- ❌ Competitive threat emerges - ---- - -## Key Contacts - -| Role | Contact | Email | Notes | -|---|---|---|---| -| **HEDD Partnership** | Prospects Ltd | partnerships@hedd.ac.uk | START HERE | -| **GMC Verification** | GMC Digital Team | digital@gmc-uk.org | Request API access | -| **NMC Verification** | NMC Tech Team | [Check website] | Parallel request | -| **Companies House** | Already have API | [API Docs available] | No action needed | -| **DBS Vendors** | Verifile / DDC | [See API guide] | Q3 partnership | - ---- - -## Next Document to Read - -Based on your role: -- **Executive:** Read UK_MARKET_STRATEGY.md β†’ Market Opportunity section -- **Product:** Read UK_FEATURE_PRIORITIZATION.md (full) -- **Engineering:** Read PHASE1_TECHNICAL_IMPLEMENTATION.md (full) -- **Everyone:** Read README_UK_STRATEGY.md for navigation - ---- - -## One-Liner Summary - -> **TrueCV is the only UK CV verification tool that catches 90% of fake degrees + employment fraud in seconds, leveraging HEDD, GMC/NMC, and Companies House APIs to dominate a Β£3.3M untapped recruitment market.** - ---- - -**Last Updated:** January 20, 2026 -**Status:** Ready for Q1 2026 Execution -**Next Review:** Post-Phase 1 Launch (Week 8) - diff --git a/README_UK_STRATEGY.md b/README_UK_STRATEGY.md deleted file mode 100644 index 44ca4bc..0000000 --- a/README_UK_STRATEGY.md +++ /dev/null @@ -1,419 +0,0 @@ -# TrueCV UK Market Strategy - Complete Package - -## Overview - -This directory contains the complete product strategy and implementation plan for launching TrueCV with a UK-only focus. The documents provide market analysis, feature prioritization, technical implementation details, and go-to-market strategy. - ---- - -## Document Hierarchy - -### 1. **EXECUTIVE_SUMMARY.md** ⭐ START HERE -**Audience:** Executives, Product Leadership, Investors -**Purpose:** 5-minute overview of opportunity, market sizing, and financial projections -**Key Sections:** -- Market problem (Β£4.2B annual cost) -- Competitive advantage (only player integrating HEDD) -- Revenue projections (Β£113K-226K Year 1) -- 30-day action plan - -**Read Time:** 5 minutes - ---- - -### 2. **UK_FEATURE_PRIORITIZATION.md** -**Audience:** Product Managers, Engineering Leads -**Purpose:** Detailed feature prioritization ranking detection value Γ— implementation feasibility -**Key Sections:** -- Fraud patterns & detection rates -- Available UK APIs & accessibility -- Ranked feature list (8 features across 3 phases) -- Implementation timeline & examples -- Success metrics per feature - -**Read Time:** 20-30 minutes - ---- - -### 3. **PHASE1_TECHNICAL_IMPLEMENTATION.md** -**Audience:** Backend Engineers, QA Engineers -**Purpose:** Complete technical specifications for Phase 1 (8-week) delivery -**Key Sections:** -- Architecture diagrams -- 7 complete code examples (interfaces, services, models) -- Database schema updates -- Test coverage requirements -- Configuration & environment setup -- Deployment checklist - -**Read Time:** 30-40 minutes (skim for reference) - ---- - -### 4. **UK_MARKET_STRATEGY.md** -**Audience:** Product Team, Marketing, Sales -**Purpose:** Comprehensive market analysis and go-to-market strategy -**Key Sections:** -- Market sizing (Β£2.8B UK screening market, Β£3.3M TrueCV TAM) -- Competitive landscape analysis -- 3-phase product roadmap (Q1-Q3 2026) -- GTM strategy (4 sales channels) -- Customer personas (3 types) -- Unit economics & financial projections -- Long-term vision (2-3 years, international expansion) - -**Read Time:** 30-40 minutes - ---- - -### 5. **API_RESOURCES_AND_CONTACTS.md** -**Audience:** Engineering + Product (implementation phase) -**Purpose:** Practical guide to accessing UK APIs and vendor partnerships -**Key Sections:** -- 11 detailed API integration guides (HEDD, GMC, NMC, Companies House, etc.) -- Contact information for each service -- Integration methods (API vs. scraper alternatives) -- Timeline for access approval -- Vendor recommendations (DBS, HMRC) -- Email template for API requests -- Compliance checklist - -**Read Time:** 20-30 minutes (reference document) - ---- - -## Quick Navigation - -### By Role - -**Executive / Decision-Maker:** -1. Start: EXECUTIVE_SUMMARY.md (5 min) -2. Then: UK_MARKET_STRATEGY.md - Market & GTM sections (10 min) -3. Decision: Approve Phase 1 go-ahead - -**Product Manager:** -1. Start: EXECUTIVE_SUMMARY.md (5 min) -2. Then: UK_FEATURE_PRIORITIZATION.md (full read) -3. Then: UK_MARKET_STRATEGY.md (full read) -4. Then: Reference PHASE1_TECHNICAL_IMPLEMENTATION.md & API_RESOURCES_AND_CONTACTS.md as needed - -**Engineering Lead:** -1. Start: EXECUTIVE_SUMMARY.md (5 min for context) -2. Then: PHASE1_TECHNICAL_IMPLEMENTATION.md (full read) -3. Then: API_RESOURCES_AND_CONTACTS.md (full read) -4. Reference: UK_FEATURE_PRIORITIZATION.md for feature specs - -**Investor / Analyst:** -1. Start: EXECUTIVE_SUMMARY.md -2. Then: UK_MARKET_STRATEGY.md - Market size & financials sections -3. Reference: UK_FEATURE_PRIORITIZATION.md for technical validation - -**Sales / Marketing:** -1. Start: EXECUTIVE_SUMMARY.md -2. Then: UK_MARKET_STRATEGY.md (GTM + Personas) -3. Reference: UK_FEATURE_PRIORITIZATION.md for talking points - ---- - -## Key Metrics at a Glance - -### Market Opportunity -- **TAM (Total Addressable Market):** Β£3.3M -- **SAM (Serviceable Available Market):** Β£200-300K (Year 1) -- **Year 1 Revenue Target:** Β£30-240K (conservative to growth) -- **Break-even Customers:** 24-30 paying customers -- **Expected Timeline to Break-even:** Month 6-7 - -### Phase 1 Deliverables (8 weeks) -| Feature | Impact | Effort | Timeline | -|---|---|---|---| -| HEDD Degree Verification | 9.5/10 | 2-3 weeks | Weeks 1-3 | -| Healthcare Register Checks | 6.5/10 | 1 week | Weeks 2-3 | -| Enhanced Timeline Analysis | 7/10 | 1 week | Weeks 1-2 | -| Company Director Verification | 7.5/10 | 1-2 weeks | Weeks 2-4 | - -### Success Metrics -- **Adoption:** 500+ signups in first month -- **Engagement:** 10%+ weekly active check rate -- **Satisfaction:** 85%+ feature satisfaction (NPS >40) - ---- - -## Fraud Detection Coverage - -| Fraud Type | Detection Rate | Phase | -|---|---|---| -| Fake degrees | 90%+ | Phase 1 | -| Employment date falsification | 80%+ | Phase 1 | -| Job title inflation | Partial (manual) | Phase 1 | -| Exaggerated qualifications | 85%+ | Phase 2 | -| Professional registration fraud | 95%+ | Phase 2 | -| Directorship false claims | 95%+ | Phase 1 | - ---- - -## Competitive Moat - -**Why no competitor offers this:** - -1. **HEDD Integration** - Only dedicated CV tool integrating degree verification API -2. **UK-Specific Stack** - GMC/NMC healthcare registers + Companies House directors -3. **Timeline Fraud Detection** - Cross-linking education/employment boundary analysis -4. **Vertical Focus** - Healthcare recruiting niche dominance (GMC/NMC) -5. **First-Mover Advantage** - Market gap unexploited until now - -**Defensibility:** -- Deep integrations hard to replicate (HEDD, Companies House, professional bodies) -- Network effects once established (more data = better fraud detection) -- Compliance/audit trail = switching costs for enterprise customers - ---- - -## Critical Path Dependencies - -### Week 1 Actions (Do Now) -- [ ] Email HEDD (partnerships@hedd.ac.uk) requesting API access -- [ ] Email GMC requesting verification API access -- [ ] Allocate 2 engineers to Phase 1 development -- [ ] Recruit 3-5 beta partner agencies - -### Week 2-3 -- [ ] HEDD credential delivery (or scraper fallback) -- [ ] Companies House enhancement development starts -- [ ] Healthcare register scraper development starts -- [ ] Timeline analysis enhancement starts - -### Week 4-8 -- [ ] Beta testing with agency partners -- [ ] Public beta launch -- [ ] Feedback iteration -- [ ] GA release - ---- - -## Financial Summary - -### Year 1 Projections (Conservative Scenario) - -**50 Customers by end of year:** -- 30 Γ— Professional tier (Β£49/mo): Β£1,470/mo -- 15 Γ— Enterprise tier (Β£199/mo): Β£2,985/mo -- 5 Γ— API/Platform (Β£1,000/mo): Β£5,000/mo -- **Total MRR (Dec 2026):** Β£9,455 -- **Annualized Run Rate:** Β£113,460 - -**Operating Costs:** -- Engineering (2 FTE): Β£150K/year -- Infrastructure/APIs: Β£20K/year -- Sales/Marketing: Β£30K/year -- Operations: Β£20K/year -- **Total:** Β£220K/year - -**Result:** Break-even at 24 customers; profitable at 50+ customers - -### Year 2 Projections (Growth Scenario) - -**150 Customers:** -- MRR: Β£28,000+ -- Annualized: Β£336K+ -- Gross Profit: 75% = Β£252K+ - ---- - -## Risk Mitigation - -| Risk | Probability | Severity | Mitigation | -|---|---|---|---| -| HEDD API access delayed | Medium | Medium | Use web portal integration fallback | -| GMC/NMC scraper blocked | Low | Low | Request official API proactively | -| Market adoption slow | Medium | High | Focus on healthcare vertical first | -| Regulatory gatekeeping | Low | Medium | Partner with established vendors early | -| Competitive response | Medium | Medium | Maintain first-mover advantage + deepen integrations | - ---- - -## Next Steps (30-Day Plan) - -### Days 1-3: Preparation -- [ ] Finalize HEDD compliance/consent workflows -- [ ] Identify recruitment agency beta partners -- [ ] Set up development environment -- [ ] Brief engineering team on Phase 1 scope - -### Days 4-7: API Access Requests -- [ ] Email HEDD, GMC, NMC with API access requests -- [ ] Register on beta platforms where available -- [ ] Prepare scraper fallbacks for development - -### Days 8-21: Development (Parallel Tracks) -- **Track 1:** HEDD integration (lead engineer) -- **Track 2:** Healthcare registers (secondary engineer) -- **Track 3:** Companies House enhancement (tertiary) -- **Track 4:** Timeline enhancement (parallel) - -### Days 22-28: Beta Testing -- [ ] Deploy to test environment -- [ ] Onboard beta partner agencies -- [ ] Collect feedback on UX/value -- [ ] Iterate on flag messaging - -### Days 29-30: Preparation for Public Launch -- [ ] Final testing & QA approval -- [ ] Marketing assets prepared -- [ ] Pricing finalized -- [ ] Customer support workflows documented - ---- - -## Recommended Reading Order - -**For executives/investors (20 minutes total):** -1. EXECUTIVE_SUMMARY.md (5 min) -2. UK_MARKET_STRATEGY.md β†’ Market Opportunity + Financials sections (10 min) -3. UK_FEATURE_PRIORITIZATION.md β†’ Overview + Ranked Feature List (5 min) - -**For product/engineering teams (90 minutes total):** -1. EXECUTIVE_SUMMARY.md (5 min) -2. UK_FEATURE_PRIORITIZATION.md (30 min - full read) -3. PHASE1_TECHNICAL_IMPLEMENTATION.md (40 min - full read) -4. API_RESOURCES_AND_CONTACTS.md (15 min - reference) - -**For detailed implementation (3-4 hours for engineers):** -1. PHASE1_TECHNICAL_IMPLEMENTATION.md (40 min - detailed read) -2. API_RESOURCES_AND_CONTACTS.md (30 min - full read) -3. Code examples in PHASE1_TECHNICAL_IMPLEMENTATION.md (60-90 min - study) -4. UK_FEATURE_PRIORITIZATION.md β†’ Implementation Examples (30 min) - ---- - -## Questions & Decision Points - -### For Product Leadership -1. **Commitment:** Can we allocate 2 engineers full-time for 8 weeks? -2. **Partnerships:** Will we sponsor API access requests to HEDD, GMC, NMC? -3. **Revenue Model:** Approve tiered pricing (Free/Pro/Enterprise)? -4. **Timeline:** Can we launch beta by Week 5? -5. **International:** After UK success, should we expand to Ireland/Australia? - -### For Engineering -1. **Resources:** Do we have backend capacity starting immediately? -2. **Technical:** Any concerns with HEDD/GMC/NMC integration approach? -3. **Alternatives:** Any preference on API vs. scraper approach for health registers? -4. **Testing:** Do we have QA capacity for Phase 1 scope? - -### For Sales/Marketing -1. **Positioning:** Are we confident "degree verification" is primary differentiator? -2. **Channels:** Should we prioritize direct sales or partnerships? -3. **Pricing:** Does Β£49/Professional tier feel right for target market? -4. **Beta:** Can we identify 3-5 recruitment agency beta partners by Week 2? - ---- - -## Success Criteria (End of Phase 1) - -### Must-Haves -- βœ… HEDD integration live (real-time + manual review tracking) -- βœ… Timeline fraud detection enhanced -- βœ… Companies House director verification working -- βœ… GMC/NMC healthcare checks live -- βœ… 500+ public signups -- βœ… 10%+ weekly active check rate - -### Nice-to-Haves -- βœ… 85%+ user satisfaction score -- βœ… Media/analyst coverage -- βœ… 5+ paying customers (revenue: Β£2-5K MRR) -- βœ… Documented case studies - -### Failure Indicators (Red Flags) -- ❌ <100 signups after public launch -- ❌ HEDD/GMC access denied with no scraper backup -- ❌ >5% API error rate -- ❌ <50% feature adoption - ---- - -## File Manifest - -``` -/mnt/d/Git/TrueCV/ -β”œβ”€β”€ EXECUTIVE_SUMMARY.md (5-page exec overview) -β”œβ”€β”€ UK_FEATURE_PRIORITIZATION.md (30-page detailed prioritization) -β”œβ”€β”€ PHASE1_TECHNICAL_IMPLEMENTATION.md (60-page technical specs + code) -β”œβ”€β”€ UK_MARKET_STRATEGY.md (40-page market + GTM strategy) -β”œβ”€β”€ API_RESOURCES_AND_CONTACTS.md (20-page API integration guide) -└── README_UK_STRATEGY.md (this file - navigation guide) -``` - ---- - -## Version History - -**v1.0 - January 2026** -- Initial UK market strategy & implementation plan -- 4 comprehensive strategy documents -- Phase 1 technical specifications -- API integration guide -- Ready for Q1 2026 execution - ---- - -## Contact & Support - -**For questions about this strategy:** -- Product Lead: [Name] - Overall strategy & market analysis -- Engineering Lead: [Name] - Technical feasibility & architecture -- API Integration: [Name] - HEDD, GMC, NMC coordination - -**For strategy updates:** -These documents will be updated quarterly with: -- Market feedback from beta partners -- API integration progress -- Competitive landscape changes -- Revised financial projections -- Phase 2 feature updates - ---- - -## Appendix: Key Definitions - -**HEDD:** Higher Education Degree Datacheck - UK's official degree verification service (140+ universities) - -**GMC:** General Medical Council - UK regulator for doctors (~250K registered) - -**NMC:** Nursing and Midwifery Council - UK regulator for nurses/midwives (~700K registered) - -**Companies House:** UK company registration authority - maintains register of 3.4M companies + directors - -**Timeline Fraud:** Employment/education date inconsistencies (overlaps, gaps, sequential issues) - -**TAM:** Total Addressable Market - theoretical maximum revenue if 100% market capture - -**SAM:** Serviceable Available Market - realistic segment we can target - -**SOM:** Serviceable Obtainable Market - Year 1 revenue target - -**CAC:** Customer Acquisition Cost - avg. cost to acquire one paying customer - -**ARPU:** Average Revenue Per User - avg. monthly/annual revenue per customer - -**LTV:CAC:** Customer lifetime value to acquisition cost ratio (healthy SaaS: >3:1) - ---- - -## License & Confidentiality - -This strategy document is internal to TrueCV and contains commercially sensitive information including: -- Market sizing & financial projections -- Competitive positioning -- Product roadmap -- API integration details - -**Distribution:** Product team, engineering, leadership only - ---- - -END OF DOCUMENT - -**Last Updated:** January 20, 2026 -**Next Review:** April 1, 2026 (Post-Phase 1 Launch) diff --git a/UK_FEATURE_PRIORITIZATION.md b/UK_FEATURE_PRIORITIZATION.md deleted file mode 100644 index 76bc8c8..0000000 --- a/UK_FEATURE_PRIORITIZATION.md +++ /dev/null @@ -1,631 +0,0 @@ -# TrueCV UK Market Feature Prioritization - -**Date:** January 2026 -**Focus:** UK-Only Market Opportunities -**Baseline:** Companies House integration, Claude AI parsing, Timeline analysis - ---- - -## Executive Summary - -UK CV fraud is escalating with AI-generated deepfakes, synthetic identities, and traditional qualification falsification. The most impactful opportunity for TrueCV in the UK market is **degree verification integration** (HEDD API), followed by **employment verification automation** and **professional body registration checks**. These three features represent 78% of recruiter pain points and address 85% of detected fraud patterns. - ---- - -## Market Context: UK CV Fraud Landscape - -### Fraud Patterns (Detection Priority) - -| Fraud Type | Prevalence | Current Detection | UK-Specific Impact | -|---|---|---|---| -| **Fake/False Degrees** | 1 in 5 candidates (20%) | NONE | High: Β£4.2B+ annual cost to UK employers | -| **Exaggerated Qualifications** | 40% of CV lies | Manual (slow) | High: Concentrated in grad hiring | -| **Employment Date Falsification** | 20% of candidates | Timeline analysis | Medium: Improving with tool usage | -| **Job Title Inflation** | 25% of candidates | Manual review | High: Linked to pay fraud | -| **Professional Registration False Claims** | 8-12% (regulated sectors) | NONE | Critical: Legal/compliance risk | -| **AI-Generated/Deepfake Content** | Emerging in 2026 | NONE | Emerging: Detected by identity mismatch | - -**Key Insight:** 1 in 3 UK job seekers admit to CV embellishment; 24% of screened CVs fail verification (Reed Screening). - ---- - -## Available UK Data Sources & APIs - -### 1. HEDD (Higher Education Degree Datacheck) - -**Status:** Operational, 140+ universities, 1.5M+ verifications completed - -**What It Does:** -- Real-time degree verification against encrypted university records -- Confirms: Name, institution, qualification, subject, grade, dates -- 400+ fake diploma mills identified and tracked -- Manual verification for non-exact matches (10 working days) - -**API Integration:** -- **Access Method:** Not a traditional REST API; web portal with form submission -- **Requires:** Registration as employer/screening body + candidate consent -- **Response Time:** Instant for exact matches, 10 days for manual -- **Cost:** Typically Β£1-5 per verification (commercial rates) - -**Implementation Effort:** **Medium (2-3 weeks)** -- Iframe/form integration into TrueCV UI -- Candidate consent workflow -- Result polling for manual verifications -- Database sync with CVData.Education entries - -**Impact Score:** **9.5/10** -- Eliminates 90%+ of fake degree claims -- 1 in 5 UK hires have false degree (Cifas data) -- Recruiters rank this #1 missing feature -- Regulatory confidence (compliance visible) - ---- - -### 2. GMC Register (Doctors) - Searchable - -**Status:** Public searchable register, no official API - -**What It Does:** -- Live register of all registered medical practitioners -- Shows: Registration status, specialties, restrictions -- Manual search required - -**API Integration:** -- **Access Method:** Web scraping GMC register (https://www.gmc-uk.org/) -- **Alternative:** Request API access directly (may be granted) -- **Requires:** Candidate permission to check - -**Implementation Effort:** **Low (3-5 days)** -- Web scraper or API request process -- FlagCategory expansion: `MedicalRegistration` -- Specialization extraction - -**Impact Score:** **6.5/10** -- Targets 1.5M NHS workers + private doctors -- High value for healthcare recruitment -- Medium market size in TrueCV context -- But limited to one profession vs. broad application - ---- - -### 3. NMC Register (Nurses/Midwives) - Searchable - -**Status:** Public searchable register, no official API - -**What It Does:** -- Register of all UK nurses, midwives, nursing associates -- Shows: Registration status, Pin number, areas of practice -- Real-time updates - -**API Integration:** -- **Access Method:** Web scraping NMC register -- **Alternative:** Similar API request potential as GMC -- **Requires:** Candidate permission - -**Implementation Effort:** **Low (3-5 days)** -- Reusable scraper pattern from GMC -- FlagCategory expansion: `HealthcareRegistration` - -**Impact Score:** **7/10** -- Targets 700K+ UK nurses -- Growing market (NHS recruitment surge) -- Similar process to GMC -- High fraud risk in agency nursing - ---- - -### 4. Companies House API (Already Integrated) - -**Status:** βœ“ Already implemented in TrueCV - -**Current Coverage:** -- Fuzzy matching on company names (70%+ threshold) -- Company registration status validation -- 30-day cache layer - -**Enhancement Opportunity:** -- **Directors House Search API:** Verify claimed director roles -- **Officer Appointments API:** Cross-check employment dates against directorship periods -- **Dissolution Dates:** Flag roles claimed after company closure - -**Implementation Effort:** **Low (1-2 weeks)** -- Extend existing CompaniesHouseClient -- Add new service layer: CompanyDirectorVerifier -- Create new FlagCategory: `DirectorshipVerification` - -**Impact Score:** **7.5/10** -- Validates self-employed/director claims (high fraud area) -- Existing infrastructure (quick win) -- Medium-high detection value -- Applicable to 15-20% of CVs with self-employment - ---- - -### 5. HMRC Employment Verification (Payroll Data) - -**Status:** ⚠️ Restricted access, requires government agreement - -**What It Does:** -- RTI (Real Time Information) payroll records -- Confirms employment, salary ranges, dates -- Can flag gaps/misalignments - -**API Integration:** -- **Access Method:** Digital Marketplace restricted APIs -- **Requires:** Pre-employment screening accreditation -- **Compliance:** GDPR, IR35 rules, FCA oversight - -**Implementation Effort:** **High (6-8 weeks)** -- Requires third-party accreditation partnership -- Complex consent flows -- Regulatory compliance layer -- Integration with partner screening providers (Verifile, DDC, etc.) - -**Impact Score:** **9/10** (if accessible) -- Authoritative employment verification -- Detects date falsification with 95%+ accuracy -- High compliance value (IR35, tax verification) -- BUT: Access requires government partnership - ---- - -### 6. Professional Body Registers - -#### Regulated Professions (UK Regulatory Bodies) - -| Profession | Regulator | Register | API Status | Verification Value | -|---|---|---|---|---| -| Accountants (ICAEW) | ICAEW | Member search | ❌ No API | High (~180K members) | -| Lawyers (SRA) | SRA | Public register | ❌ No API | High (~170K solicitors) | -| Engineers (IET/ICE) | Various | Member search | ❌ No API | Medium (~150K) | -| Architects | RIBA | Public register | ❌ No API | Medium (~50K) | -| Psychologists | HCPC | Public register | ❌ No API | Low (~50K) | - -**Access Pattern:** All require manual web scraping or direct API requests to individual bodies - -**Implementation Effort:** **Medium-High (4-6 weeks per profession)** -- Build scraper templates per register format -- Create generic ProfessionalRegistration flag type -- Maintain updatable registry of professions/URLs - -**Impact Score:** **6-7/10** (varies by profession) -- ICAEW/SRA highest value (financial/legal fraud common) -- Medium-term value; low adoption initially -- Regulatory compliance appeal -- Requires consent management per profession - ---- - -### 7. Regulated Professions Register (GOV.UK) - -**Status:** Central index of regulated professions - -**What It Does:** -- Directory of 140+ regulated professions -- Links to individual regulators -- Government-maintained reference - -**Use Case for TrueCV:** -- **Enrichment layer:** When CV claims regulated profession, cross-check against GOV.UK registry -- **Flag generation:** "Claims regulated profession but regulator not found" -- **Guidance:** Link to correct regulator for user lookup - -**Implementation Effort:** **Very Low (2-3 days)** -- Query GOV.UK API or static dataset -- Regex match against CV claims -- Decision tree for flagging - -**Impact Score:** **5/10** -- Low direct detection value -- High utility for user education -- Low implementation cost -- Good for Trust/Transparency (UX win) - ---- - -### 8. DBS Check Integration - -**Status:** ⚠️ Partner APIs available, no direct integration - -**What It Does:** -- Criminal record disclosure (Basic/Standard/Enhanced) -- Barring information for regulated sectors -- Managed through third-party screening providers - -**API Integration Partners:** -- uCheck, DDC, Verifile, Security Watchdog, iCOVER -- REST-based APIs available -- Identity verification required (UKDIATF compliant) - -**Implementation Effort:** **High (8-10 weeks)** -- Vendor selection and agreement -- Identity verification layer (biometric/KYC) -- Consent and data retention compliance -- Embedding into CV check workflow - -**Impact Score:** **8.5/10** (High business value, regulatory) -- Addresses emerging security concern -- High compliance requirement for regulated roles -- Revenue opportunity (typically Β£20-50/check) -- BUT: Complex compliance, may cannibalize revenue if free tier - ---- - -## Ranked Feature Prioritization - -### Priority Matrix: Detection Value Γ— Implementation Feasibility - -``` -HIGH VALUE + EASY β”‚ HIGH VALUE + HARD -─────────────────────┼───────────────── -1. HEDD (Degrees) β”‚ 8. DBS Integration -2. Timeline Enhance β”‚ 5. HMRC Payroll -3. GMC/NMC Scraper β”‚ 6. Professional Bodies -4. Directors House β”‚ -─────────────────────┼───────────────── -MEDIUM VALUE + EASY β”‚ MEDIUM VALUE + HARD -─────────────────────┼───────────────── -7. GOV.UK Registry β”‚ -``` - ---- - -## Recommended Implementation Roadmap - -### Phase 1: Q1 2026 (Weeks 1-8) - High-Impact Foundation - -**1. HEDD Degree Verification** ⭐ PRIMARY FOCUS -- **Deliverable:** Full HEDD integration with candidate consent flow -- **Effort:** 2-3 weeks dev + 1 week testing -- **Expected Impact:** - - Covers ~40% of CV fraud patterns - - Solves recruiters' #1 complaint - - Immediate competitive advantage -- **Pricing:** Pass-through cost model ($1-2 per verification to user) -- **Implementation:** - ``` - src/TrueCV.Infrastructure/ExternalApis/HeddClient.cs - src/TrueCV.Application/Interfaces/IEducationVerifierService.cs - src/TrueCV.Infrastructure/Services/EducationVerifierService.cs - FlagCategory += EducationVerification - Add new flag types: - - DegreeNotFound - - DegreeClassificationMismatch - - GraduationDateMismatch - - InstitutionNotFound - ``` - -**2. Enhanced Timeline Analysis** ⭐ QUICK WIN -- **Enhancement:** Extend existing TimelineAnalyserService -- **Effort:** 1 week dev -- **Expected Impact:** - - Detect suspicious employment date overlaps (>20% of fraud) - - Flag gaps exceeding 12 months (UK norm shifting to acceptability) - - Identify degree end date before employment start anomalies -- **Implementation:** - ``` - src/TrueCV.Infrastructure/Services/TimelineAnalyserService.cs - - Add: UKEmploymentPatternAnalyzer - - Add: EducationEmploymentSequenceValidator - - New flags: - - EmploymentStartBeforeEducationCompletion - - UnusualEmploymentGapPattern - - MultipleParallelEmployments (>20% tolerated) - ``` - -**3. GMC/NMC Healthcare Register Verification** ⭐ NICHE ADVANTAGE -- **Deliverable:** Healthcare professional register scraper + service layer -- **Effort:** 1 week dev (reusable pattern) -- **Expected Impact:** - - Dominates healthcare recruitment niche - - High-value vertical market - - Recurring revenue potential -- **Implementation:** - ``` - src/TrueCV.Infrastructure/ExternalApis/HealthcareRegisterClient.cs - src/TrueCV.Application/Interfaces/IHealthcareVerifierService.cs - FlagCategory += HealthcareRegistration - New flags: - - GMCNotFound / GMCRestricted / GMCLapsed - - NMCNotFound / NMCRestricted - ``` - -**4. Companies House Enhancement** ⭐ LEVERAGE EXISTING -- **Deliverable:** Director verification cross-check -- **Effort:** 1-2 weeks dev -- **Expected Impact:** - - Catches directorship fraud (15-20% of self-employed CVs) - - Detects employment after company dissolution -- **Implementation:** - ``` - Extend: src/TrueCV.Infrastructure/ExternalApis/CompaniesHouseClient.cs - Add: OfficerAppointmentsClient.GetDirectorAppointments(name, companyNumber) - New Service: DirectorshipVerificationService - FlagCategory += DirectorshipVerification - New flags: - - DirectorshipRoleLengthMismatch - - EmploymentClaimedAfterCompanyDissolution - - NoDirectorshipFound - ``` - ---- - -### Phase 2: Q2 2026 (Weeks 9-16) - Regulatory & Professional Bodies - -**5. Professional Body Registers (ICAEW, SRA First)** -- **Deliverable:** Modular scraper framework + initial ICAEW/SRA -- **Effort:** 3-4 weeks dev -- **Expected Impact:** - - High-value professional segment (financial/legal) - - Regulatory appeal -- **Implementation:** - ``` - src/TrueCV.Infrastructure/ExternalApis/ProfessionalBodyClient.cs - src/TrueCV.Infrastructure/ExternalApis/Scrapers/ - - ICAEWMembershipVerifier.cs - - SRALawverVerifier.cs - - IETEngineerVerifier.cs - FlagCategory += ProfessionalRegistration - ``` - -**6. GOV.UK Regulated Professions Registry** -- **Deliverable:** Enrichment layer for professional claims -- **Effort:** 2-3 days dev -- **Expected Impact:** - - Trust/transparency feature - - User education value - - Low dev cost, medium UX value - ---- - -### Phase 3: Q3 2026+ (Strategic Partnerships) - -**7. HMRC RTI Payroll Integration** -- **Status:** Requires government partnership/accreditation -- **Effort:** 8-10 weeks (vendor dependent) -- **Expected Impact:** "Gold standard" employment verification -- **Business Model:** Premium feature tier - -**8. DBS Check Partnership** -- **Status:** Requires vendor agreement + compliance framework -- **Effort:** 8-10 weeks -- **Expected Impact:** Security compliance selling point -- **Business Model:** Premium tier or per-check revenue - ---- - -## Implementation Examples - -### 1. HEDD Integration Example - -```csharp -// New service interface -public interface IEducationVerifierService -{ - Task VerifyDegreeAsync( - string candidateName, - DateOnly dateOfBirth, - string institution, - DateOnly? graduationYear, - string? qualification, - string? subject, - string? grade); -} - -// New flag categories -public enum FlagCategory -{ - Employment, - Education, // βœ“ Existing - Timeline, - Plausibility, - EducationVerification, // NEW - DirectorshipVerification, // NEW - HealthcareRegistration, // NEW - ProfessionalRegistration // NEW -} - -// Example: Enhanced timeline analysis -public class TimelineAnalyserService -{ - private const int NormalGapMonths = 3; // UK norm - private const int RedFlagGapMonths = 12; - - public TimelineGap CheckGapPlausibility(DateOnly startDate, DateOnly endDate) - { - if ((endDate - startDate).Days > 366 && - endDate.AddMonths(-NormalGapMonths) < startDate) - { - return new TimelineGap - { - Severity = FlagSeverity.Medium, - Title = "Unusually Long Employment Gap", - Description = "Gap exceeds UK employment pattern norms" - }; - } - } -} -``` - -### 2. Healthcare Register Scraper Example - -```csharp -public class GMCRegisterVerifier -{ - private const string GMCRegisterUrl = "https://www.gmc-uk.org/"; - - public async Task VerifyDoctorAsync( - string fullName, - string gmcNumber = null) - { - // Web scrape or API query GMC register - var result = await ScrapeGMCRegisterAsync(fullName, gmcNumber); - - return new GMCVerificationResult - { - IsFound = result != null, - RegistrationStatus = result?.Status, - Specialties = result?.Specialties, - Restrictions = result?.Restrictions, - VerificationConfidence = result != null ? 95 : 0 - }; - } -} - -public class NMCRegisterVerifier -{ - public async Task VerifyNurseAsync( - string fullName, - string pinNumber = null) - { - // Similar pattern to GMC - } -} -``` - -### 3. Companies House Director Verification Example - -```csharp -public class DirectorshipVerificationService -{ - public async Task VerifyDirectorshipAsync( - string candidateName, - string companyName, - DateOnly claimedStartDate, - DateOnly claimedEndDate) - { - // Get company number from existing Companies House integration - var company = await _companyVerifier.VerifyCompanyAsync(companyName); - - if (!company.IsVerified) - { - return CreateUnverifiedResult("Company not found"); - } - - // Query officer appointments - var appointments = await _companiesHouseClient.GetOfficerAppointmentsAsync( - company.MatchedCompanyNumber); - - var matchingAppointment = appointments - .FirstOrDefault(a => FuzzyMatch(a.OfficerName, candidateName)); - - if (matchingAppointment == null) - { - return CreateFlagResult( - "DirectorshipNotFound", - $"No officer appointment found for {candidateName}"); - } - - // Verify dates align - if (matchingAppointment.AppointmentDate > claimedStartDate) - { - return CreateFlagResult( - "DirectorshipDateMismatch", - $"Claimed start date ({claimedStartDate}) before appointment date"); - } - - return CreateVerifiedResult(matchingAppointment); - } -} -``` - ---- - -## Success Metrics for Phase 1 - -| Metric | Target | Owner | -|---|---|---| -| HEDD Integration Live | Week 3 | Engineering | -| Education Flags Accuracy | >95% precision | QA | -| Timeline Gaps Detected | >80% of actual gaps | Analytics | -| GMC/NMC Scraper Complete | Week 4 | Engineering | -| Healthcare Niche Adoption | 5+ healthcare recruiter orgs | Sales | -| Detection Rate Improvement | +35% over baseline | Product | -| User Satisfaction (HEDD) | >85% (low friction) | Support | - ---- - -## Risk Mitigation - -### HEDD Integration Risks -- **Risk:** API changes or rate limiting -- **Mitigation:** Use web portal integration first, request official API later; cache results aggressively -- **Risk:** Candidate consent complexity -- **Mitigation:** Clear one-click consent flow; educational messaging - -### Professional Register Scraping Risks -- **Risk:** Website structure changes break scrapers -- **Mitigation:** Robust error handling; monitoring alerts; manual fallback links provided to users -- **Risk:** Regulators restrict scraping -- **Mitigation:** Request official API access proactively; provide value-add (fraud detection = mutual benefit) - -### HMRC/DBS Integration Risks -- **Risk:** Regulatory gatekeeping / approval delays -- **Mitigation:** Start vendor conversations NOW; build partnerships in parallel -- **Risk:** Compliance burden -- **Mitigation:** Partner with established pre-employment screening vendors (Verifile, DDC) who handle compliance - ---- - -## Competitive Advantage Summary - -| Feature | TrueCV Advantage | Timeline | -|---|---|---| -| **HEDD Integration** | Only dedicated CV tool with instant degree verification | Q1 2026 | -| **Healthcare Register Targeting** | Only tool targeting healthcare recruitment niche | Q1 2026 | -| **Timeline + Education Linking** | CV tells employment started before degree completed = RED FLAG | Q1 2026 | -| **Professional Body Framework** | Modular; expandable to 140+ professions vs competitors' static lists | Q2 2026 | -| **Companies House Directors** | Only tool verifying self-employment claims against official records | Q1 2026 | - ---- - -## UK Market Positioning - -**Tagline:** *"The only CV verification tool UK recruiters need - from degree to directorship"* - -**Market Segment:** Recruitment agencies, HR departments, background screening companies - -**Price Model (Suggested):** -- **Free Tier:** Companies House + Timeline Analysis -- **Professional Tier:** +HEDD verification, +Healthcare registers (Β£29-49/user/month) -- **Enterprise Tier:** +HMRC payroll, +DBS integration, +Professional bodies (Custom pricing) - ---- - -## API Accessibility Summary - -| Source | Type | Access Level | Cost | Feasibility | -|---|---|---|---|---| -| HEDD | Web Portal + Manual | Registered user | Β£1-5/check | Easy β†’ Direct | -| GMC Register | Public Web | Scrape/No API | Free | Easy β†’ Scraper | -| NMC Register | Public Web | Scrape/No API | Free | Easy β†’ Scraper | -| Companies House | REST API βœ“ | Commercial | Free-Β£100/mo | Already done | -| Directors API | REST API | Commercial | Included | Easy β†’ Extend | -| GOV.UK Professions | REST API | Open | Free | Easy β†’ Query | -| ICAEW Register | Public Web | Scrape/No API | Free | Medium β†’ Scraper | -| SRA Register | Public Web | Scrape/No API | Free | Medium β†’ Scraper | -| HMRC RTI | REST API | Restricted | Via partner | Hard β†’ Partnership | -| DBS | REST API | Via partner | Β£20-50/check | Hard β†’ Partnership | - ---- - -## Next Steps (This Week) - -1. **Confirm HEDD feasibility** with legal/compliance (consent requirements, data handling) -2. **Request GMC/NMC API access** officially (may grant vs. scraping) -3. **Map ICAEW/SRA register structures** for scraper design -4. **Contact HMRC/DBS vendors** (Verifile, DDC) for partnership exploration -5. **UK recruiter interviews:** Validate prioritization with 10-15 target customers -6. **Wireframe HEDD UI** in parallel with backend work - ---- - -## References - -- [HEDD (Higher Education Degree Datacheck)](https://hedd.ac.uk/) -- [GMC Register](https://www.gmc-uk.org/registration-and-licensing/our-registers) -- [NMC Register](https://www.nmc.org.uk/registration/search-the-register/) -- [UK Regulated Professions Register](https://www.regulated-professions.service.gov.uk/) -- [CV Fraud UK Statistics - Cifas](https://www.cifas.org.uk/) -- [UK Employment Gaps Report 2025 - LiveCareer](https://www.livecareer.co.uk/career-advice/uk-employment-gap-report) -- [Companies House API Documentation](https://developer.companieshouse.gov.uk/) diff --git a/UK_MARKET_STRATEGY.md b/UK_MARKET_STRATEGY.md deleted file mode 100644 index d75cfbe..0000000 --- a/UK_MARKET_STRATEGY.md +++ /dev/null @@ -1,416 +0,0 @@ -# TrueCV UK Market Strategy & Product Roadmap - -**Document Date:** January 2026 -**Focus:** UK CV verification market positioning -**Horizon:** 12-month growth plan - ---- - -## Market Opportunity - -### Problem Statement - -**UK CV fraud costs employers Β£4.2B+ annually** and is accelerating: - -- **1 in 5 candidates** claim false university degrees (Cifas, 2025) -- **40% of CV embellishments** relate to qualifications -- **24% of screened CVs** fail verification (Reed Screening, 2025) -- **AI-generated fraud emerging:** Deepfakes, synthetic identities, proxy interviews now feasible -- **Regulatory risk:** Companies failing due diligence face legal liability in regulated sectors - -**Traditional Pre-Employment Screening is Broken:** -- Manual background checks take 5-10 days -- Education verification requires contacting universities individually (10 days+) -- Professional registration checks vary by profession with no central access -- No integrated view across employment, education, and professional credentials - ---- - -## Market Size & Addressable Opportunity - -### TAM (Total Addressable Market) - -**UK Recruitment Market Segment:** -- **190,000 recruitment companies** in UK (2024) -- **~3,500+ recruiting via dedicated screening tools** -- **Estimated Β£2.8B spent on background screening annually** - -### SAM (Serviceable Addressable Market) - -**TrueCV Target Segment:** -- Mid-market recruitment agencies (50-500 staff): ~800 companies -- Corporate HR departments (100+ employees): ~15,000 companies -- Specialist vertical recruiters (healthcare, finance, legal): ~2,500 companies -- **Total TAM:** ~18,300 potential customers - -**Estimated SAM value at Β£180/customer/year:** ~Β£3.3M annually - -### SOM (Serviceable Obtainable Market) - Year 1 - -- **Target:** 50-100 customers at Β£50-200/month (various tiers) -- **Projected revenue:** Β£30-240K in Year 1 -- **Growth trajectory:** Doubling annually if market adoption strong - ---- - -## Competitive Landscape - -### Current Competitors - -| Competitor | Coverage | Strength | Weakness | -|---|---|---|---| -| **Workable** | ATS + basic screening | Broad platform | No CV verification focus | -| **Deel** | Global hiring + screening | Compliance authority | Not UK-focused; expensive | -| **Checkr** | Background checks + DBS | Scale and integrations | No CV-specific verification | -| **Verifile** | Pre-employment screening | Established relationships | Traditional manual process | -| **Veriff** | Identity verification | Strong deepfake tech | Not employment-focused | - -### TrueCV Differentiation - -| Feature | TrueCV | Workable | Deel | Checkr | Verifile | -|---|---|---|---|---|---| -| **Degree Verification (HEDD)** | βœ… Q1 2026 | ❌ | ❌ | ❌ | ❌ | -| **Healthcare Register Checks** | βœ… Q1 2026 | ❌ | ❌ | ❌ | ❌ | -| **Timeline Fraud Detection** | βœ… Q1 2026 | ❌ | ❌ | ❌ | ❌ | -| **Director Verification** | βœ… Q1 2026 | ❌ | ❌ | ❌ | ❌ | -| **Companies House API** | βœ… | ❌ | ❌ | ❌ | ❌ | -| **Professional Bodies** | βœ… Q2 2026 | ❌ | ❌ | Partial | Partial | -| **DBS Integration** | βœ… Q3 2026 | ❌ | βœ… | βœ… | βœ… | - -**Key Advantage:** *First-to-market with CV-specific, UK-integrated verification stack* - ---- - -## Product Strategy - -### Phase 1 (Q1 2026): MVP Launch - "The Verified CV" - -**Positioning:** "Every UK degree verified. Every timeline verified. Every claim validated." - -**Core Features (8 weeks):** -1. HEDD degree verification (real-time + manual review tracking) -2. Timeline fraud detection (overlaps, gaps, education-employment sequencing) -3. Companies House director verification -4. GMC/NMC healthcare register checks -5. Enhanced CV parsing (education/employment entity linking) - -**Target Customer:** Medium recruitment agencies (50-200 hiring/year) - -**Pricing Model:** -- **Freemium:** 3 free CV checks/month (companies house + timeline) -- **Professional:** Β£49/month - Unlimited checks + HEDD verification -- **Enterprise:** Β£199/month - Pro features + API access + custom integrations - -**Launch Strategy:** -- Partner with 3-5 recruitment agencies for beta testing (Week 2-4) -- Launch public beta (Week 5) -- GA release (Week 8) -- Press/analyst outreach highlighting fraud prevention angle - -**Success Metrics:** -- 500+ signups in first 4 weeks -- 10%+ weekly active check rate -- 85%+ feature satisfaction (NPS >40) - ---- - -### Phase 2 (Q2 2026): Professional Bodies Expansion - -**Positioning:** "Verify degrees. Verify certifications. Verify everything." - -**New Features:** -1. ICAEW accountant registration checks -2. SRA solicitor registration checks -3. IET engineer registration checks -4. RIBA architect registration checks -5. GOV.UK regulated profession enrichment (API layer) - -**Target Market Expansion:** -- Financial services recruiting -- Legal recruiting -- Engineering recruiting -- Niche vertical specialists - -**Business Impact:** -- +40% monthly active users -- +3x engagement (more verifications per customer) -- +2x ARPU (professional tier premium) - -**Pricing:** Professional tier β†’ Β£79/month; Enterprise β†’ Β£249/month - ---- - -### Phase 3 (Q3 2026): Compliance & Regulatory - -**Positioning:** "Full employment verification. Complete compliance confidence." - -**New Features:** -1. HMRC payroll verification (partnership model) -2. DBS check integration (partnership + commission) -3. Right-to-Work verification API -4. Audit trail & compliance reporting -5. Batch processing API - -**Target Markets:** -- Large corporate HR departments -- Pre-employment screening agencies -- Temp/staffing agencies (compliance-heavy) - -**Business Model Evolution:** -- Per-check commission on DBS (Β£5-15 per check) -- HMRC verification licensing (custom pricing) -- API/platform access (Β£500-2,000/month) - ---- - -## Go-To-Market Strategy - -### Sales Channels - -#### Channel 1: Direct Sales (Lead) -- Target recruitment agency owners (LinkedIn outreach) -- HR directors at 100+ employee companies -- Sales pitch: "Reduce hiring risk. Verify every claim. In minutes." -- Expected conversion: 5-8% from qualified leads -- Sales cycle: 2-4 weeks - -#### Channel 2: Partnerships -- Integrate with ATS platforms (Workable, Bullhorn, Lever) -- White-label for existing background check providers -- API marketplace (Zapier, Make, etc.) -- Expected impact: +30% user acquisition annually - -#### Channel 3: Content & SEO -- Blog: "UK CV Fraud Patterns" (targeting "CV verification UK" search) -- Case studies: "How we caught 18 fake degrees in Q1" -- Thought leadership: Webinars on fraud detection for HR -- Expected impact: +20% organic users - -#### Channel 4: Vertical Specialists -- Healthcare recruiter outreach (GMC/NMC checks as entry) -- Financial services (ICAEW verification) -- Legal recruiting (SRA verification) -- Expected impact: +25% high-value customers - -### Marketing Messaging - -**Tagline:** "Hire with Confidence. Verify with TrueCV." - -**Core Messages:** -1. **For Recruiters:** "Catch 90% of degree fraud in seconds. One-click HEDD verification." -2. **For HR Teams:** "Complete CV validation pipeline. Reduce hiring risk by 70%." -3. **For Compliance:** "Full audit trail. DBS integration. Regulatory confidence." - -**Proof Points:** -- "Trusted by 5+ UK recruitment agencies in first 30 days" -- "1 in 5 candidates have false degrees β€” we find them" -- "Average savings: Β£8,000 per bad hire prevented" - ---- - -## Pricing Strategy - -### Tier Analysis - -| Tier | Users | Monthly | Annual | Features | -|---|---|---|---|---| -| **Free** | Solo recruiters | Β£0 | Β£0 | 3 CV checks, Companies House | -| **Professional** | Small agencies | Β£49 | Β£490 | Unlimited checks, HEDD, Timeline | -| **Enterprise** | Large orgs | Β£199 | Β£1,990 | API access, custom integrations, DBS | -| **API/Platform** | Integration partners | Β£500-2K | Β£6-24K | Batch processing, white-label | - -### Unit Economics (Target - Year 2) - -- **Customer Acquisition Cost (CAC):** Β£150-300 (organic/partner-led) -- **Average Revenue Per User (ARPU):** Β£60-120/month (mix of tiers) -- **Payback Period:** 2-4 months -- **Gross Margin:** 75-80% (SaaS model) -- **LTV:CAC Ratio:** 4:1+ (healthy SaaS) - ---- - -## Organizational Requirements - -### Team Structure (12-month horizon) - -**Now (Q1):** -- 2 Backend Engineers (full-time on Phase 1) -- 1 QA Engineer -- 1 Product Manager -- 1 Marketing/Growth Lead - -**Q2 Addition:** -- +1 Full-stack Engineer (vertical expansion) -- +1 Sales/BD Lead (partnership development) - -**Q3 Addition:** -- +1 Customer Success Manager (onboarding) -- +1 Part-time Data Analyst (metrics/LTV) - ---- - -## Key Risks & Mitigations - -| Risk | Probability | Impact | Mitigation | -|---|---|---|---| -| **HEDD API access delayed** | Medium | High | Use web portal integration; request API access in parallel | -| **NHS/GMC scraping blocked** | Low | Medium | Request official API access proactively; provide value-add | -| **Regulatory gatekeeping** | Medium | Medium | Build partnerships early; engage with regulators directly | -| **DBS/HMRC integration delays** | Medium | Medium | Partner with established vendors (Verifile, DDC) handling compliance | -| **Market adoption slower than expected** | Medium | Medium | Focus on high-value verticals first (healthcare, finance); expand TAM gradually | -| **Competitor response** | Medium | Medium | Maintain first-mover advantage; deepen integrations; expand internationally (Ireland, Australia next) | - ---- - -## Success Metrics (12-Month Goals) - -### Business Metrics -- **Revenue:** Β£250K+ annualized (Mix of Professional/Enterprise) -- **Customers:** 50-75 paying customers -- **Monthly Recurring Revenue (MRR):** Β£20K+ -- **CAC Payback:** <4 months -- **NPS:** >50 (positive) - -### Product Metrics -- **HEDD Verification Accuracy:** >98% match rate -- **Timeline Detection Rate:** 85%+ of actual gaps/overlaps caught -- **Directorship Verification:** 95%+ accuracy (vs. Companies House records) -- **Feature Adoption:** 80%+ of Professional tier customers using HEDD -- **API Uptime:** 99.9% - -### Market Metrics -- **Brand Awareness:** 15%+ of recruitment agencies aware of TrueCV -- **Market Share:** 0.5-1% of addressable recruitment screening market -- **Vertical Penetration:** 3%+ of healthcare recruiters, 2%+ financial recruiters - ---- - -## Financial Projections - -### Conservative Scenario (50 customers by end-of-year) - -**Revenue Breakdown:** -- 30 Γ— Professional tier at Β£49/mo: Β£1,470/mo -- 15 Γ— Enterprise tier at Β£199/mo: Β£2,985/mo -- 5 Γ— API/Platform at Β£1,000/mo: Β£5,000/mo -- **Total MRR (Dec 2026):** Β£9,455 -- **Annualized:** Β£113,460 - -**Costs:** -- Engineering (2 FTE): Β£150K/year -- Infrastructure/APIs: Β£20K/year -- Sales/Marketing: Β£30K/year -- Operations: Β£20K/year -- **Total Cost:** Β£220K/year - -**Result:** Break-even at ~24 customers; profitable at 50+ customers - -### Growth Scenario (100 customers by end-of-year) - -- **MRR (Dec 2026):** Β£18,910 -- **Annualized Revenue:** Β£226,920 -- **Gross Margin:** 75% = Β£170K+ operational profit - ---- - -## Next 30 Days Action Plan - -### Week 1-2: Preparation -- [ ] Contact HEDD for API access / partner discussions -- [ ] Reach out to GMC/NMC about verification APIs -- [ ] Identify 5 recruitment agency beta partners -- [ ] Finalize HEDD compliance & consent workflows - -### Week 2-4: Development -- [ ] Complete HEDD integration (see Phase 1 technical doc) -- [ ] GMC/NMC scraper development -- [ ] Enhanced timeline analysis -- [ ] Companies House director verification - -### Week 3-4: Beta & Validation -- [ ] Beta launch with 3-5 agencies -- [ ] Collect feedback on UX/value -- [ ] Measure fraud detection accuracy -- [ ] Iterate on flag messaging/severity - -### Week 4+: Go-to-Market -- [ ] Public launch announcement -- [ ] Initial outreach to 20-30 qualified prospects -- [ ] Content marketing (first blog post live) -- [ ] Track signup rate & activation - ---- - -## Long-Term Vision (2-3 Years) - -**Expansion Opportunities Beyond UK:** - -### Ireland (Natural Extension) -- Similar legal framework to UK -- HEDD equivalent exists (HEA) -- Revenue opportunity: +Β£50-100K annually - -### Australia/New Zealand -- English-speaking markets -- Similar professional regulation frameworks -- Revenue opportunity: +Β£150-300K annually - -### EU Markets (Longer-term) -- Different regulatory landscape (more complex) -- ENIC-NARIC degree verification network -- Professional body registration varies by country - -### Vertical Integrations -- HR software integrations (Workday, SAP SuccessFactors) -- Talent acquisition platforms (multi-tool suites) -- Compliance software (audit logging, reporting) - ---- - -## Conclusion - -TrueCV addresses a massive UK market problem (Β£4.2B+ annual cost from CV fraud) with a focused, integrated solution. By launching with HEDD degree verification + timeline fraud detection in Q1 2026, we capture first-mover advantage in a gap no competitor fills. - -**The opportunity:** Become the UK's trusted CV verification layer for recruitment, reducing fraud while accelerating hiring processes. - -**The path:** Start with core features, expand vertically into professional bodies, then horizontally into compliance/regulatory, then internationally. - -**The outcome:** Build a defensible, recurring revenue business with 10-15% of the UK recruitment market within 3 years. - ---- - -## Appendix: Customer Personas - -### Persona 1: Agency Owner (Mid-Market) -- **Name:** Sarah, 48, runs recruitment agency (80 staff) -- **Problem:** Wasting 2-3 hours per hire verifying degrees manually -- **Budget:** Β£3K-8K/year on screening tools -- **Decision-making:** Speed & cost focus; wants manual verification eliminated -- **Buying signal:** "Can you reduce our verification time from 5 days to 5 minutes?" - -### Persona 2: Corporate HR Manager -- **Name:** James, 35, Head of HR at financial services firm (200 employees) -- **Problem:** Regulatory liability; reputational risk from bad hires -- **Budget:** Β£20K-50K/year on compliance & screening -- **Decision-making:** Compliance & audit trail critical; automation secondary -- **Buying signal:** "We need proof every hire has verified credentials for audits." - -### Persona 3: Specialist Vertical Recruiter -- **Name:** Dr. Lisa, 42, healthcare recruitment founder (20 staff) -- **Problem:** Need to verify GMC/NMC registration quickly; manual checks break hiring velocity -- **Budget:** Β£2K-5K/year (cost-sensitive) -- **Decision-making:** Speed & accuracy for regulated professions -- **Buying signal:** "If you verify healthcare pros instantly, we're in." - ---- - -## References & Data Sources - -- [CIFAS CV Fraud Report](https://www.cifas.org.uk/newsroom/1-in-5-lie-about-uni-degree-cv-fraud) -- [Reed Screening CV Verification Data](https://www.reed.com/) -- [UK Employment Gap Report 2025](https://www.livecareer.co.uk/career-advice/uk-employment-gap-report) -- [Companies House API Documentation](https://developer.companieshouse.gov.uk/) -- [HEDD (Higher Education Degree Datacheck)](https://hedd.ac.uk/) -- [GMC Register](https://www.gmc-uk.org/registration-and-licensing/our-registers) -- [NMC Register](https://www.nmc.org.uk/registration/search-the-register/) - diff --git a/deploy/README.md b/deploy/README.md deleted file mode 100644 index b244e77..0000000 --- a/deploy/README.md +++ /dev/null @@ -1,161 +0,0 @@ -# TrueCV Deployment Guide - -## Quick Start - -### 1. Server Setup (run once on fresh Ubuntu server) - -```bash -# Copy server-setup.sh to your server -scp deploy/server-setup.sh user@your-server:/tmp/ - -# SSH into server and run setup -ssh user@your-server -sudo bash /tmp/server-setup.sh -``` - -**Before running**, edit the script and update: -- `DOMAIN` - Your domain name -- `DB_PASSWORD` - Strong password for SQL Server -- `ADMIN_EMAIL` - Email for SSL certificate notifications - -### 2. Deploy Application (run from dev machine) - -```bash -# Edit deploy.sh and update configuration -nano deploy/deploy.sh - -# Make executable and run -chmod +x deploy/deploy.sh -./deploy/deploy.sh -``` - -**Update these values in deploy.sh:** -- `SERVER_USER` - SSH username -- `SERVER_HOST` - Server hostname or IP -- `DOMAIN` - Your domain name - -### 3. Enable SSL - -After DNS is configured and app is deployed: - -```bash -ssh user@your-server -sudo certbot --nginx -d truecv.yourdomain.com -``` - -## Configuration - -### Environment Variables - -The systemd service sets these environment variables: -- `ASPNETCORE_ENVIRONMENT=Production` -- `ASPNETCORE_URLS=http://localhost:5000` -- `ConnectionStrings__DefaultConnection=...` - -To add more (like API keys), edit: -```bash -sudo systemctl edit truecv -``` - -Add: -```ini -[Service] -Environment=OpenAI__ApiKey=your-key-here -``` - -### appsettings.Production.json - -For sensitive settings, create `/var/www/truecv/appsettings.Production.json`: - -```json -{ - "ConnectionStrings": { - "DefaultConnection": "Server=127.0.0.1;Database=TrueCV;User Id=SA;Password=YourPassword;TrustServerCertificate=True" - }, - "OpenAI": { - "ApiKey": "your-openai-key" - } -} -``` - -## Maintenance - -### View Logs -```bash -# Application logs -sudo journalctl -u truecv -f - -# Nginx logs -sudo tail -f /var/log/nginx/access.log -sudo tail -f /var/log/nginx/error.log - -# SQL Server logs -docker logs truecv-sql -f -``` - -### Restart Services -```bash -sudo systemctl restart truecv -sudo systemctl restart nginx -docker restart truecv-sql -``` - -### Database Backup -```bash -# Backup -docker exec truecv-sql /opt/mssql-tools18/bin/sqlcmd \ - -S localhost -U SA -P 'YourPassword' -C \ - -Q "BACKUP DATABASE TrueCV TO DISK='/var/opt/mssql/backup/truecv.bak'" - -# Copy backup from container -docker cp truecv-sql:/var/opt/mssql/backup/truecv.bak ./truecv-backup.bak -``` - -### Rollback Deployment -```bash -# On server - restore previous version -sudo systemctl stop truecv -sudo rm -rf /var/www/truecv -sudo mv /var/www/truecv.backup.YYYYMMDD_HHMMSS /var/www/truecv -sudo systemctl start truecv -``` - -## Troubleshooting - -### App won't start -```bash -# Check status -sudo systemctl status truecv - -# Check logs -sudo journalctl -u truecv -n 100 - -# Test manually -cd /var/www/truecv -sudo -u www-data dotnet TrueCV.Web.dll -``` - -### Database connection issues -```bash -# Check SQL Server is running -docker ps | grep truecv-sql - -# Test connection -docker exec -it truecv-sql /opt/mssql-tools18/bin/sqlcmd \ - -S localhost -U SA -P 'YourPassword' -C \ - -Q "SELECT name FROM sys.databases" -``` - -### Blazor SignalR issues -Ensure Nginx is configured for WebSocket support (included in setup script). - -Check browser console for connection errors. - -## Security Checklist - -- [ ] Change default SQL Server password -- [ ] Enable SSL with Let's Encrypt -- [ ] Configure firewall (UFW) -- [ ] Set up automated backups -- [ ] Enable fail2ban for SSH protection -- [ ] Keep system updated regularly diff --git a/src/RealCV.Web/Services/PdfReportService.cs b/src/RealCV.Web/Services/PdfReportService.cs index 4852338..ed0130b 100644 --- a/src/RealCV.Web/Services/PdfReportService.cs +++ b/src/RealCV.Web/Services/PdfReportService.cs @@ -43,7 +43,7 @@ public class PdfReportService : IPdfReportService { row.RelativeItem().Column(col => { - col.Item().Text("TrueCV").Bold().FontSize(24).FontColor(Colors.Blue.Darken2); + col.Item().Text("RealCV").Bold().FontSize(24).FontColor(Colors.Blue.Darken2); col.Item().Text("CV Verification Report").FontSize(14).FontColor(Colors.Grey.Darken1); }); row.ConstantItem(100).AlignRight().Column(col => @@ -62,7 +62,7 @@ public class PdfReportService : IPdfReportService row.ConstantItem(120).Border(2).BorderColor(scoreColor).Padding(10).AlignCenter().Column(col => { col.Item().AlignCenter().Text(report.OverallScore.ToString()).Bold().FontSize(28).FontColor(scoreColor); - col.Item().AlignCenter().Text("TrueCV Score").FontSize(10).FontColor(scoreColor); + col.Item().AlignCenter().Text("RealCV Score").FontSize(10).FontColor(scoreColor); }); }); @@ -239,7 +239,7 @@ public class PdfReportService : IPdfReportService { row.RelativeItem().Column(col => { - col.Item().Text("TrueCV").Bold().FontSize(24).FontColor(Colors.Blue.Darken2); + col.Item().Text("RealCV").Bold().FontSize(24).FontColor(Colors.Blue.Darken2); col.Item().Text("CV Verification Report Summary").FontSize(14).FontColor(Colors.Grey.Darken1); }); row.ConstantItem(100).AlignRight().Text(DateTime.Now.ToString("dd MMM yyyy")).FontSize(10).FontColor(Colors.Grey.Medium); @@ -306,7 +306,7 @@ public class PdfReportService : IPdfReportService column.Item().LineHorizontal(1).LineColor(Colors.Grey.Lighten2); column.Item().PaddingTop(10).Row(row => { - row.RelativeItem().Text("Generated by TrueCV - CV Verification Platform").FontSize(8).FontColor(Colors.Grey.Medium); + row.RelativeItem().Text("Generated by RealCV - CV Verification Platform").FontSize(8).FontColor(Colors.Grey.Medium); row.RelativeItem().AlignRight().Text(x => { x.Span("Page ").FontSize(8).FontColor(Colors.Grey.Medium);