Add typed structured CV extraction

This commit is contained in:
2026-03-28 15:01:32 +01:00
parent 19a4da9382
commit 8f8a34ad9c
5 changed files with 1029 additions and 77 deletions
+68
View File
@@ -0,0 +1,68 @@
namespace JobTrackerApi.Models;
public sealed class StructuredCvProfile
{
public string Version { get; set; } = "1";
public StructuredCvContact Contact { get; set; } = new();
public List<string> Summary { get; set; } = new();
public List<StructuredCvJob> Jobs { get; set; } = new();
public List<StructuredCvEducation> Education { get; set; } = new();
public List<string> Skills { get; set; } = new();
public List<StructuredCvLanguage> Languages { get; set; } = new();
public List<string> Interests { get; set; } = new();
public List<StructuredCvOtherSection> OtherSections { get; set; } = new();
public List<StructuredCvSection> Sections { get; set; } = new();
}
public sealed class StructuredCvContact
{
public string? FullName { get; set; }
public string? Headline { get; set; }
public string? Email { get; set; }
public string? Phone { get; set; }
public string? Location { get; set; }
public string? Website { get; set; }
public string? LinkedIn { get; set; }
}
public sealed class StructuredCvJob
{
public string? Title { get; set; }
public string? Company { get; set; }
public string? Location { get; set; }
public string? Start { get; set; }
public string? End { get; set; }
public bool IsCurrent { get; set; }
public List<string> Bullets { get; set; } = new();
public List<string> Skills { get; set; } = new();
}
public sealed class StructuredCvEducation
{
public string? Qualification { get; set; }
public string? Institution { get; set; }
public string? Location { get; set; }
public string? Start { get; set; }
public string? End { get; set; }
public List<string> Details { get; set; } = new();
}
public sealed class StructuredCvLanguage
{
public string? Name { get; set; }
public string? Level { get; set; }
public string? Notes { get; set; }
}
public sealed class StructuredCvOtherSection
{
public string? Title { get; set; }
public List<string> Items { get; set; } = new();
}
public sealed class StructuredCvSection
{
public string Name { get; set; } = string.Empty;
public string Content { get; set; } = string.Empty;
public int WordCount { get; set; }
}