CVSmia - Brukerveiledning

Denne siden beskriver hvordan du bruker CVSmia til å lage og lagre en tilpasset CV basert på grunndata i jsonresume-format.

Rask eksempelflyt med norsk eksempeldata

Denne flyten viser den enkleste måten å komme i gang på med den norske eksempel-CV-en som appen legger i Dokumenter\Solsem Consulting\CVSmia.

1. Start appen og sjekk fanene

Ved oppstart åpner appen i Tilpasser, og Validering er synlig som egen fane fra start.

Oppstart i norsk UI

2. Åpne den norske eksempel-CV-en

Trykk Ctrl+O eller velg Tilpasser -> Åpne, og åpne sampleresume_nb_NO.json.

Åpne norsk eksempeldata

3. Se kildedataene i venstre tre

Når filen er lest inn, vises seksjonene fra jsonresume i venstre side under Kildedata. I skjermbildet under er toppnoden ekspandert så du ser hvilke seksjoner eksempeldataene inneholder.

Du kan også skrive inn tekst i filterfeltet over Kildedata og trykke Filtrer for å vise bare noder som matcher teksten, sammen med nødvendig kontekst i treet.

Kildedata lastet inn

4. Lag en første tilpasset CV

For en rask første test kan du holde Ctrl og klikke på toppnoden resume i venstre tre. Da kopieres hele eksempel-CV-en til høyre side. I vanlig bruk kan du i stedet Ctrl-klikke eller dra enkeltseksjoner for å bygge en mer målrettet variant.

Eksempeldata kopiert til tilpasset CV

5. Åpne den tilpassede CV-en i viewer

Når du har innhold i høyre tre kan du åpne viewer med Ctrl+P eller via menyvalget for visning med data. Viewer viser den tilpassede CV-en i et utskriftsvennlig oppsett.

Tilpasset CV åpnet i viewer

6. Skriv ut til PDF fra viewer

Når viewer er åpen, trykk Ctrl+P i nettleseren og velg Lagre som PDF eller en PDF-skriver som Microsoft Print to PDF. Utskriftsdialogen kommer fra nettleseren, så navn og plassering på valgene kan variere litt.

Viewer klar for utskrift til PDF

Etter dette kan du lagre PDF-en til ønsket mappe, eller fortsette med å fjerne, gi nytt navn til eller lagre JSON-innholdet i høyre tre.

Moduloversikt med skjermbilder

Skjermbildene under viser de øvrige modulene i appen. Noen av dem krever lisens før fanen blir synlig.

7. Validering

Validering brukes når du vil kontrollere JSON mot schema, lese feil per sti/linje og eventuelt redigere innholdet før du lagrer på nytt.

Validering-modulen

8. AI-Customizer

AI-Customizer er en egen arbeidsflate for å velge relevant CV-innhold mot en stillingsannonse ved hjelp av AI. Her jobber du med kildedata til venstre, AI-tilpasset CV til høyre og stillingsannonse nederst.

AI-Customizer i norsk språkdrakt

9. JsonResumeConverter

JsonResumeConverter brukes når du vil lese inn råtekst eller annen kilde og konvertere den til jsonresume, med AI-forsøk først og lokal fallback ved behov.

JsonResumeConverter i norsk språkdrakt

10. Matcher

Matcher lar deg lese inn både CV og stillingsbeskrivelse og kjøre matching i egen modul uten å endre trærne i Tilpasser.

Matcher-modulen i norsk språkdrakt

11. Cognitive

Cognitive er modulen for språklige forslag og omskriving. Den brukes når du vil få hjelp til å forbedre eller variere tekstinnhold.

Cognitive-modulen i norsk språkdrakt

Hva er CVSmia?

CVSmia lar deg:

  • åpne kildedata (venstre tre),
  • bygge en tilpasset CV ved å velge innhold (høyre tre),
  • lagre resultatet i et implementert eksportformat (typisk jsonresume, og Teamtailor når modulen er lisensiert),
  • forhåndsvise i viewer og validere mot schema.

Vanlig arbeidsflyt

  1. Åpne kildedata med Ctrl+O.
  2. Filtrer eventuelt kildedata med tekstfeltet over venstre tre hvis du vil snevre inn store datasett.
  3. Legg til innhold fra venstre til høyre med drag-and-drop eller Ctrl+klikk.
  4. Rediger høyre tre der det er tillatt (F2 for navn, Delete for å fjerne).
  5. Lagre med Ctrl+S.
  6. Forhåndsvis i viewer med Ctrl+P (med data) eller Ctrl+Shift+V (uten data).
  7. Skriv ut til PDF fra viewer med Ctrl+P i nettleseren.

