Files
santifer--career-ops/dashboard/internal/model/career.go
T
wehub-resource-sync d083df1fdb
CodeQL Analysis / Analyze (javascript-typescript) (push) Failing after 2s
Web CI / web typecheck + build (push) Failing after 1s
Release Please / release-please (push) Failing after 1s
CodeQL Analysis / Analyze (go) (push) Failing after 16s
chore: import upstream snapshot with attribution
2026-07-13 12:02:43 +08:00

82 lines
2.2 KiB
Go

package model
// CareerApplication represents a single job application from the tracker.
type CareerApplication struct {
Number int
Date string
Company string
Role string
Status string
Score float64
ScoreRaw string
HasPDF bool
ReportPath string
ReportNumber string
Notes string
JobURL string // URL of the original job posting
// Derived from Notes free-text (see data.deriveNoteFields)
Location string // "City, ST" when a US city+state appears in the notes
WorkMode string // "Remote" | "Hybrid" | "Full" (onsite), "" when unknown
PayRange string // first $-range found in the notes, e.g. "$140-210K"
PayMax float64 // top of PayRange in dollars (sort key), 0 when unknown
PaySource string // "POSTED" when the JD listed it, "est" for estimates, "" unknown
LastContact string // max YYYY-MM-DD found in notes (falls back to applied date)
// Enrichment (lazy loaded from report)
Archetype string
TlDr string
Remote string
CompEstimate string
}
// PipelineMetrics holds aggregate stats for the pipeline dashboard.
type PipelineMetrics struct {
Total int
ByStatus map[string]int
AvgScore float64
TopScore float64
WithPDF int
Actionable int
}
// ProgressMetrics holds job search progress analytics.
type ProgressMetrics struct {
// Funnel
FunnelStages []FunnelStage
// Score distribution
ScoreBuckets []ScoreBucket
// Timeline (weekly activity)
WeeklyActivity []WeekActivity
// Rates
ResponseRate float64 // Responded / Applied
InterviewRate float64 // Interview / Applied
OfferRate float64 // Offer / Applied
// Averages
AvgScore float64
TopScore float64
TotalOffers int
ActiveApps int // not skip/rejected/discarded
}
// FunnelStage represents one stage of the application funnel.
type FunnelStage struct {
Label string
Count int
Pct float64 // percentage of total
}
// ScoreBucket represents a score range and its count.
type ScoreBucket struct {
Label string // e.g., "4.5-5.0", "4.0-4.4", "3.5-3.9", "3.0-3.4", "<3.0"
Count int
}
// WeekActivity represents application activity for a given ISO week.
type WeekActivity struct {
Week string // e.g., "2026-W14", "2026-W13"
Count int
}