{
  "$schema": "https://qback.ai/api/knowledge.json",
  "generatedAt": "2026-09-04T16:50:36.138Z",
  "siteUrl": "https://qback.ai",
  "profile": {
    "name": "Harshit Jain",
    "headline": "PMM + AI builder",
    "tagline": "I build the tools PMMs keep asking engineering for.",
    "role": "Principal Product Marketing Manager",
    "company": "ClickUp",
    "yearsExperience": 10,
    "summary": "Principal PMM at ClickUp with 10 years in product marketing. Uses Claude Code, Codex, and Cursor to ship the internal tools marketing teams normally have to ask engineering for — competitive intelligence CLIs, content pipelines, agent routers, memory layers for AI coding tools. Writes the working version of all of it in QBack, a weekly newsletter.",
    "bio": [
      "Principal PMM at ClickUp. Before that, usually the first PMM hire at places like Observe.AI, LeadSquared, QBack, and e6data. Different categories, same job: launch products, sharpen messaging, run competitive intel, and make the thing easier to sell.",
      "That also means marketing to everyone from very technical buyers to teams that basically live in spreadsheets. AI rewrote the playbook, so instead of just talking about it he started building with Claude Code, Codex and Cursor and writing the working version down in public on QBack."
    ],
    "categories": [
      "conversational intelligence",
      "CRM",
      "sales enablement",
      "data infrastructure",
      "work management"
    ],
    "companies": [
      "ClickUp",
      "Observe.AI",
      "LeadSquared",
      "QBack",
      "e6data"
    ],
    "skills": [
      "product marketing",
      "positioning and messaging",
      "competitive intelligence",
      "go-to-market strategy",
      "product launches",
      "sales enablement",
      "AI agent workflows",
      "Claude Code",
      "Codex",
      "Cursor"
    ],
    "contactPolicy": "No public email by design. Best contact is a DM on X/Twitter or a LinkedIn connection.",
    "stats": [
      {
        "value": "10+",
        "label": "Years GTM"
      },
      {
        "value": "42",
        "label": "Newsletter editions"
      },
      {
        "value": "3",
        "label": "AI agents in the stack"
      },
      {
        "value": "5",
        "label": "Companies"
      }
    ]
  },
  "socials": [
    {
      "platform": "X",
      "handle": "@harshitqback",
      "url": "https://twitter.com/harshitqback"
    },
    {
      "platform": "LinkedIn",
      "handle": "harshitjain7",
      "url": "https://www.linkedin.com/in/harshitjain7/"
    },
    {
      "platform": "GitHub",
      "handle": "qb-harshit",
      "url": "https://github.com/qb-harshit"
    },
    {
      "platform": "Newsletter",
      "handle": "QBack",
      "url": "https://newsletter.qback.ai"
    }
  ],
  "newsletter": {
    "name": "QBack",
    "url": "https://newsletter.qback.ai",
    "feedUrl": "https://newsletter.qback.ai/feed",
    "cadence": "weekly",
    "description": "Weekly playbooks on using Claude Code and Cursor for product marketing work. Real workflows, teardowns, and \"I built this last night\" experiments — no AI fluff.",
    "audience": "product marketers, GTM operators, and PMMs who want to build instead of file tickets"
  },
  "builds": [
    {
      "id": "qback-newsletter",
      "title": "QBack Newsletter",
      "kind": "live publication",
      "status": "live",
      "summary": "Weekly playbooks on using Claude Code and Cursor for PMM work. Real workflows, no AI fluff.",
      "detail": "A weekly newsletter about AI, marketing, and building in public, produced with a multi-agent pipeline: voice capture, AI drafting, image generation, and video rendering. It is where the long version of everything else on this site gets written down.",
      "tech": [
        "Python",
        "Astro",
        "Remotion"
      ],
      "url": "https://newsletter.qback.ai",
      "topics": [
        "newsletter",
        "content",
        "ai",
        "marketing",
        "claude code"
      ]
    },
    {
      "id": "competitive-intel-cli",
      "title": "Competitive Intel CLI",
      "kind": "recent build",
      "status": "open-source",
      "summary": "Got tired of bloated intel tools and generic prompts, so built a CLI that tracks what actually changed.",
      "detail": "A command-line tool that scrapes, analyzes, and reports on competitor positioning, pricing, and feature sets. Built for PMMs who think in terminals — the point is diffing what actually changed since last week, not generating another 40-page report nobody reads.",
      "tech": [
        "Python",
        "Click",
        "BeautifulSoup"
      ],
      "url": "https://github.com/qb-harshit/competitive-intel-cli",
      "siteUrl": "https://newsletter.qback.ai/p/why-pay-40k-for-competitive-intel",
      "topics": [
        "competitive intelligence",
        "cli",
        "python",
        "pmm tooling"
      ]
    },
    {
      "id": "fix-claude-mem",
      "title": "fix-claude-mem",
      "kind": "open source skill",
      "status": "open-source",
      "summary": "A Claude Code skill that gives sessions a memory layer. Digests write themselves, local search indexes everything, the next session picks up where the last one left off.",
      "detail": "Three hooks and one local index. A stop hook writes a session digest to memory/sessions/ when you close the terminal. qmd indexes it locally with hybrid search. A session-start hook reads your first message, queries qmd, and injects the most relevant past memories as context. MIT licensed, fully local, nothing leaves the laptop.",
      "tech": [
        "Claude Code",
        "qmd",
        "Bash",
        "Markdown"
      ],
      "url": "https://github.com/qb-harshit/fix-claude-mem",
      "siteUrl": "https://qback.ai/fix-claude-mem",
      "topics": [
        "claude code",
        "memory",
        "developer tools",
        "open source",
        "rag"
      ]
    },
    {
      "id": "newsletter-image-gen",
      "title": "Newsletter Image Generator",
      "kind": "tool",
      "status": "open-source",
      "summary": "Retro dithered header image generator for the newsletter.",
      "detail": "A Python tool that generates CRT-styled, dithered newsletter headers with unicode block ASCII art. 13 color schemes, multiple dither modes, chromatic aberration effects.",
      "tech": [
        "Python",
        "Pillow",
        "NumPy"
      ],
      "url": "https://github.com/qb-harshit/qback-write-like-harshit",
      "topics": [
        "image generation",
        "python",
        "design",
        "newsletter"
      ]
    },
    {
      "id": "video-pipeline",
      "title": "Video Pipeline",
      "kind": "tool",
      "status": "internal",
      "summary": "Remotion-based newsletter-to-video pipeline.",
      "detail": "Converts newsletter content into CRT-aesthetic announcement videos. Full pipeline: content parsing, scene generation, overlay effects (scanlines, grain, chromatic aberration), and Remotion rendering.",
      "tech": [
        "TypeScript",
        "Remotion",
        "React"
      ],
      "url": "https://newsletter.qback.ai",
      "topics": [
        "video",
        "remotion",
        "content pipeline",
        "automation"
      ]
    },
    {
      "id": "agent-router",
      "title": "Agent Router",
      "kind": "tool",
      "status": "internal",
      "summary": "Smart router across three AI coding agents.",
      "detail": "Routes prompts to the optimal AI coding agent (Amp, Claude Code, or Cursor) based on intent classification, credit budgets, and task complexity. Voice-to-text friendly, because every prompt into it is dictated.",
      "tech": [
        "Python",
        "Claude API"
      ],
      "url": "https://newsletter.qback.ai",
      "topics": [
        "ai agents",
        "routing",
        "developer tools",
        "python"
      ]
    }
  ],
  "pages": [
    {
      "path": "/",
      "title": "Harshit Jain — PMM + AI Builder",
      "description": "10 years in product marketing across US startups and scale-ups. Builds AI workflows, positioning systems, and growth playbooks — and writes about all of it in QBack, a weekly newsletter.",
      "markdown": "# Harshit Jain — PMM + AI builder\n\n> I build the tools PMMs keep asking engineering for.\n\nPrincipal PMM at ClickUp. I use Claude Code / Codex / Cursor to ship what marketing teams usually can't.\n\n## About\n\n10 years of product marketing. Now I build with AI agents from my terminal.\n\nPrincipal PMM at ClickUp. Before that, I was usually the first PMM hire at places like Observe.AI, LeadSquared, QBack, and e6data. Different categories, same job: launch products, sharpen messaging, run competitive intel, and make the thing easier to sell.\n\nThat also means I've marketed to everyone from very technical buyers to teams that basically live in spreadsheets. AI rewrote the playbook, so instead of just talking about it I started building with Claude Code, Codex and Cursor and writing the working version down in public on QBack.\n\n## Selected builds\n\nStuff I built because waiting was getting annoying.\n\n- **QBack Newsletter** — weekly playbooks on using Claude Code and Cursor for PMM work. Real workflows, no AI fluff. https://newsletter.qback.ai\n- **Competitive Intel CLI** — I got tired of bloated intel tools and generic prompts, so I built a CLI that tracks what actually changed. https://github.com/qb-harshit/competitive-intel-cli\n- **fix-claude-mem** — a Claude Code skill that gives sessions a memory layer. Digests write themselves, local search indexes everything, next session picks up where the last one left off. https://qback.ai/fix-claude-mem\n\n## Newsletter\n\nQBack is where I dump the playbooks, teardowns, and \"I built this last night\" experiments behind the work on this site. Weekly, at https://newsletter.qback.ai\n\n## Contact\n\nSend me the messy one. You can find me on X (@harshitqback), LinkedIn (harshitjain7), or GitHub (qb-harshit). There's no public email on the site on purpose — DMs work better anyway.\n"
    },
    {
      "path": "/fix-claude-mem",
      "title": "fix-claude-mem — makes Claude Code remember things",
      "description": "A Claude Code skill that gives your sessions a persistent memory layer. Session digests write themselves, local search indexes everything, the next session picks up where the last one left off. MIT licensed, fully local.",
      "markdown": "# fix-claude-mem\n\n**A Claude Code skill · MIT licensed · fully local**\n\n> Claude Code keeps forgetting everything. This fixes it.\n\nThe way it works is pretty simple — when you close the terminal, a hook writes down what just happened in `memory/sessions/`. qmd indexes that locally. Next time you open Claude Code, it pulls the most relevant past memories into context before you even type anything. So Claude just knows what you worked on last week instead of asking.\n\n## The problem\n\n**You explain your codebase to Claude, and an hour later it's gone.**\n\nYou walk Claude through your architecture, point at the files that matter, work through a nasty bug, land on a good pattern. Then you close the terminal and it's gone. Next session you're explaining it all over again.\n\nSo you start pasting the same context into every new session. Your `claude.md` grows from 100 lines to 1000. Eventually you stop bothering with long sessions because most of it evaporates anyway.\n\nThe actual bug isn't that Claude forgets. It's that there's no memory layer sitting between you and Claude. Each session literally starts at zero, and three months in you're still re-explaining the same things you explained on day one.\n\nWhat breaks:\n- Context vanishes when the terminal closes\n- `claude.md` becomes a 2000-line dumping ground\n- You re-derive decisions you already made\n- Pasting the same context into every new session\n- Three months of work doesn't compound into anything\n\n## How it works\n\nThree hooks, one local index, memory that compounds.\n\n**01 — Session ends.** A stop hook fires when you close the terminal. It writes a short digest to `memory/sessions/` — what you built, what you decided, what's still open. Plain markdown with frontmatter so qmd can index it.\n\n**02 — qmd indexes everything.** qmd (by @tobi) runs locally and indexes everything in your memory directory. It does hybrid search — keyword, vectors, reranking — using three small models that live on your machine. Nothing leaves your laptop.\n\n**03 — Session starts.** Next time you open Claude Code, a hook reads your first message, queries qmd for the most relevant past memories, and injects them as context. So Claude wakes up already knowing what you worked on.\n\n## Install\n\nOne command if you use Claude Code.\n\nPlugin marketplace:\n```\n/plugin marketplace add qb-harshit/fix-claude-mem\n```\n\nThen run setup in your project:\n```\nfix-claude-mem setup\n```\n\nOr clone the repo manually:\n```\ngit clone https://github.com/qb-harshit/fix-claude-mem ~/.claude/skills/fix-claude-mem\n```\n\nSetup makes the memory directories at your project root, wires the three hooks into `.claude/settings.json` without touching what's already there, and installs qmd if you don't have it yet.\n\nThe whole thing takes about 30 seconds. First run also pulls qmd's models down which is around 2GB and another couple of minutes. After that it just runs in the background and you forget about it.\n\n## For product marketers\n\nIf you're a PMM using Claude Code, you have a memory problem bigger than engineers do.\n\nEngineering has git to remember everything. PMM work doesn't have that. Your research, your objection patterns, your voice rules, your competitive intel — it's all in your head or scattered across Notion and Slack threads nobody can find. So every Claude session starts from scratch.\n\n**Competitive intel.** Before: you ran a scrape last week, noticed a positioning shift, flagged a pricing change. Close the terminal and it's basically gone. After: it all stays searchable. Next session you just ask \"what changed with competitor X last month\" and Claude has the answer without you pasting anything.\n\n**Buyer research.** Before: call summaries, quotes, objection patterns — you paste the same ones into every positioning session. After: call notes pile up in `memory/decisions/` over months. Your next positioning exercise starts with three months of real objection data already loaded.\n\n**Positioning docs.** Before: your messaging framework gets rewritten every month because nobody remembers the decisions behind the current one. After: every positioning decision gets captured with the reasoning attached. The framework evolves across quarters instead of resetting every time the market shifts.\n\n**Content pipeline.** Before: Claude writes generic AI-slop because it has no idea about your voice rules, your banned words, or the specific phrases you actually use. After: voice rules live in `memory/decisions/`. Every content session starts with those already in context.\n\nThe pattern that works in practice: one memory directory per area — `intel/`, `research/`, `positioning/`, `content/` — with a short `claude.md` at each root explaining what that area is about. Point fix-claude-mem at them and let it do the rest.\n\n## Compared to other ways to give Claude memory\n\n| | fix-claude-mem | manual claude.md | cursor chat history | mcp-memory |\n|---|---|---|---|---|\n| survives session restart | yes | yes | no | yes |\n| compounds over time | yes | no | no | partial |\n| hybrid search (keyword + vector + rerank) | yes | no | no | keyword only |\n| works fully offline | yes | yes | no | depends |\n| auto-generated digests | yes | no | yes | partial |\n| cross-project search | yes | no | no | yes |\n| runs on laptop | yes | yes | n/a | yes |\n| zero lock-in (plain markdown) | yes | yes | no | no |\n\n## License and credit\n\nMIT licensed, all the code is open. Fork it, ship your own version, do whatever you want with it.\n\nRuns on [qmd](https://github.com/tobi/qmd) by [@tobi](https://x.com/tobi).\n\nRepo: https://github.com/qb-harshit/fix-claude-mem\n"
    }
  ],
  "terminalCommands": [
    "about",
    "projects",
    "builds",
    "hire",
    "resume",
    "party",
    "roast",
    "theme",
    "help",
    "clear"
  ],
  "newsletterPosts": [
    {
      "title": "How to build images and videos inside Cursor and Claude Code using Remotion",
      "subtitle": "I talk to my editor, it makes images and videos. that’s it.",
      "link": "https://newsletter.qback.ai/p/build-images-videos-cursor-claude-code-remotion",
      "publishedAt": "2026-02-03T11:46:36.000Z",
      "publishedLabel": "Feb 3, 2026",
      "metaLabel": "Feb 2026",
      "image": "https://substackcdn.com/image/youtube/w_728,c_limit/WK2FjL-aH1Q"
    },
    {
      "title": "How to rank content on AI search engines (ChatGPT, Claude, Perplexity, Grok, Gemini)",
      "subtitle": "content growth hacks to become source of truth for LLMs",
      "link": "https://newsletter.qback.ai/p/how-to-rank-content-on-ai-search-engines-chatgpt-claude-perplexity-grok",
      "publishedAt": "2025-10-16T23:24:23.000Z",
      "publishedLabel": "Oct 17, 2025",
      "metaLabel": "Oct 2025",
      "image": "https://substackcdn.com/image/fetch/$s_!P1Nz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce6d29df-2a13-4872-b721-5cc4e7913b2c_3836x1930.jpeg"
    },
    {
      "title": "How to become the marketer AI can't replace: build, ship, position",
      "subtitle": "AI-first thinking + context trinity + ship hyper-specific stuff at scale = unfair advantage",
      "link": "https://newsletter.qback.ai/p/how-to-become-ai-proof-marketer-future-guide-for-pmm",
      "publishedAt": "2025-09-30T22:00:52.000Z",
      "publishedLabel": "Oct 1, 2025",
      "metaLabel": "Oct 2025",
      "image": "https://substackcdn.com/image/fetch/$s_!Vd6k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8630a88-ab2d-4557-8d96-f32c43a248d5_1206x1562.png"
    },
    {
      "title": "Your product is your only positioning",
      "subtitle": "hide the plumbing, show the fountain. sharing a few hacks and examples to do it",
      "link": "https://newsletter.qback.ai/p/your-product-is-your-only-ai-positioning",
      "publishedAt": "2025-09-19T12:15:05.000Z",
      "publishedLabel": "Sep 19, 2025",
      "metaLabel": "Sep 2025",
      "image": "https://substackcdn.com/image/fetch/$s_!yQgu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f070212-f700-4eab-bc0b-24abfdf4e5c9_2064x1092.png"
    },
    {
      "title": "Why pay $40k for competitive intel tools when you can build it for free with AI?",
      "subtitle": "how I built this entirely inside Cursor that actually works and updates whenever I want (video tutorial + GitHub link added for DIY)",
      "link": "https://newsletter.qback.ai/p/why-pay-40k-for-competitive-intel",
      "publishedAt": "2025-09-10T23:20:38.000Z",
      "publishedLabel": "Sep 11, 2025",
      "metaLabel": "Sep 2025",
      "image": "https://substackcdn.com/image/fetch/$s_!kUSg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b7cdc3f-ccc9-42bb-8ba4-653b7dd761ef_2018x1178.png"
    },
    {
      "title": "I built a Cursor playbook that writes my newsletter and all content exactly like me",
      "subtitle": "Send this URL to Cursor/Claude and ask it to build this for you. It takes raw thoughts and ships newsletters, LinkedIn posts, and tweets in your own voice.",
      "link": "https://newsletter.qback.ai/p/ai-marketing-content-generator-cursor",
      "publishedAt": "2025-08-25T15:06:13.000Z",
      "publishedLabel": "Aug 25, 2025",
      "metaLabel": "Aug 2025",
      "image": "https://substackcdn.com/image/youtube/w_728,c_limit/sJEqbOS_s28"
    },
    {
      "title": "I built (vibe-coded) an AI agent for NPS analysis",
      "subtitle": "As a PMM, if you’re tracking the user sentiment and voice of customer analysis, then you can built this into an in-house app with custom logic and prompts specific to your company process.",
      "link": "https://newsletter.qback.ai/p/how-to-build-vibe-code-an-ai-agent-for-nps-analysis-diy-for-product-marketers",
      "publishedAt": "2025-07-01T22:16:27.000Z",
      "publishedLabel": "Jul 2, 2025",
      "metaLabel": "Jul 2025",
      "image": "https://substackcdn.com/image/youtube/w_728,c_limit/EdNr2nSCIVI"
    },
    {
      "title": "ABM That Doesn’t Suck AI Edition (Clay × Webflow × Zapier)",
      "subtitle": "because “Hey {first_name}” doesn’t cut it anymore.",
      "link": "https://newsletter.qback.ai/p/abm-that-doesnt-suck-ai-edition-clay",
      "publishedAt": "2025-06-22T21:56:53.000Z",
      "publishedLabel": "Jun 23, 2025",
      "metaLabel": "Jun 2025",
      "image": "https://substackcdn.com/image/fetch/$s_!yR2g!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9650da7-7d6c-49f1-b813-c20296b7e469_2400x1254.png"
    },
    {
      "title": "Built a Dev Homepage Without Burning $10K on Random Agency BS",
      "subtitle": "About to blow $10K on some agency to write your homepage? Stop! Unless you’ve got zero product marketing chops, write it yourself. Devs don’t want your story, they want to know if your product works.",
      "link": "https://newsletter.qback.ai/p/built-a-dev-homepage-without-burning",
      "publishedAt": "2025-04-13T12:25:19.000Z",
      "publishedLabel": "Apr 13, 2025",
      "metaLabel": "Apr 2025",
      "image": "https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5beaf7c-8c49-4d49-8142-d3c7bdcb58d1_2400x1254.png"
    },
    {
      "title": "Announcing QBack: The AI Quarterback for GTM",
      "subtitle": "From Harshit Jain",
      "link": "https://newsletter.qback.ai/p/announcing-qback-newsletter-inside",
      "publishedAt": "2025-03-20T16:03:50.000Z",
      "publishedLabel": "Mar 20, 2025",
      "metaLabel": "Mar 2025",
      "image": "https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dbc2434-ef11-4a2c-89dc-a2d42365d482_600x600.png"
    }
  ],
  "agentInterfaces": {
    "mcp": "https://qback.ai/mcp",
    "llmsTxt": "https://qback.ai/llms.txt",
    "llmsFullTxt": "https://qback.ai/llms-full.txt",
    "discovery": "https://qback.ai/.well-known/mcp.json",
    "webmcp": "in-page via document.modelContext on every page of this site"
  }
}