Validering

Validering-fanen brukes til å:

  • kjøre validering,
  • se feil (sti/linje/melding),
  • kopiere feil,
  • redigere JSON,
  • lagre korrigert innhold.

Hvis du åpner en ugyldig fil settes den som pending i validering til den er rettet og lagret.

Matcher

  • Matcher-fanen viser nå et eget tre med JSONResume-data som matchingen kjører mot.
  • I Match-menyen kan du velge Åpne CV… for å lese inn CV, og Åpne jobbeskrivelse… for å lese inn stillingsbeskrivelse før du kjører match.
  • Innlesing via Match påvirker ikke Customize-trærne.
  • Innlesing av kildedata i Customize oppdaterer heller ikke Matcher automatisk.
  • Etter kjøring viser Matcher nå et eget felt med anbefalte neste steg, for eksempel hvilket krav som bør dekkes bedre eller hvilket eksisterende CV-bevis som bør løftes frem.
  • Når lisens tillater modulen, vises AI-Customizer som tab nr. 2.

Snarveier

  • Ctrl+O: Åpne fil
  • Ctrl+S: Lagre tilpasset CV
  • Ctrl+P: Åpne viewer med data
  • Ctrl+Shift+V: Åpne viewer
  • Ctrl+Shift+O: Les fra Github (alle steder menyvalget finnes)
  • Ctrl+,: Innstillinger
  • F1: Åpne lokal hjelp
  • Alt+F4: Avslutt appen (samme i modulmenyer som Customize, AI-Customizer, Validation, Converter, Cognitive og Match).
  • Delete: Fjern valgt node i høyre tre
  • F2: Gi nytt navn til redigerbar node i høyre tre
  • I modulmenyer brukes nå samme snarveier for tilsvarende valg (f.eks. Åpne = Ctrl+O, Lagre = Ctrl+S, Vis med data = Ctrl+P der funksjonen finnes).

Tips

  • Hold en rik master-CV i kildedata og lag målrettede varianter i høyre tre.
  • Kjør validering før du deler/publiserer.

Maskinlesbart lisensmanifest

  • Appen eksponerer støttede lisensmoduler i license-modules.json i app-mappen.
  • Kildeversjonen ligger i src/CVSmia.Licensing/license-modules.json.
  • Filen bruker generisk protokollformat med protocolVersion, application og modules[].id.
  • Filen bygges fra src/CVSmia.Licensing/EnumAppModules.cs, så oppdater enumen og bygg prosjektet når modulsettet endres.
  • None er bevisst utelatt fra manifestet.

Valgfri lokal telemetri

  • Telemetri er av som standard og må aktiveres eksplisitt i settings.json eller appsettings.json med Settings:TelemetryEnabled = true.
  • Når telemetri er aktivert, skriver appen lokale hendelser til %APPDATA%\Solsem Consulting\CVSmia\telemetry.ndjson hvis Settings:TelemetryStoragePath ikke er satt.
  • Hendelsene dekker foreløpig appstart og resultat av lisenssjekk ved oppstart.
  • Rå kunde- og lisensidentifikatorer lagres ikke i denne telemetrifilen.

Lisenssjekk ved oppstart

  • Betalt lisens kan nå verifiseres mot SentinelCore ved oppstart når LicenseCallHome er satt opp i appsettings.json.
  • Samme call-home-flyt brukes også når betalt lisens installeres eller lastes på nytt fra appen, slik at aktiv lisens sjekkes konsekvent mot SentinelCore.
  • Første utrulling bruker ObserveOnly. Det betyr at gyldig lokal betalt lisens fortsatt får starte ved nettfeil selv om lease-cache mangler, men hendelsen logges tydelig.
  • Trial håndteres fortsatt lokalt via trial.dat og Registry. Trial gjør ikke call-home.
  • Hvis en betalt lisensfil finnes men er lokalt ugyldig, faller appen fortsatt ikke tilbake til trial.
  • Hvis SentinelCore avviser den betalte lisensen online, avvises oppstarten som betalt lisens uten fallback til trial.
  • Ved nettfeil forsøker appen å bruke lokal lease-cache i %APPDATA%\Solsem Consulting\CVSmia.

Eksempel på konfig:

{
  "LicenseCallHome": {
    "Enabled": true,
    "Mode": "ObserveOnly",
    "BaseUrl": "https://sentinelcore.example.no/",
    "VerifyTimeoutSeconds": 5,
    "MetadataRefreshHours": 24,
    "LeaseCacheFileName": "sentinelcore-lease.json",
    "InstallationIdFileName": "installation-id.json"
  }
}

