Active docs/ was stub scaffolding while the real docs sat in docs/_archive/. Restore and correct them, and record the Phase 0 work. - docs/architecture/current.md: verified system map (from archived SYSTEM_OVERVIEW, 9 corrections against code). - docs/research/competitors.md: sourced competitor analysis (from archived PRODUCT_RESEARCH, feature matrix corrected). - docs/decisions/ADR-002-job-application-model.md: the Job/JobApplication split. - docs/application-discovery-report.md, docs/implementation-roadmap.md, docs/phase-0-foundation-report.md, docs/career-workspace-branch-assessment.md. - Remove 10 zero-byte placeholder files that advertised content that never existed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
13 KiB
PRODUCT_RESEARCH.md — Job Application Tracking Market (2026)
Phase 2 deliverable. Research conducted 2026-07-02 via web sources (linked throughout). Purpose: position Jobbjakt against the market and rank the features worth building next.
1. Market landscape
The market splits into five clusters:
| Cluster | Representatives | Model |
|---|---|---|
| Tracker-first + AI resume | Teal, Huntr, JibberJobber | Freemium SaaS; premium $29–40/mo |
| Autofill / volume | Simplify (autofill), LazyApply ($99–999/yr), LoopCV (auto-apply) | Extension-centric |
| Matching + copilot | Jobright | AI job matching, resume tailoring, autofill |
| Resume/ATS optimization | Jobscan ($49.95/mo!), Resume Worded, Rezi | Match-score per job description |
| Self-hosted / privacy | JobSync, CareerSync, career-ops, various GitHub projects | OSS, local-first, often Ollama-based |
| Email auto-tracking | Trackr, G-Track, Gmail Chrome extensions | Inbox scanning → status updates |
Competitor snapshots
Teal — market leader for tracker+resume. Free: unlimited tracking, Chrome extension (50+ job boards), kanban (Saved/Applied/Interview/Offer/Rejected), 10 ATS templates, contact manager, ATS score (15 checks). Premium ($9/wk, $29/mo, $79/qtr): keyword match scoring, AI bullets/cover letters, analytics. Cons reported: billing-after-cancellation complaints, generic/hallucinating AI content, ATS failures on two-column templates, high-maintenance workflow, overwhelming UI, poor support, no automation.
Huntr — best visual kanban + CRM layer. Free: 100 tracked jobs cap, unlimited base resumes, basic scoring. Pro $40/mo: AI tailored resumes, unlimited cover letters, advanced matching/insights. 4.9★ extension (clip from any site + autofill). Cons: must rebuild resume inside their builder, plain templates, free plan stops being useful fast, online-only.
Simplify — free autofill extension for 100+ ATS portals (Workday, Greenhouse, iCIMS), real-time keyword flagging, pipeline tracking. Execution-focused, light on CRM depth.
Jobscan — per-job resume match score (1–100, 30+ checks, "aim ≥75%"), cover-letter optimization report. Expensive ($49.95/mo). This single feature is the most-cited reason people pay for job-search tools.
Email auto-trackers (Trackr, G-Track, extensions) — scan Gmail, AI-classify (Applied/Next step/Rejected/Offer), auto-update statuses, apply labels. This is rapidly becoming table stakes; users love "zero manual data entry".
Self-hosted OSS (JobSync, CareerSync, career-ops) — privacy pitch ("no cloud, no telemetry, no account"), Ollama/local-LLM parsing, but all are far less complete than Jobbjakt: mostly CRUD + basic AI, no CV pipeline, no correspondence CRM, no rules engine.
Standard vs premium features across the market
- Table stakes (free everywhere): kanban board, status stages, notes, basic contact tracking, browser clipper, export.
- Premium (what people pay for): per-job resume↔JD match scoring with keyword gaps, AI tailored resumes/cover letters, analytics (response rate, funnel conversion, time-in-stage), email/interview follow-up automation, autofill at scale.
- Emerging differentiators: inbox auto-tracking, interview prep hubs (question banks, scheduling, calendar sync — cf. interview scheduling tools), job-match scoring against a profile, salary/offer comparison.
Recurring user frustrations (opportunities)
- Privacy/data anxiety — sensitive career data on VC-funded SaaS; breach/misuse concerns. Jobbjakt's core moat.
- Paywall fatigue — free tiers cap exactly at the point of seriousness (Huntr's 100 jobs, Teal's AI credits, Jobscan's 5 scans/mo).
- AI slop — hallucinated skills, misspelled names, generic bullets; users want AI grounded in their real CV (Jobbjakt's structured-CV grounding is the right architecture).
- Manual data entry — retyping jobs and statuses; solved by clippers + inbox scanning.
- Vendor lock-in — resumes trapped in proprietary builders (Huntr), hard exports.
- Tool sprawl — tracker + Jobscan + resume builder + calendar = 4 subscriptions; users want one hub.
2. Feature matrix — Jobbjakt vs market
✅ has it · 🟡 partial · ❌ missing
| Feature | Teal | Huntr | Simplify | OSS self-hosted | Jobbjakt today |
|---|---|---|---|---|---|
| Kanban pipeline | ✅ | ✅ | ✅ | 🟡 | 🟡 board view exists; status is free-text, no drag-drop canonical pipeline |
| Job capture from URL | ✅ ext | ✅ ext | ✅ ext | 🟡 | 🟡 server-side parse (Finn/NAV/LinkedIn/Jobbnorge + JSON-LD); no extension/bookmarklet |
| Inbox auto-tracking | ❌ | ❌ | 🟡 | 🟡 | ✅ Gmail OAuth import + human review queue (ahead of paid SaaS) |
| Contacts/recruiter CRM | ✅ | ✅ | ❌ | ❌ | 🟡 company-level only, no people entities |
| Resume/CV builder | ✅ | ✅ | 🟡 | ❌ | ✅ structured CV parse + templates + PDF export |
| Per-job tailored resume (AI) | 💰 | 💰 | 💰 | ❌ | ✅ local-AI tailored drafts (privacy-unique) |
| Resume↔JD match score + keyword gaps | 💰 | 💰 | 🟡 | ❌ | ❌ (handoff doc lists "missing-keyword analysis" as planned) |
| AI cover letters / messages | 💰 | 💰 | 💰 | ❌ | ✅ free, local |
| Follow-up reminders | ✅ | ✅ | 🟡 | ❌ | ✅ + rules engine (auto-ghost) — richer than most |
| Analytics dashboard (funnel, response rate, time-in-stage) | 💰 | 💰 | 🟡 | 🟡 | 🟡 basic stats endpoint only |
| Interview management (schedule, prep notes, calendar) | 🟡 | 🟡 | ❌ | ❌ | ❌ (only generic follow-up dates) |
| Calendar integration (ICS/Google) | 🟡 | 🟡 | ❌ | ❌ | ❌ |
| Salary/offer tracking & comparison | 🟡 | 🟡 | ❌ | ❌ | 🟡 salary text field only |
| Autofill applications | ❌ | ✅ | ✅ | ❌ | ❌ (out of scope — needs extension) |
| Multi-language (EN/NB) + translation | ❌ | ❌ | ❌ | ❌ | ✅ unique for Nordic market |
| Self-hosted / data ownership | ❌ | ❌ | ❌ | ✅ | ✅ |
| Mobile experience | ✅ apps | ✅ | ✅ | ❌ | 🟡 responsive-ish desktop web; no PWA |
| Export/portability | 🟡 | 🟡 | 🟡 | ✅ | ✅ JSON/CSV + daily export |
Position: Jobbjakt is already ahead of every OSS competitor and matches or beats paid SaaS on AI drafting, Gmail import, and data ownership. Its gaps versus paid SaaS are: match scoring, canonical pipeline/kanban UX, interview & calendar layer, analytics depth, capture friction (no extension), and contact-level CRM.
3. Market gap — what would make Jobbjakt significantly better than existing solutions
"The private, self-hosted career hub: everything Teal+Huntr+Jobscan charge $70–90/mo for, powered by your own local AI, with your data never leaving your server."
No product today combines: serious tracker UX + inbox auto-tracking + local-LLM tailoring + match scoring + interview hub, self-hosted. Jobbjakt is uniquely ~60% of the way there.
4. Ranked feature ideas (value × effort)
Effort: S (<1 day) · M (1–3 days) · L (1–2 wk) · XL (>2 wk). Grounded in the Phase 1 codebase map.
| # | Feature | User impact | Effort | Notes |
|---|---|---|---|---|
| 1 | CV↔job match score + keyword gap analysis (per job: score, missing keywords, section coverage; reuse structured CV JSON + existing Ollama path) | ★★★★★ — the #1 paid feature in the market, free & local here | M–L | Backend has all inputs already; add endpoint + UI panel in job workspace |
| 2 | Canonical pipeline + drag-drop kanban (status enum/ordering, custom stages per user, drive board/badges from it) | ★★★★★ — core daily UX; free-text status blocks analytics too | M–L | Already on README wish list; needs migration for status normalization |
| 3 | Analytics dashboard v2 (funnel conversion, response rate, time-in-stage, weekly activity, source effectiveness) | ★★★★ — retention feature; needs #2 for clean stages | M | Data all exists in JobEvent history |
| 4 | Interview hub (interview entity: rounds, type, scheduled time, prep notes, outcome; ICS feed/export + reminders) | ★★★★ — biggest functional gap vs SaaS | L | New entity + timeline integration; ICS is cheap, Google Calendar sync later |
| 5 | Bookmarklet / minimal browser capture (one-click "save to Jobbjakt" using existing jobimport/preview) |
★★★★ — kills the biggest friction (manual entry); full extension can wait | S–M | Server parsing already exists; a bookmarklet or share-target PWA is days not weeks |
| 6 | Contacts (people) CRM (recruiter/hiring-manager entities linked to companies/jobs/correspondence) | ★★★ | M | Natural extension of company recruiter fields |
| 7 | PWA pass (installable, mobile nav polish, share-target for job URLs) | ★★★ — mobile is where users check status | M | CRA supports PWA manifest; pairs with #5 |
| 8 | Salary/offer tracker (structured salary min/max/currency, offer comparison view) | ★★ | S–M | Currently a free-text field |
| 9 | Smarter inbox (extend existing Gmail review with AI status suggestions: "this looks like a rejection → move to Rejected?") | ★★★★ — compounds an existing unique strength | M | Classification via existing Ollama service |
| 10 | Web push / digest notifications (beyond SMTP) | ★★ | M | Needs service worker (pairs with #7) |
Deliberately not recommended: auto-apply bots (ToS/ethics/quality problems, LazyApply-style tools are poorly reviewed), building a full Chrome-store extension now (high maintenance; bookmarklet first), multi-provider cloud AI (undermines the privacy moat — keep local-first with optional cloud later).
5. Recommended implementation order (input to Phase 3 roadmap)
- Match score + keyword gaps (#1) — flagship differentiator, builds on freshest code (structured CV).
- Canonical pipeline + kanban (#2) — unblocks analytics, fixes daily UX.
- Analytics v2 (#3) — quick follow-on.
- Bookmarklet capture (#5) + PWA (#7) — friction killers.
- Interview hub (#4) — biggest new surface, schedule after the above land.
- Then #9, #6, #8, #10 by appetite.
Engineering-health work (CI test whitelist, prod DB backups, god-controller decomposition) is tracked separately in docs/SYSTEM_OVERVIEW.md §15–17 and should interleave with feature work in Phase 3.
Sources: Prentus tracker roundup · ApplyArc comparison · Teal pricing · Teal reviews (ResumeHog) · Teal cons (ResumeJudge) · Huntr pricing · Huntr cons (ResumeJudge) · Huntr vs Teal · Simplify tracker · Jobright review of Teal · LazyApply · Auto-apply tools compared · Jobscan · Jobscan pricing · JobSync (OSS) · CareerSync (OSS) · career-ops · Trackr · G-Track · Gmail tracker extension · Interview scheduling software guide · SaaSHub Teal vs Huntr