@page "/account/register" @using TrueCV.Web.Components.Layout @layout MainLayout @rendermode InteractiveServer @using Microsoft.AspNetCore.Identity @using TrueCV.Infrastructure.Identity @inject UserManager UserManager @inject SignInManager SignInManager @inject NavigationManager NavigationManager Register - TrueCV

Create account

Start verifying UK-based CVs in minutes

@if (!string.IsNullOrEmpty(_errorMessage)) { }
At least 12 characters with uppercase, lowercase, number, and symbol.

By creating an account, you agree to our Terms of Service and Privacy Policy

Already have an account?

Start Your Free Trial

Get 3 free CV verifications to experience the power of AI-driven credential analysis.

AI-powered verification in seconds
Company legitimacy checks
Qualification & timeline analysis
Detailed PDF reports
"We reduced bad hires by 40% in the first quarter using TrueCV."
- Recruitment Manager, Financial Services
@code { private RegisterModel _model = new(); private bool _isLoading; private string? _errorMessage; private async Task HandleRegister() { _isLoading = true; _errorMessage = null; try { if (_model.Password != _model.ConfirmPassword) { _errorMessage = "Passwords do not match."; _isLoading = false; return; } var user = new ApplicationUser { UserName = _model.Email, Email = _model.Email, Plan = Domain.Enums.UserPlan.Free, ChecksUsedThisMonth = 0 }; var result = await UserManager.CreateAsync(user, _model.Password); if (result.Succeeded) { await SignInManager.SignInAsync(user, isPersistent: false); NavigationManager.NavigateTo("/dashboard", forceLoad: true); } else { var errors = result.Errors.Select(e => e.Description); _errorMessage = string.Join(" ", errors); } } catch (Exception) { _errorMessage = "An unexpected error occurred. Please try again."; } finally { _isLoading = false; } } private sealed class RegisterModel { [System.ComponentModel.DataAnnotations.Required(ErrorMessage = "Email is required")] [System.ComponentModel.DataAnnotations.EmailAddress(ErrorMessage = "Invalid email format")] public string Email { get; set; } = string.Empty; [System.ComponentModel.DataAnnotations.Required(ErrorMessage = "Password is required")] [System.ComponentModel.DataAnnotations.MinLength(12, ErrorMessage = "Password must be at least 12 characters")] public string Password { get; set; } = string.Empty; [System.ComponentModel.DataAnnotations.Required(ErrorMessage = "Please confirm your password")] [System.ComponentModel.DataAnnotations.Compare(nameof(Password), ErrorMessage = "Passwords do not match")] public string ConfirmPassword { get; set; } = string.Empty; } }