GitHub som kilde for resumedata

  • Bruk menyvalget Les fra Github når du vil lese inn resumedata fra GitHub.
  • Menyvalget er tilgjengelig i Customize, JsonResumeConverter, AI-Customizer og Matcher.
  • Før menyvalget blir aktivt må du sette opp GitHub i Innstillinger med enten Token eller Brukernavn og passord.
  • GitHub-legitimasjon lagres kryptert lokalt per bruker.
  • Når du velger Les fra Github, vises en GitHub-dialog der du kan bla i tilgjengelige repoer, velge gren og navigere deg frem til ønsket fil.
  • Du trenger ikke lenger å lime inn rå GitHub-URL manuelt.
  • Lokal filinnlesing via Åpne fungerer fortsatt som før.
  • GitHub-menyene er deaktivert når nødvendig GitHub-legitimasjon ikke er satt.
  • For github.com anbefales token-autentisering.

jsonresume-konvertering og AI

  • JsonResumeConverter forsøker AI-konvertering først.
  • JsonResumeConverter bruker samme AI-innstillinger som AI-tilpasser (AiEnabled, AiProvider, AiModel, AiEndpoint) fra settings.json/appsettings.json.
  • JsonResumeConverter bruker samme provider-resolver som AI-tilpasser; valgt provider/modell i innstillinger brukes direkte (inkludert Gemini, Anthropic og Ollama), med lokal fallback ved feil.
  • JsonResumeConverter bruker nå samme AI-integrasjonsmønster som AI-tilpasser: panelet kaller en dedikert AI-assistenttjeneste, og converter-modulen gjør kun AI-forsøk + lokal fallback.
  • JsonResumeConverter viser nå i overskriften om resultatet kom fra AI eller lokal fallback.
  • Validation kjører alltid lokal schema-validering først, og forsøker deretter AI-forklaring i egen prompt-modus (ValidationAssistant) når valideringen finner feil.
  • Hvis AI er deaktivert, API-nøkkel mangler, valgt provider ikke støttes eller AI-kallet feiler, viser Validation nå en kort status om at lokal fallback brukes.
  • Validation viser nå også lokale rettingsforslag i egen Forslag-kolonne for vanlige feil som manglende felt, ugyldige datoer og typeavvik.
  • Sammendragsfeltet i Validation fremhever også konkrete forslag til hva som bør rettes først.
  • Statuslinjen i appen viser nå tydeligere neste steg etter innlesing, matching, validering, lagring og preview.
  • OpenAI-kompatible kall (payload, autentisering og parsing av svar) er flyttet til delt bibliotek CVSmia.Ai, som brukes av både AI-tilpasser-providerne og JsonResumeConverter.
  • Prompt-/instruksbygging ligger modulspesifikt: JsonResumeConverter bruker egen prompt-builder (IJsonResumePromptBuilder) og deler ikke selve domeneinstruksene med andre moduler.
  • AI-kall brukes når gyldig API-nøkkel er tilgjengelig (OPENAI_API_KEY eller lagret nøkkel i %APPDATA%\Solsem Consulting\CVSmia\ai-api-key.dat).
  • I AI-tilpasser er menyvalget Tilpass med AI deaktivert når AiEnabled er av eller når lagret API-nøkkel mangler.
  • Hvis AI-kapabilitet mangler eller AI-kallet feiler, brukes lokal heuristisk fallback automatisk.
  • AI-Customizer og AI Assistert CV Manipulator bruker nå samme standardmeldinger som øvrige AI-flyter når AI er deaktivert, API-nøkkel mangler eller valgt provider ikke støttes.
  • Hvis du åpner ugyldig JSONResume i AI-Customizer (Open source data), sendes filen til Validation-modulen slik at feil kan gjennomgås/rettes.
  • Når Validation lagrer/fikser pending JSON, sendes data tilbake til samme modul den kom fra (Customize eller AI-Customizer).
  • AI-Customizer har nå eget menyvalg for å lese inn tekst fra stillingsannonse direkte til stillingsannonse-feltet.
  • Open JD i AI-Customizer leser alltid rå tekst og går ikke via Validation-modulen.
  • Instruksene til modellen ligger i prompts/jsonresume-extract.no.json med feltene systemInstruction og userTemplate.

Endre AI-instrukser uten ny build

Du kan endre AI-systeminstruks og prompt-templates uten å rekompilere:

  • Standard for installasjonen: rediger ai-prompts.json i app-mappen (samme sted som CVSmia.exe).
  • Lokal overstyring per bruker: opprett/rediger %APPDATA%\Solsem Consulting\CVSmia\ai-prompts.override.json.

