Files
cesnimda b176a44627 docs: reorganize tree, restore architecture + research from archive, add Phase 0 reports
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>
2026-07-17 17:04:32 +02:00

135 lines
15 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Competitor & Market Research — Job Application Tracking (2026)
> Restored to active docs 2026-07-17 (Phase 0) from `docs/_archive/PRODUCT_RESEARCH.md`.
> Original research conducted **2026-07-02** via the web sources linked throughout. Sources not re-fetched on restore.
>
> **Freshness:** the market analysis (§1, §3) is ~2 weeks old and treated as current. The **feature matrix (§2) was corrected on restore** — several rows were stale because Jobjakt shipped the features. Corrections are marked `[corrected 2026-07-17]` and were verified against code.
>
> **Scope gap:** this covers the **tracker** market (Teal, Huntr, Simplify, Jobscan, OSS). It does **not** cover the CV-builder market — Novoresume, Reactive Resume, and ElegantCV are **not analysed anywhere in this repo**. Reactive Resume is the most relevant (open-source, self-hosted, JSON-Resume-based, data-driven themes — it has already solved the theme problem Phase 4 poses). That research is a prerequisite for CV Builder work; see `docs/implementation-roadmap.md` task 4.9. FlowCV *is* analysed — see `docs/application-discovery-report.md` §7, from local reference downloads at `D:\FlowCV`.
---
## 1. Market landscape
The market splits into six clusters:
| Cluster | Representatives | Model |
|---|---|---|
| **Tracker-first + AI resume** | [Teal](https://www.tealhq.com/), [Huntr](https://huntr.co/pricing), JibberJobber | Freemium SaaS; premium $2940/mo |
| **Autofill / volume** | [Simplify](https://simplify.jobs/job-application-tracker) (autofill), [LazyApply](https://lazyapply.com/) ($99999/yr), LoopCV (auto-apply) | Extension-centric |
| **Matching + copilot** | [Jobright](https://jobright.ai/blog/teal-review-2026-walkthrough-alternatives-and-faqs/) | AI job matching, resume tailoring, autofill |
| **Resume/ATS optimization** | [Jobscan](https://www.jobscan.co/) ($49.95/mo!), Resume Worded, Rezi | Match-score per job description |
| **Self-hosted / privacy** | [JobSync](https://github.com/Gsync/jobsync), [CareerSync](https://github.com/Tomiwajin/CareerSync), [career-ops](https://career-ops.org/), various [GitHub projects](https://github.com/topics/job-application-tracker) | OSS, local-first, often Ollama-based |
| **Email auto-tracking** | [Trackr](https://www.trackrjobs.com/), [G-Track](https://jobtrack-ai.com/gmail-job-tracker), Gmail [Chrome extensions](https://chromewebstore.google.com/detail/gmail-job-application-tra/lkpjngmdfncejiomkofogfdoppgifmkh) | 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](https://www.tealhq.com/pricing)): keyword match scoring, AI bullets/cover letters, analytics. Cons reported: [billing-after-cancellation complaints, generic/hallucinating AI content, ATS failures on two-column templates](https://resumehog.com/blog/posts/teal-hq-review-april-2026-is-the-job-tracker-worth-your-time.html), [high-maintenance workflow, overwhelming UI, poor support](https://resumejudge.com/blog/tealhq-review/), no automation.
> Note Teal's **free** kanban begins at **Saved** — a pre-application stage. Jobjakt's pipeline began at `Applied` until Phase 0 (2026-07-17) added `Saved`/`Interested`/`Preparing`.
**Huntr** — best visual kanban + CRM layer. Free: 100 tracked jobs cap, unlimited base resumes, basic scoring. [Pro $40/mo](https://huntr.co/pricing): 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](https://resumejudge.com/blog/huntr-review/), 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 (1100, 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.
**FlowCV** — CV-builder-first, but **also ships a Job Tracker** — converging on Jobjakt's territory from the CV side. Free tier is one resume ("Your first resume is free forever"); 2+ requires an upgrade. Its `Overview | Content | Customize | AI Tools` structure and fully data-driven theme system are the model for Phase 4; analysed in the discovery report §7.
**Email auto-trackers** (Trackr, G-Track, extensions) — scan Gmail, AI-classify (Applied/Next step/Rejected/Offer), auto-update statuses, apply labels. 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 Jobjakt: 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](https://www.selectsoftwarereviews.com/buyer-guide/interview-scheduling-software)), job-match scoring against a profile, salary/offer comparison.
### Recurring user frustrations (opportunities)
1. **Privacy/data anxiety** — sensitive career data on VC-funded SaaS; [breach/misuse concerns](https://www.saashub.com/compare-job-tracker-by-teal-vs-huntr). Jobjakt's core moat.
2. **Paywall fatigue** — free tiers cap exactly at the point of seriousness (Huntr's 100 jobs, Teal's AI credits, Jobscan's 5 scans/mo, FlowCV's 1 resume).
3. **AI slop** — hallucinated skills, misspelled names, generic bullets; users want AI grounded in *their* real CV. Jobjakt's structured-CV grounding is the right architecture.
4. **Manual data entry** — retyping jobs and statuses; solved by clippers + inbox scanning.
5. **Vendor lock-in** — resumes trapped in proprietary builders (Huntr), hard exports.
6. **Tool sprawl** — tracker + Jobscan + resume builder + calendar = 4 subscriptions; users want one hub.
---
## 2. Feature matrix — Jobjakt vs market
✅ has it · 🟡 partial · ❌ missing · 💰 paid-only
| Feature | Teal | Huntr | Simplify | OSS self-hosted | **Jobjakt today** |
|---|---|---|---|---|---|
| Kanban pipeline | ✅ | ✅ | ✅ | 🟡 | 🟡 **[corrected 2026-07-17]** `JobPipeline` is canonical + ordered, and Phase 0 added pre-application stages (`Saved`/`Interested`/`Preparing`). Board view exists; **no drag-drop** |
| 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 | ✅ | ✅ | 🟡 | ❌ | 🟡 **[corrected 2026-07-17]** structured CV parse + 6 hardcoded templates + PDF export. **There is no builder** — no content editor, no customisation, no live preview. Discovery report §10 |
| Per-job tailored resume (AI) | 💰 | 💰 | 💰 | ❌ | ✅ **local-AI tailored drafts** (privacy-unique) |
| Resume↔JD match score + keyword gaps | 💰 | 💰 | 🟡 | ❌ | 🟡 **[corrected 2026-07-17]** match score **now exists** (`JobCvMatchService`, `/match-score`, `/candidate-fit`). Keyword-gap analysis still missing |
| 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 + `/analytics` + `/tag-trends`; no funnel/response-rate/time-in-stage |
| Interview management (schedule, prep notes, calendar) | 🟡 | 🟡 | ❌ | ❌ | 🟡 **[corrected 2026-07-17]** `/interview-prep` endpoint exists but **has no UI**; no interview entity, no scheduling |
| Calendar integration (ICS/Google) | 🟡 | 🟡 | ❌ | ❌ | ❌ |
| Salary/offer tracking & comparison | 🟡 | 🟡 | ❌ | ❌ | 🟡 **[corrected 2026-07-17]** salary is **structured** (`SalaryMin`/`Max`/`Currency`/`Period`); no offer-comparison view |
| Autofill applications | ❌ | ✅ | ✅ | ❌ | ❌ (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:** Jobjakt is **ahead of every OSS competitor** and matches or beats paid SaaS on AI drafting, Gmail import, and data ownership. Remaining gaps versus paid SaaS: **keyword-gap analysis**, **a real CV builder**, interview & calendar layer, analytics depth, capture friction (no extension), contact-level CRM.
---
## 3. Market gap — what would make Jobjakt significantly better
> **"The private, self-hosted career hub: everything Teal+Huntr+Jobscan charge $7090/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. Jobjakt is uniquely far along that path.
---
## 4. Ranked feature ideas (value × effort)
Effort: S (<1 day) · M (13 days) · L (12 wk) · XL (>2 wk).
| # | Feature | User impact | Effort | Status 2026-07-17 |
|---|---|---|---|---|
| 1 | **CV↔job match score + keyword gap analysis** | ★★★★★ — the #1 paid feature in the market, free & local here | ML | **Match score DONE.** Keyword-gap analysis outstanding → roadmap 5.4 |
| 2 | **Canonical pipeline + drag-drop kanban** | ★★★★★ — core daily UX; free-text status blocked analytics | ML | **Canonical pipeline DONE** + Phase 0 pre-application stages. Drag-drop kanban outstanding |
| 3 | **Analytics dashboard v2** (funnel, response rate, time-in-stage, source effectiveness) | ★★★★ — retention feature; needs #2 | M | Outstanding → roadmap 2.9. Data exists in `JobEvent` |
| 4 | **Interview hub** (rounds, type, scheduled time, prep notes, outcome; ICS + reminders) | ★★★★ — biggest functional gap vs SaaS | L | Endpoint exists, no UI → roadmap 2.7 |
| 5 | **Bookmarklet / minimal browser capture** (reuse `jobimport/preview`) | ★★★★ — kills the biggest friction | SM | Outstanding → roadmap 6.5. **Product decision 2026-07-17:** discovery order is manual URL import → **browser extension** → official APIs. **Scraping is not the starting point** |
| 6 | **Contacts (people) CRM** | ★★★ | M | Outstanding |
| 7 | **PWA pass** (installable, mobile nav, share-target) | ★★★ | M | Outstanding. Note: CRA is gone — Next.js changes the approach |
| 8 | **Salary/offer tracker** | ★★ | SM | **Structured salary DONE.** Offer-comparison view outstanding |
| 9 | **Smarter inbox** (AI status suggestions on Gmail review) | ★★★★ — compounds an existing unique strength | M | **`/status-suggestion` DONE** + `EmailStatusClassifier` |
| 10 | **Web push / digest notifications** | ★★ | M | Outstanding |
**Deliberately not recommended:** auto-apply bots (ToS/ethics/quality; LazyApply-style tools are poorly reviewed, and spray-and-pray contradicts "apply to more *suitable* jobs"); a full Chrome-store extension before a bookmarklet (high maintenance); multi-provider cloud AI (undermines the privacy moat — **confirmed as a product decision 2026-07-17: not building the abstraction**).
---
## 5. Monetisation guidance
**Product decision 2026-07-17** — Free: job tracking, basic career profile, basic CV. Premium: advanced AI, more themes, automation, analytics, more storage.
**Do not gate on count** (CV count, job count). That is Huntr's 100-job cap, Teal's AI credits, and FlowCV's 1-resume limit — the exact "free tier caps at the point of seriousness" frustration in §1.4. Jobjakt's moat is privacy + self-hosting + free local AI; a count-based paywall surrenders the moat while inheriting the complaint.
---
## 6. Recommended order (superseded)
The original 2026-07-02 ordering is superseded by `docs/implementation-roadmap.md`, which sequences against the verified architecture. Items 1, 2, 8 and 9 above are wholly or partly delivered.
Engineering-health work (god-controller decomposition, backups) is tracked in `docs/architecture/current.md` §17.
---
Sources: [Prentus tracker roundup](https://prentus.com/blog/we-found-the-5-best-job-tracker-tools-on-the-market) · [ApplyArc comparison](https://applyarc.com/compare/best-job-application-trackers) · [Teal pricing](https://www.tealhq.com/pricing) · [Teal reviews (ResumeHog)](https://resumehog.com/blog/posts/teal-hq-review-april-2026-is-the-job-tracker-worth-your-time.html) · [Teal cons (ResumeJudge)](https://resumejudge.com/blog/tealhq-review/) · [Huntr pricing](https://huntr.co/pricing) · [Huntr cons (ResumeJudge)](https://resumejudge.com/blog/huntr-review/) · [Huntr vs Teal](https://huntr.co/blog/huntr-vs-teal) · [Simplify tracker](https://simplify.jobs/job-application-tracker) · [Jobright review of Teal](https://jobright.ai/blog/teal-review-2026-walkthrough-alternatives-and-faqs/) · [LazyApply](https://lazyapply.com/) · [Auto-apply tools compared](https://blog.fastapply.co/auto-apply-jobs-tools-compared-2026) · [Jobscan](https://www.jobscan.co/) · [Jobscan pricing](https://onlineatschecker.com/blog/jobscan-pricing-2026-free-plan-worth-it) · [JobSync (OSS)](https://github.com/Gsync/jobsync) · [CareerSync (OSS)](https://github.com/Tomiwajin/CareerSync) · [career-ops](https://career-ops.org/) · [Trackr](https://www.trackrjobs.com/) · [G-Track](https://jobtrack-ai.com/gmail-job-tracker) · [Gmail tracker extension](https://chromewebstore.google.com/detail/gmail-job-application-tra/lkpjngmdfncejiomkofogfdoppgifmkh) · [Interview scheduling software guide](https://www.selectsoftwarereviews.com/buyer-guide/interview-scheduling-software) · [SaaSHub Teal vs Huntr](https://www.saashub.com/compare-job-tracker-by-teal-vs-huntr)