{
  "schema_version": "AImatchApiV2ComparisonReportV1",
  "generated_at": "2026-07-09T16:24:06.379Z",
  "status": "completed",
  "legacy_roles_path": "/var/lib/aimatch/artifacts/90eb986f-89b0-4ccf-8abe-6f7c46cb2f4c/synthesis/roles-detected.json",
  "role_count": {
    "v2": 1,
    "v2_detected": 3,
    "v2_active": 1,
    "v2_skipped": 2,
    "legacy": 3,
    "match": false,
    "detected_match": true
  },
  "role_gate": {
    "active_roles": [
      {
        "role_key": "paid-social-media-marketer",
        "role_title": "Paid Social Media Marketer",
        "status": "active",
        "priority_rank": 1
      }
    ],
    "skipped_roles": [
      {
        "role_key": "ai-generative-search-specialist",
        "role_title": "AI / Generative Search Content Specialist",
        "status": "future",
        "priority_rank": 2,
        "reason_not_active": "Described as a separate, smaller engagement to potentially pursue later; not approved now. The paid social hire (the stated starting point) should absorb awareness of this space, so only that role proceeds to matching.",
        "source_quotes": [
          "even if this is a separate person for lesser hours, somebody who's really become in tune with AI and generative search",
          "the AI generative search piece, we could certainly look for somebody who just specializes in that. That would be a much smaller monthly engagement",
          "The AI and generative search angle you mentioned, that's a bit of a separate specialty. We could either look for someone who has both, or consider that as a lighter, separate engagement down the road"
        ]
      },
      {
        "role_key": "traditional-pr-media-relations",
        "role_title": "Traditional PR / Media Relations",
        "status": "mentioned_only",
        "priority_rank": 3,
        "reason_not_active": "Raised as an out-of-scope question for a different client project; MarketerHire does not match for PR/media relations, and Jennifer made no hiring request for it.",
        "source_quotes": [
          "Do you work with any marketers who do traditional media relations, like traditional pr, media pitching?",
          "PR and media relations isn't a specialty we currently match for. Our focus is really on digital marketing roles."
        ]
      }
    ]
  },
  "role_comparisons": [
    {
      "v2_role_key": "paid-social-media-marketer",
      "v2_role_title": "Paid Social Media Marketer",
      "legacy_role_key": "paid-social-media-marketer",
      "legacy_role_title": "Paid Social Media Marketer",
      "title_match": true,
      "role_match_strategy": "role_key",
      "role_title_similarity_pct": 100,
      "hard_requirement_overlap_pct": 0,
      "all_requirement_overlap_pct": 0,
      "search_candidate_overlap_top20_pct": 100,
      "top_candidate_overlap_pct": 0,
      "v2_top_candidates": [
        "leah.lockyer@gmail.com",
        "g@u13n.com",
        "dlorango@gmail.com",
        "useracquisitionconsultant@gmail.com",
        "amberb215@gmail.com"
      ],
      "legacy_top_candidates": [],
      "hallucination_flags": []
    }
  ],
  "context": {
    "budget_v2_chars": 1552,
    "budget_legacy_chars": 0,
    "timeline_v2_chars": 1030,
    "timeline_legacy_chars": 0,
    "tools_v2_chars": 1562,
    "tools_legacy_chars": 0
  },
  "usage": {
    "attempts": 56,
    "input_tokens": 257486,
    "output_tokens": 167234,
    "thoughts_tokens": 0,
    "output_billable_tokens": 167234,
    "total_tokens": 424720,
    "cache_creation_input_tokens": 5480,
    "cache_read_input_tokens": 241120,
    "uncached_input_tokens": 257486,
    "latency_ms": 3199414
  },
  "cost": {
    "schema_version": "LlmCostSummaryV1",
    "currency": "USD",
    "pricing_source": "https://platform.claude.com/docs/en/about-claude/pricing; https://ai.google.dev/gemini-api/docs/pricing; https://developers.openai.com/api/docs/models/gpt-5.5; https://developers.openai.com/api/docs/models/gpt-5.4-mini",
    "pricing_source_checked_at": "2026-07-10T14:33:44.079Z",
    "pricing_notes": [
      "Gemini 3.5 Flash defaults use Google Gemini API paid-tier standard rates: input $1.50/1M, output including thinking $9.00/1M, cached context $0.15/1M.",
      "Claude Haiku 4.5 defaults use input $1/1M, output $5/1M, 5m cache write $1.25/1M, 1h cache write $2/1M, and cache read $0.10/1M.",
      "Claude Sonnet 4.6 defaults use input $3/1M, output $15/1M, 5m cache write $3.75/1M, 1h cache write $6/1M, and cache read $0.30/1M.",
      "Claude Opus 4.8 defaults use input $5/1M, output $25/1M, 5m cache write $6.25/1M, 1h cache write $10/1M, and cache read $0.50/1M.",
      "OpenAI GPT-5.5 defaults use input $5/1M, output including reasoning $30/1M, and cached input $0.50/1M.",
      "OpenAI GPT-5.4 mini defaults use input $0.75/1M, output including reasoning $4.50/1M, and cached input $0.075/1M.",
      "Gemini and OpenAI report cached input as a subset of input tokens; Anthropic reports uncached, cache-write, and cache-read tokens separately.",
      "Rates can be overridden with AIMATCH_API_V2_COST_*_USD_PER_1M environment variables."
    ],
    "input_cost_usd": 0.763336,
    "output_cost_usd": 2.4392,
    "cache_creation_cost_usd": 0.02055,
    "cache_read_cost_usd": 0.072336,
    "total_cost_usd": 3.295422,
    "by_model": [
      {
        "provider": "anthropic",
        "model": "claude-haiku-4-5-20251001",
        "attempts": 4,
        "input_tokens": 27612,
        "cache_read_input_tokens": 0,
        "cache_creation_input_tokens": 0,
        "output_tokens": 9976,
        "thoughts_tokens": 0,
        "uncached_input_tokens": 27612,
        "output_billable_tokens": 9976,
        "input_usd_per_1m_tokens": 1,
        "output_usd_per_1m_tokens": 5,
        "cache_read_usd_per_1m_tokens": 0.1,
        "cache_creation_usd_per_1m_tokens": 1.25,
        "cost_usd": 0.077492
      },
      {
        "provider": "anthropic",
        "model": "claude-opus-4-8",
        "attempts": 2,
        "input_tokens": 23051,
        "cache_read_input_tokens": 0,
        "cache_creation_input_tokens": 0,
        "output_tokens": 3045,
        "thoughts_tokens": 0,
        "uncached_input_tokens": 23051,
        "output_billable_tokens": 3045,
        "input_usd_per_1m_tokens": 5,
        "output_usd_per_1m_tokens": 25,
        "cache_read_usd_per_1m_tokens": 0.5,
        "cache_creation_usd_per_1m_tokens": 6.25,
        "cost_usd": 0.19138
      },
      {
        "provider": "anthropic",
        "model": "claude-sonnet-4-6",
        "attempts": 50,
        "input_tokens": 206823,
        "cache_read_input_tokens": 241120,
        "cache_creation_input_tokens": 5480,
        "output_tokens": 154213,
        "thoughts_tokens": 0,
        "uncached_input_tokens": 206823,
        "output_billable_tokens": 154213,
        "input_usd_per_1m_tokens": 3,
        "output_usd_per_1m_tokens": 15,
        "cache_read_usd_per_1m_tokens": 0.3,
        "cache_creation_usd_per_1m_tokens": 3.75,
        "cost_usd": 3.02655
      }
    ]
  },
  "side_effects": {
    "slack_posts": 0,
    "hubspot_writes": 0,
    "legacy_artifact_mutations": 0
  }
}