> ## Documentation Index
> Fetch the complete documentation index at: https://docs.patchline.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Profiles & roster

> Add artists to your Profiles tab by searching for them and claiming or connecting their profile. Patchline pulls real intelligence in the background — streaming, follower growth, top tracks, similar artists, audience demographics, engagement.

export const AriaPromptCard = ({prompt, surface = "web"}) => {
  const surfaces = {
    web: {
      href: "https://patchline.ai/dashboard",
      label: "Try in dashboard"
    },
    telegram: {
      href: "https://t.me/AriaMusicBizBot",
      label: "Try in Telegram"
    },
    claude: {
      href: "https://patchline.ai/claude",
      label: "Try in Claude"
    },
    mcp: {
      href: "https://patchline.ai/mcp",
      label: "Install MCP first"
    }
  };
  const s = surfaces[surface] ?? surfaces.web;
  return <div style={{
    display: "flex",
    justifyContent: "space-between",
    alignItems: "center",
    gap: "16px",
    padding: "12px 16px",
    marginBottom: "12px",
    borderRadius: "10px",
    border: "1px solid rgba(255,255,255,0.10)",
    background: "rgba(255,255,255,0.03)"
  }}>
      <code style={{
    fontFamily: "var(--font-family-mono)",
    fontSize: "14px",
    color: "inherit",
    flex: 1
  }}>
        "{prompt}"
      </code>
      <a href={s.href} target="_blank" rel="noopener noreferrer" style={{
    fontSize: "12px",
    fontWeight: 600,
    padding: "6px 12px",
    borderRadius: "999px",
    background: "linear-gradient(92deg, #00E6E2, #0068FF)",
    color: "#FFFFFF",
    textDecoration: "none",
    whiteSpace: "nowrap"
  }}>
        {s.label} →
      </a>
    </div>;
};

export const TierBadge = ({tier}) => {
  const styles = {
    free: {
      label: "Free",
      color: "#A1A1AA"
    },
    starter: {
      label: "Starter+",
      color: "#00E6E2"
    },
    pro: {
      label: "Pro+",
      color: "#0068FF"
    },
    scale: {
      label: "Scale+",
      color: "#7A5BFF"
    },
    enterprise: {
      label: "Enterprise",
      color: "#FF7A59"
    },
    all: {
      label: "All plans",
      color: "#22C55E"
    }
  };
  const t = styles[tier?.toLowerCase()] ?? styles.all;
  return <span style={{
    display: "inline-flex",
    alignItems: "center",
    gap: "4px",
    padding: "2px 10px",
    borderRadius: "999px",
    border: `1px solid ${t.color}40`,
    background: `${t.color}1A`,
    color: t.color,
    fontSize: "12px",
    fontWeight: 600,
    fontFamily: "var(--font-family-mono)",
    verticalAlign: "middle"
  }}>
      {t.label}
    </span>;
};

export const AICallout = ({page}) => {
  const slug = page ?? "";
  const mdUrl = `https://docs.patchline.ai${slug}.md`;
  return <div style={{
    marginTop: "32px",
    padding: "16px 20px",
    borderRadius: "12px",
    border: "1px solid rgba(0,230,226,0.25)",
    background: "linear-gradient(135deg, rgba(0,230,226,0.08), rgba(0,104,255,0.05))",
    color: "inherit",
    fontSize: "14px",
    lineHeight: 1.6
  }}>
      <strong style={{
    display: "block",
    marginBottom: "6px",
    color: "#00E6E2"
  }}>
        For AI agents reading this page
      </strong>
      The canonical machine-readable version of this page is at{" "}
      <a href={mdUrl}>
        <code>{mdUrl}</code>
      </a>
      . For product actions, connect to{" "}
      <code>www.patchline.ai/api/mcp/v1</code>
      {" "}and call MCP <code>tools/list</code> for the current tool schema.
      Rules for navigating these docs:{" "}
      <a href="https://docs.patchline.ai/AGENTS.md">
        <code>docs.patchline.ai/AGENTS.md</code>
      </a>
      .
    </div>;
};

