Today

Agentline

Helps software companies show up in AI answers: whether ChatGPT, Claude and Gemini name them when buyers ask, why not, and who gets named instead. Then an agent drafts content from the company's verified facts and publishes it to sites like WordPress and DEV.to.

Role
Co-founder. I built the product and ran the business side
Status
Wound downWound down · Oct 2026
When
2026 · age 18–19

How to read this

Design partners
Companies that used Agentline for free and gave us feedback on it in return. Not paying customers.
0 of 89
A self-audit on Agentline's own brand: a baseline, not a customer result.
Not shown here
Any customer gaining visibility. The example below ends before anything was published.

Who it was for

Software companies that want AI assistants to name them when buyers ask for tools like theirs.

What I did

Who did what

Me
Co-founder. I built the product (the audit, the diagnosis and Boost) and ran the business side.
Two co-founders
A fellow Haas student and an M.E.T. student.
AI coding agents
Wrote a big share of our commits, with us directing and reviewing them.

Challenges

One question, start to finish

  1. Buyer question

    “how to check what chatgpt says about my brand”

  2. Measured

    Agentline was named in 0 of 9 captured API responses: 0 of 3 each from Claude, Gemini and OpenAI. The answers cited sources like vertexaisearch.cloud.google.com and pingmybrand.com.

  3. Why it lost (AI inference)

    No clear winner: all three recommended other brand-monitoring tools instead of naming Agentline.

  4. Recommended action

    A third-party article on DEV.to, written only from verified facts about Agentline. Not a change to Agentline's own website.

  5. Outcome

    The plan was waiting for review when this was captured. No result was measured for it.

From a real Boost plan in our self-audit on Agentline's own brand (the Boost plan screenshot below).

From the code: when Boost recommends nothing

Boost can decide not to write anything. If the AI assessment judges a question to be outside what the company offers, it returns no action, and labels that judgment as inference, not measurement.

If the company was already named in every captured answer, it also returns no action. That one is measured.

Real excerpts from the Agentline codebase, trimmed where marked.

export function decideBoostIntervention(
  input: BoostDecisionInput,
): BoostDecision {
  const { gap, brand, aiAssessment: ai } = input;
  const measured = gap.measured;
  // … build shared context and pick destinations …

  if (
    ai !== null &&
    ai.queryFit === "does_not_fit" &&
    !measured.questionNamesBrand
  ) {
    return noAction(
      shared,
      diagnosis(
        shared,
        "query_outside_offering",
        "ai_inferred",
        `${shared.observed} AI assessment (inference, not measured): ${ai.queryFitRationale ?? ai.rationale}`,
      ),
      `No content is recommended. The AI assessment judged this question to be outside what ${brand.name} offers, so content written for it would be off-message and unlikely to earn recommendations. If that judgement is wrong, reject this plan with a note and add verified facts or tracked competitors that show the fit before the next audit.`,
    );
  }

  if (gap.isFactualQuestion) {
    return decideFactual(shared, owned);
  }

  if (gap.outcome === "present") {
    return noAction(
      shared,
      diagnosis(shared, "already_visible", "measured", shared.observed),
      `No content is recommended: ${brand.name} was named in every captured response to this question.`,
    );
  }

  const decision = decideVisibilityGap(shared, owned, thirdPartyArticle);
  return withOpportunities(shared, decision);
}

What happened, when

  1. 2025

    Working at Sperm Racing, I saw there wasn't much of a GEO presence, looked into the fixes out there, didn't like what I saw, and decided to build my own

  2. 2026

    Built the audit, the diagnosis and Boost. Got 5 design partners and ran the agent 100+ times

  3. 2026

    Early design partners said there was a big need. MyLife, a startup out of UC Berkeley, told us they were optimizing for GEO presence because that's where commerce is moving

  4. 2026

    Met more startups in our target market: many were bringing GEO in-house, or already working with established providers like Profound

  5. Oct 2026

    Audited Agentline's own brand: named in 0 of 89 completed AI answers, with 1 run failed

  6. Oct 2026

    Wound down, because of what we heard from our target market

Evidence

One audit of Agentline's own brand: each row is one question sent to the OpenAI, Gemini or Claude API, and every answer is kept as evidence.

Requested Oct 7, 2026

What was asked: 30 buyer questions, with the three AIs' answers side by side, each marked mentioned or not.

Oct 2026

A Boost plan for one lost question: what was measured, why it lost (labeled as AI inference), and the one recommended action.

Oct 2026

Self-audit results: Agentline was named in 0 of 89 completed AI answers, 1 run failed, and the answers cited 424 sources.

Oct 2026

Note: A baseline on our own brand. It doesn't show any customer gaining visibility.

The landing page: paste your website, see how AI describes your brand.

Oct 2026

Supporting context

Stack: Next.js and TypeScript on Supabase (Postgres), the Claude, OpenAI and Gemini APIs, and background workers · GEO (generative engine optimization): how often AI answers mention and recommend a company

What I learned

Ship fast, and talk to more customers than lines of code you write.

Next time, I'd do a lot more customer interviews before building the product.

Millad Afshar