package ui const jobsTabHTML = `{{ define "jobsTab" }}

Job Opportunities

All ingested postings · AI-scored · sortable

{{ template "jobs" .Jobs }}
{{ end }}` const jobListHTML = `{{ define "jobs" }}
{{ range . }} {{- $qual := "pending" -}} {{- if .Analysis }}{{ if .Analysis.IsQualified }}{{ $qual = "qualified" }}{{ else }}{{ $qual = "not-qualified" }}{{ end }}{{ end -}} {{- $appClass := "none" -}} {{- if .App }}{{ if eq .App.Status "OPTED_OUT" }}{{ $appClass = "opted-out" }}{{ else if eq .App.Status "EXPIRED" }}{{ $appClass = "expired" }}{{ else }}{{ $appClass = "pipeline" }}{{ end }}{{ end -}} {{ else }} {{ end }}
Job Title & Company Link Status Score & Qualification Reason / Tags Last Updated Actions
{{ .Company }} • 📍 {{ .Location }}
🔗 {{ if .Analysis }} {{ if eq .Analysis.Status "PARSED" }} AI PARSED {{ else if eq .Analysis.Status "PENDING" }} QUEUED {{ else if eq .Analysis.Status "FILTERED_OUT" }} LOW FIT {{ else if eq .Analysis.Status "REJECTED" }} REJECTED {{ else if eq .Analysis.Status "DONE" }} DONE {{ else }} {{ .Analysis.Status }} {{ end }} {{ else }} UNANALYZED {{ end }} {{ if .Analysis }} {{ if eq .Analysis.Status "PARSED" }} {{ if .Analysis.IsQualified }} 🤖 {{ printf "%.0f" .Analysis.Score }} {{ else }} ✗ {{ printf "%.0f" .Analysis.Score }} Not Qual {{ end }} {{ else if eq .Analysis.Status "PENDING" }} ⚡ {{ printf "%.0f" .Analysis.FilterScore }} {{ else if eq .Analysis.Status "FILTERED_OUT" }} ⚡ {{ printf "%.0f" .Analysis.FilterScore }} {{ else if eq .Analysis.Status "REJECTED" }} 🚫 Disqualified {{ else }} {{ printf "%.0f" .Analysis.Score }} {{ end }} {{ else }} – {{ end }} {{ if .App }} {{ if eq .App.Status "OPTED_OUT" }} Opted out {{ else if eq .App.Status "EXPIRED" }} ⚠️ No longer active {{ end }} {{ end }} {{ if .Analysis }} {{ if .Analysis.IsQualified }}
{{ range parseJSON .Analysis.MatchedHighlights }} {{ . }} {{ else }} No tags {{ end }}
{{ else }} {{ $missing := parseJSON .Analysis.MissingHighlights }} {{ if $missing }} {{ index $missing 0 }} {{ else if .Analysis.Summary }} {{ .Analysis.Summary }} {{ end }} {{ end }} {{ end }}
{{ formatDate .LastSeenAt }} {{ if .App }} {{ if eq .App.Status "OPTED_OUT" }}
Opted-out
{{ else if eq .App.Status "EXPIRED" }}
⚠️ EXPIRED
{{ else }} {{ .App.Status }} {{ end }} {{ else }}
{{ end }}

📭

No job postings found. Click 🔍 Discover in the bottom bar to start crawling.

{{ end }}` const jobDetailHTML = `{{ define "jobDetail" }}
{{ .Company }}

{{ .Title }}

📍 {{ .Location }} • Last Updated {{ formatDate .LastSeenAt }}

{{ if .Analysis }}
🤖 AI Match Score {{ .Analysis.Status }}
{{ if eq .Analysis.Status "PARSED" }} {{ if .Analysis.IsQualified }} {{ printf "%.1f" .Analysis.Score }} / 100 ✓ Qualified for interview profile {{ else }} {{ printf "%.1f" .Analysis.Score }} / 100 ✗ Does not meet core fit threshold {{ end }} {{ else }} Pending Evaluation DeepSeek LLM analysis queued {{ end }}
⚡ Keyword Fit Pre-filter rule
{{ printf "%.1f" .Analysis.FilterScore }} / 100 Lexical match against filters.yaml
{{ if .Analysis.Summary }}
💬 AI Executive Assessment

{{ .Analysis.Summary }}

{{ end }}
{{ if .Analysis.IsQualified }}

✓ Matched Highlights

{{ range parseJSON .Analysis.MatchedHighlights }} {{ . }} {{ else }} None identified {{ end }}
{{ end }}

! {{ if .Analysis.IsQualified }}Gaps / Missing Skills{{ else }}Disqualification Reasons{{ end }}

{{ range parseJSON .Analysis.MissingHighlights }} {{ . }} {{ else }} None identified {{ end }}
{{ if .Analysis.IsQualified }}

💡 Resume Tailoring Tips

    {{ range parseJSON .Analysis.TailoringSuggestions }}
  • • {{ . }}
  • {{ else }}
  • None
  • {{ end }}
{{ end }}
{{ end }}

Job Description

{{ rawContent .RawContent }}
Apply External ↗
{{ end }}`