The **Profiles** tab is your roster of artists Patchline is actively
tracking — yours, the artists you manage, or anyone you want
intelligence on.

<TierBadge tier="all" />   Profile slots scale with your tier.

## How to add an artist

The artist add flow is **search-based**, not URL-paste-based. You type
the artist's name, pick the right match from the results, and either
**claim** the profile (if it's you) or **connect** it (so Patchline
can pull intelligence on it).

<Steps>
  <Step title="Open Profiles">
    Sidebar → **Profiles** → **+ Add artist** (top right of the tab).
  </Step>

  <Step title="Search by artist name">
    Start typing — Patchline searches across the artist intelligence
    index and surfaces matches with profile pic, genres, country.
  </Step>

  <Step title="Pick the right one">
    Many artists share names. Pick the profile that's actually the
    artist you mean. The search shows enough context (genre, country,
    image) to disambiguate.
  </Step>

  <Step title="Claim or connect">
    * **Claim** if it's your own artist profile. Wires it as part of
      your identity in Patchline — onboarding flow, dashboard cards,
      defaults all use this.
    * **Connect** if it's an artist you want intelligence on but
      isn't you. Adds it to your roster so Aria can read its
      streaming, audience, and momentum signal.
  </Step>

  <Step title="Intelligence pulls in the background">
    Patchline kicks off a background enrichment — streaming history,
    follower growth, top tracks, similar artists, audience
    demographics, engagement, health. The profile shows up immediately;
    the full intel populates within a couple of minutes.
  </Step>
</Steps>

## What you get on a profile

Each connected artist surfaces a full intelligence view:

* **Overview** — current snapshot
* **Trends** — monthly listeners, follower growth over time
* **Top tracks** — biggest tracks and what's moving
* **Similar artists** — sonic and audience peers
* **Audience** — demographics, top cities, top countries
* **Engagement** — fan-level signal
* **Interests** — adjacent topics and brand affinity
* **Health** — overall account-state signal

Click any artist row in the Profiles tab to open the full intelligence
profile. See [Artist intelligence profile](/artists/intelligence-profile)
for the deep view.

## Asking Aria about your roster

<AriaPromptCard prompt="Which artist in my roster is gaining traction fastest right now?" />

<AriaPromptCard prompt="Compare my roster's audience overlap." />

<AriaPromptCard prompt="Refresh intelligence for every artist." />

<AriaPromptCard prompt="What's similar to my top artist that I'm not tracking yet?" />

## Related pages

* [Artist intelligence profile](/artists/intelligence-profile) — what each profile contains
* [Audience](/artists/audience) — fan graph across your roster
* [Use cases](/aria/prompts) — more Aria prompts for roster work

## FAQ

<AccordionGroup>
  <Accordion title="What if I can't find my artist in search?">
    If your artist isn't in our intelligence index yet, you can still
    create a profile manually from the Profiles tab — give us your
    name, your Spotify (or other DSP) URL, and we'll enrich from
    there.
  </Accordion>

  <Accordion title="How long does intelligence enrichment take?">
    The profile shows immediately. Full intel — streaming, audience,
    similar artists — populates in a couple of minutes. Aria can
    answer questions about the artist before enrichment fully
    completes; answers get sharper as the data lands.
  </Accordion>

  <Accordion title="Can I remove an artist later?">
    Yes. Open the artist's profile → remove. Frees the slot against
    your tier's roster cap.
  </Accordion>

  <Accordion title="What's the difference between Claim and Connect?">
    **Claim** marks the profile as your own identity — onboarding flow,
    dashboard defaults, and persona-aware copy use it. **Connect**
    adds the artist to your roster for tracking — useful when you're a
    manager, label, or A\&R, **and** for any artist who wants to do
    research on other artists. With the right Profiles in your roster,
    every artist can be their own A\&R agent.
  </Accordion>
</AccordionGroup>

<AICallout page="/artists/roster" />