Når brukes hva:

  • ai-prompts.json: når du vil endre standard oppførsel for hele installasjonen.
  • ai-assisted-cv-manipulator-instructions.json: når du vil styre hvilke ferdigdefinerte instruksjoner som vises i AI Assistert CV Manipulator.

AI Assistert CV Manipulator

AI Assistert CV Manipulator er en egen modul for fritekstbasert AI-bearbeiding av CV-data.

  • Modulen krever egen kjøpt lisens og vises ikke uten betalt modultilgang.
  • Lim inn CV-data i venstre tekstfelt.
  • Bruk Ctrl+O eller menyvalget Åpne når du vil lese kildedata direkte inn i venstre tekstfelt.
  • Skriv en egen instruks i midtkolonnen eller velg en ferdigdefinert instruks fra nedtrekkslisten.
  • Klikk Utfør for å sende instruks og CV-data til valgt AI-modell.
  • Resultatet vises i høyre tekstfelt.
  • Bruk Lagre til fil for å lagre resultatet fra høyre tekstfelt til fil.
  • Bruk Rediger instruksjoner for å åpne og lagre JSON-listen som styrer dropdownen direkte fra modulen.

Ferdigdefinerte instruksjoner hentes fra ai-assisted-cv-manipulator-instructions.json i app-mappen. Standardfilen bruker ferdige ressursnøkler, men du kan også legge inn egne displayName- og instruction-verdier direkte i JSON-filen hvis du vil definere egne presets. Standardlisten inkluderer blant annet oppsummering, ferdighetsuttrekk, rolleprofil, konvertering til jsonresume, oversettelse til engelsk, oversettelse til norsk bokmål og kvalitetssjekk for manglende informasjon.

  • ai-prompts.override.json: når én bruker vil overstyre lokalt uten å endre installasjonsfiler.

Viktig:

  • Bruk gyldig JSON.
  • Template-feltene må beholde nødvendige tokens:
    • matching-template: {{jobDescription}} og {{resumeElements}}
    • customizer-template: {{jobAdText}}, {{maxSelections}} og {{minConfidencePercent}}
    • validation-template: {{validationIssues}} og {{resumeJson}}
  • Tone-spesifikk systeminstruks kan også overstyres med SystemInstructionByTone.ValidationAssistant.
  • Hvis filen mangler eller er ugyldig, bruker appen innebygde standardverdier.

AI-tilpasser: confidence-terskel

  • AI-tilpasser bruker nå både maks antall valg og minimum confidence-prosent.
  • AiCustomizeMinConfidencePercent (0-100, standard 60) styrer hvilke AI-valg som tas med.
  • Elementer med oppgitt confidence under terskelen blir filtrert bort før innlegging i tilpasset CV.
  • confidence tolkes både som prosent (0-100) og desimal (0-1), slik at f.eks. 82 og 0.82 behandles likt.
  • For at confidence skal komme tilbake må prompt-formatet be om selected[].confidence; systeminstruksen er nå justert til å følge output-format i brukerprompten.
  • AI-tilpasser bruker nå egen prompt-modus mot provider (CustomizerSelection) slik at output-formatet for customizer ikke overstyres av generell matchedIds-template.
  • Etter AI-kjøring vises en oppsummering av hvor mange noder som hadde confidence og hvor mange som manglet.
  • Hold musen over en node i høyre tre (tilpasset CV) for å se node-spesifikk AI-confidence når den er tilgjengelig.
  • Noder i høyre tre fargekodes også etter confidence (høy = grønn, medium = gul, lav = rød).
  • Confidence-farge legges på selve nodeområdet i treet (ikke over hele radbakgrunnen).
  • Ved trunkert/ufullstendig AI-JSON forsøker AI-tilpasser nå ikke å parse hele teksten som JSON; den går direkte til robust fallback-ekstraksjon av id/confidence fra svarteksten.
  • For OpenAI/Azure OpenAI bruker AI-tilpasser nå JSON-mode (response_format: json_object) og høyere token-grense i customizer-kall for å redusere avkuttede svar.
  • AI-tilpasser bruker nå to-pass utvalg for bedre treff når modellen foreslår mange noder: pass 1 henter bredt kandidatutvalg, pass 2 reranker kun kandidatene og returnerer topp maxSelections.
  • Manuell drag-and-drop støttes begge veier i AI-tilpasser: dra fra venstre tre til høyre for å legge til, og dra fra høyre tre tilbake til venstre for å fjerne fra AI-tilpasset CV.
  • I høyre tre kan valgt node også fjernes med Delete-tasten.
  • Edit this page
In this article
Back to top Generated by DocFX