Skip to content

Add plain Product Manager archetype to packages/core (no AI keywords) #90

Description

@SaharPak

Why this matters for Tech Immigrants

The community MVP today ships an ai-product-manager archetype in
packages/core/src/archetypes/index.ts, but no plain
product-manager
. The Tech Immigrants audience has many members
who are non-AI product managers (fintech, edtech, marketplaces,
travel, gaming, B2B SaaS). For those members, the live detector
falls back to backend-engineer (the DEFAULT_ARCHETYPE in
core), which produces a misleading scorecard ("Detected archetype:
Backend Engineer" on what is actually a PM resume).

This was flagged as the highest-priority gap in
docs/ARCHETYPE_GAP_AUDIT.md.

Expected behaviour

After this issue is closed:

  1. A user whose CV uses non-AI product language (roadmap, OKRs,
    discovery, user research, A/B test, Jira, stakeholders)
    gets correctly classified as product-manager in the CLI
    evaluate output and in the Web UI results page.
  2. The existing ai-product-manager archetype continues to win
    when AI keywords (llm, gpt, rag, embeddings) are
    present.
  3. No regression in golden fixtures or in the existing 7 archetypes.

Implementation guidance

File to change

  • packages/core/src/archetypes/index.ts — add a new entry matching
    the existing shape (no version field; matches
    RoleArchetype in packages/core/src/types.ts).

Expected keywords (15+)

Discovery, user research, A/B testing, experiment, roadmap,
prioritization, OKRs, KPIs, retention, activation, funnel, churn,
stakeholder, agile, sprint, Jira, Linear, Amplitude, Mixpanel,
go-to-market, pricing, north-star metric.

Expected action verbs

Launched, Owned, Drove, Grew, Defined, Prioritized, Increased,
Reduced, Shipped, Aligned.

Expected anti-patterns

passionate about products, leveraged synergies, wore many hats, helped with, responsible for the product, various product initiatives.

Suggested weights

A starting point — tune against the eval harness.

evaluationWeights: {
  shippedEvidence: 0.25,
  quantifiedImpact: 0.25,
  toolingVisibility: 0.1,
  atsCompatibility: 0.15,
  keywordMatch: 0.15,
  publicProof: 0.1,
}

Detect tie-breaker

In core.detectArchetype, prefer the new product-manager over
ai-product-manager when AI keywords are not matched. Simplest
implementation: if the keyword score for AI-PM is 1 or 0, fall
through to PM. Until then, AI-PM will still win on shared keywords
(roadmap, OKRs), which is fine — what matters is that a
plain-PM CV doesn't get bucketed as backend-engineer.

Acceptance criteria

  • pnpm --filter @cv-builder/cli start archetypes lists
    Product Manager (in addition to the existing 7).
  • pnpm --filter @cv-builder/cli start evaluate ./example-pm-cv.md
    prints Archetype detected: Product Manager for a realistic
    non-AI PM resume.
  • A CV heavy on AI terms still resolves to AI Product Manager.
  • pnpm test, pnpm lint, pnpm build all pass.
  • No regression in existing
    packages/eval/fixtures/{swe,pm,data-ml}-strong cases (these
    target intelligence, not core, so they should pass
    unchanged; verify anyway).

Tests needed

  • One unit test for core.detectArchetype:
    • Plain-PM CV resolves to product-manager.
    • AI-PM CV resolves to ai-product-manager.
    • CV with both signals resolves to ai-product-manager (AI is the
      more specific signal).
  • One optional integration test through
    packages/core/src/evaluator/index.ts to confirm the
    EvaluationResult.archetype.name is Product Manager.

Docs / update needed

  • README.md — add Product Manager to the Supported Role
    Archetypes
    list (it will be the 8th entry).
  • Bump the roadmap [x] 7 role archetypes to [x] 8 role archetypes.
  • Mention the new fallback tie-breaker in docs/ARCHITECTURE.md
    Step 3 (classify).

Related issues / docs

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions