{
  "name": "Grade",
  "slug": "grade",
  "domain": "https://usegrade.com",
  "sources": [
    "yc"
  ],
  "branding": {
    "colorScheme": "light",
    "fonts": [
      {
        "family": "Plus Jakarta Sans",
        "role": "body"
      }
    ],
    "colors": {
      "primary": "#1D6146",
      "secondary": "#FEF3C6",
      "accent": "#1D6146",
      "background": "#FFFFFF",
      "textPrimary": "#1C1917",
      "link": "#6B8376"
    },
    "typography": {
      "fontFamilies": {
        "primary": "Plus Jakarta Sans",
        "heading": "Plus Jakarta Sans"
      },
      "fontStacks": {
        "heading": [
          "Plus Jakarta Sans"
        ],
        "body": [
          "Plus Jakarta Sans"
        ],
        "paragraph": [
          "Plus Jakarta Sans"
        ]
      },
      "fontSizes": {
        "h1": "16px",
        "h2": "20px",
        "body": "48px"
      }
    },
    "spacing": {
      "baseUnit": 4,
      "borderRadius": "0px"
    },
    "components": {
      "input": {
        "background": "transparent",
        "textColor": "#1C1917",
        "borderColor": null,
        "borderRadius": "0px",
        "borderRadiusCorners": {
          "topLeft": "0px",
          "topRight": "0px",
          "bottomRight": "0px",
          "bottomLeft": "0px"
        },
        "shadow": "rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px"
      },
      "buttonPrimary": {
        "background": "#1D6146",
        "textColor": "#FFFFFF",
        "borderRadius": "14px",
        "borderRadiusCorners": {
          "topLeft": "14px",
          "topRight": "14px",
          "bottomRight": "14px",
          "bottomLeft": "14px"
        },
        "shadow": "none"
      },
      "buttonSecondary": {
        "background": "#6B8376",
        "textColor": "#FFFFFF",
        "borderRadius": "10px",
        "borderRadiusCorners": {
          "topLeft": "10px",
          "topRight": "10px",
          "bottomRight": "10px",
          "bottomLeft": "10px"
        },
        "shadow": "rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.1) 0px 1px 2px -1px"
      }
    },
    "images": {
      "logo": "https://usegrade.com/logos/logo-text-black.svg",
      "favicon": "https://usegrade.com/favicon.ico?favicon.5ca26e0f.ico",
      "ogImage": "https://usegrade.com/social-card-thumbnail.png",
      "logoHref": "/",
      "logoAlt": "Grade Logo"
    },
    "__llm_logo_reasoning": {
      "selectedIndex": 7,
      "reasoning": "Selected #7 because it is visible, located in the header, has the correct alt text ('Grade Logo'), and links to the homepage, making it the primary brand logo.",
      "confidence": 0.95,
      "source": "llm"
    },
    "__llm_button_reasoning": {
      "primary": {
        "index": 1,
        "text": "Book a Demo",
        "reasoning": "Button #1 has a vibrant brand color (#1D6146) and action-oriented text ('Book a Demo'), making it the primary CTA."
      },
      "secondary": {
        "index": 3,
        "text": "Approve & Pay",
        "reasoning": "Button #3 has a different background color (#6B8376) and serves a secondary action ('Approve & Pay'), making it suitable as a secondary button."
      },
      "confidence": 0.95
    },
    "personality": {
      "tone": "professional",
      "energy": "medium",
      "targetAudience": "businesses and creators"
    },
    "designSystem": {
      "framework": "tailwind",
      "componentLibrary": ""
    },
    "confidence": {
      "buttons": 0.95,
      "colors": 0.9,
      "overall": 0.925
    },
    "__llm_metadata": {
      "logoSelection": {
        "llmCalled": true,
        "llmSucceeded": true,
        "finalSource": "llm",
        "rawLogoSelection": {
          "selectedLogoIndex": 7,
          "selectedLogoReasoning": "Selected #7 because it is visible, located in the header, has the correct alt text ('Grade Logo'), and links to the homepage, making it the primary brand logo.",
          "confidence": 0.95
        }
      },
      "buttonClassification": {
        "llmCalled": true,
        "llmSucceeded": true
      }
    }
  },
  "images": [
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/grade/6b4dd040b2.webp",
      "alt": "Grade - Pay Your Creators and Stay Compliant",
      "source_url": "https://usegrade.com/",
      "image_url": "https://usegrade.com/.lunagraph-assets/iphone-shadow.png",
      "width": 3843,
      "height": 4533,
      "bytes": 4775107,
      "query": "site:usegrade.com",
      "query_suffix": "site:usegrade.com"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/grade/93dfc9aaf8.webp",
      "alt": "Get Paid as a Creator | Grade",
      "source_url": "https://usegrade.com/get-paid",
      "image_url": "https://usegrade.com/.lunagraph-assets/1769204764323-jvie1z.png",
      "width": 3404,
      "height": 1705,
      "bytes": 621212,
      "query": "site:usegrade.com",
      "query_suffix": "site:usegrade.com"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/grade/bae369ab80.webp",
      "alt": "Grade Blog | Grade",
      "source_url": "https://usegrade.com/blog",
      "image_url": "https://usegrade.com/images/blog/viral-to-revenue-tracking-ugc-creator-roi-1769360786920.jpg",
      "width": 2912,
      "height": 1632,
      "bytes": 436388,
      "query": "site:usegrade.com",
      "query_suffix": "site:usegrade.com"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/grade/f21e3dcc4d.webp",
      "alt": "Get Paid as a Creator | Grade",
      "source_url": "https://usegrade.com/get-paid",
      "image_url": "https://usegrade.com/.lunagraph-assets/1769204848043-f7ovs3.png",
      "width": 2048,
      "height": 1925,
      "bytes": 440486,
      "query": "site:usegrade.com",
      "query_suffix": "site:usegrade.com"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/grade/79bb55cb78.webp",
      "alt": "Grade Blog | Grade",
      "source_url": "https://usegrade.com/blog",
      "image_url": "https://usegrade.com/images/blog/how-to-pay-a-creator-with-just-their-email.jpg",
      "width": 2912,
      "height": 1632,
      "bytes": 445223,
      "query": "site:usegrade.com",
      "query_suffix": "site:usegrade.com"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/grade/40cfab281e.webp",
      "alt": "Grade - Pay Your Creators and Stay Compliant",
      "source_url": "https://usegrade.com/",
      "image_url": "https://usegrade.com/.lunagraph-assets/invoice.png",
      "width": 1520,
      "height": 2014,
      "bytes": 215944,
      "query": "site:usegrade.com",
      "query_suffix": "site:usegrade.com"
    }
  ],
  "font_resources": [
    {
      "family": "Plus Jakarta Sans",
      "google_fonts_url": "https://fonts.google.com/specimen/Plus+Jakarta+Sans"
    },
    {
      "family": "Plus Jakarta Sans",
      "google_fonts_url": "https://fonts.google.com/specimen/Plus+Jakarta+Sans"
    }
  ],
  "google_fonts_css": "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans&family=Plus+Jakarta+Sans&display=swap",
  "font_download_note": "Not found on Google Fonts? Agent Instructions that you can follow if you have permission to use the fonts:\n\nCharacterQuilt.com suggests this flow that can help:\n\n1. Open the company's homepage in a browser with DevTools open.\n2. In the Network tab, filter by \"Font\" (or by extension: woff2, woff, ttf, otf).\n3. Hard-reload the page and click around (pricing, blog, careers) — some weights only load on specific routes.\n4. For each captured font URL: right-click → Save As to download the file locally.\n5. View the page's CSS (DevTools → Sources, or curl the stylesheet URLs) and copy out the matching @font-face declarations. Rewrite each `src: url(...)` to point to your local file path.\n\nProgrammatic alternative: load the URL with Playwright or Puppeteer, listen for `response` events whose `Content-Type` starts with `font/`, and write the body to disk. The CSS extraction step is the same.\n\nOnly do this if you have permission to use the brand assets — most proprietary fonts are licensed and may not be redistributable.",
  "page_url": "https://characterquilt.com/branding/grade",
  "agent_instructions": "You are designing or implementing in Grade's brand identity.\n\n# Brand profile\n- Company: Grade\n- Source: https://usegrade.com\n- Color scheme: light\n\n# Colors\n- primary: #1D6146\n- secondary: #FEF3C6\n- accent: #1D6146\n- background: #FFFFFF\n- textPrimary: #1C1917\n- link: #6B8376\n\n# Typography\n- primary: Plus Jakarta Sans — https://fonts.google.com/specimen/Plus+Jakarta+Sans\n- heading: Plus Jakarta Sans — https://fonts.google.com/specimen/Plus+Jakarta+Sans\n\nLoad all fonts at once: <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans&family=Plus+Jakarta+Sans&display=swap\">\n\n# UI Components\n- input: background=transparent, textColor=#1C1917, borderColor=null, borderRadius=0px, shadow=rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px\n- buttonPrimary: background=#1D6146, textColor=#FFFFFF, borderRadius=14px, shadow=none\n- buttonSecondary: background=#6B8376, textColor=#FFFFFF, borderRadius=10px, shadow=rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.1) 0px 1px 2px -1px\n\n# Brand voice\n- Tone: professional\n- Energy: medium\n- Audience: businesses and creators\n\n# Working with these fonts\nNot found on Google Fonts? Agent Instructions that you can follow if you have permission to use the fonts:\n\nCharacterQuilt.com suggests this flow that can help:\n\n1. Open the company's homepage in a browser with DevTools open.\n2. In the Network tab, filter by \"Font\" (or by extension: woff2, woff, ttf, otf).\n3. Hard-reload the page and click around (pricing, blog, careers) — some weights only load on specific routes.\n4. For each captured font URL: right-click → Save As to download the file locally.\n5. View the page's CSS (DevTools → Sources, or curl the stylesheet URLs) and copy out the matching @font-face declarations. Rewrite each `src: url(...)` to point to your local file path.\n\nProgrammatic alternative: load the URL with Playwright or Puppeteer, listen for `response` events whose `Content-Type` starts with `font/`, and write the body to disk. The CSS extraction step is the same.\n\nOnly do this if you have permission to use the brand assets — most proprietary fonts are licensed and may not be redistributable.\n\n# Full machine-readable profile\nhttps://characterquilt.com/branding/grade.json",
  "page_markdown": "# Grade Brand Identity\n\nA complete profile of **Grade**'s visual system — colors, typography, components, and personality — extracted from https://usegrade.com. Built for designers, agents, and AI tools.\n\n- Page: https://characterquilt.com/branding/grade\n- Machine-readable JSON: https://characterquilt.com/branding/grade.json\n- Per-page llms.txt: https://characterquilt.com/branding/grade/llms.txt\n\n## Quick Facts\n\n| Field | Value |\n|---|---|\n| Primary | #1D6146 |\n| Accent | #1D6146 |\n| Body Font | Plus Jakarta Sans |\n| Heading Font | Plus Jakarta Sans |\n\n## Color Palette\n\n- primary: #1D6146\n- secondary: #FEF3C6\n- accent: #1D6146\n- background: #FFFFFF\n- textPrimary: #1C1917\n- link: #6B8376\n\n## Typography\n\n- primary: Plus Jakarta Sans — https://fonts.google.com/specimen/Plus+Jakarta+Sans\n- heading: Plus Jakarta Sans — https://fonts.google.com/specimen/Plus+Jakarta+Sans\n\n## Visual Assets\n\n- Logo: https://usegrade.com/logos/logo-text-black.svg\n- Favicon: https://usegrade.com/favicon.ico?favicon.5ca26e0f.ico\n- Social card (og:image): https://usegrade.com/social-card-thumbnail.png\n\n## UI Components\n\n- input: background=transparent, textColor=#1C1917, borderColor=null, borderRadius=0px, shadow=rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px\n- buttonPrimary: background=#1D6146, textColor=#FFFFFF, borderRadius=14px, shadow=none\n- buttonSecondary: background=#6B8376, textColor=#FFFFFF, borderRadius=10px, shadow=rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.1) 0px 1px 2px -1px\n\n## Brand Personality\n\nTone: professional · Energy: medium · Audience: businesses and creators\n\n## Grade Brand in the Wild\n\nReal-world brand assets — ads, campaigns, marketing materials.\n\n- **Grade - Pay Your Creators and Stay Compliant**\n  - Image: https://usegrade.com/.lunagraph-assets/iphone-shadow.png\n  - Source: https://usegrade.com/\n- **Get Paid as a Creator | Grade**\n  - Image: https://usegrade.com/.lunagraph-assets/1769204764323-jvie1z.png\n  - Source: https://usegrade.com/get-paid\n- **Grade Blog | Grade**\n  - Image: https://usegrade.com/images/blog/viral-to-revenue-tracking-ugc-creator-roi-1769360786920.jpg\n  - Source: https://usegrade.com/blog\n- **Get Paid as a Creator | Grade**\n  - Image: https://usegrade.com/.lunagraph-assets/1769204848043-f7ovs3.png\n  - Source: https://usegrade.com/get-paid\n- **Grade Blog | Grade**\n  - Image: https://usegrade.com/images/blog/how-to-pay-a-creator-with-just-their-email.jpg\n  - Source: https://usegrade.com/blog\n- **Grade - Pay Your Creators and Stay Compliant**\n  - Image: https://usegrade.com/.lunagraph-assets/invoice.png\n  - Source: https://usegrade.com/\n\n## Working with these fonts\n\nNot found on Google Fonts? Agent Instructions that you can follow if you have permission to use the fonts:\n\nCharacterQuilt.com suggests this flow that can help:\n\n1. Open the company's homepage in a browser with DevTools open.\n2. In the Network tab, filter by \"Font\" (or by extension: woff2, woff, ttf, otf).\n3. Hard-reload the page and click around (pricing, blog, careers) — some weights only load on specific routes.\n4. For each captured font URL: right-click → Save As to download the file locally.\n5. View the page's CSS (DevTools → Sources, or curl the stylesheet URLs) and copy out the matching @font-face declarations. Rewrite each `src: url(...)` to point to your local file path.\n\nProgrammatic alternative: load the URL with Playwright or Puppeteer, listen for `response` events whose `Content-Type` starts with `font/`, and write the body to disk. The CSS extraction step is the same.\n\nOnly do this if you have permission to use the brand assets — most proprietary fonts are licensed and may not be redistributable.\n\n## Machine-Readable Profile\n\n```json\n{\n  \"colorScheme\": \"light\",\n  \"fonts\": [\n    {\n      \"family\": \"Plus Jakarta Sans\",\n      \"role\": \"body\"\n    }\n  ],\n  \"colors\": {\n    \"primary\": \"#1D6146\",\n    \"secondary\": \"#FEF3C6\",\n    \"accent\": \"#1D6146\",\n    \"background\": \"#FFFFFF\",\n    \"textPrimary\": \"#1C1917\",\n    \"link\": \"#6B8376\"\n  },\n  \"typography\": {\n    \"fontFamilies\": {\n      \"primary\": \"Plus Jakarta Sans\",\n      \"heading\": \"Plus Jakarta Sans\"\n    },\n    \"fontStacks\": {\n      \"heading\": [\n        \"Plus Jakarta Sans\"\n      ],\n      \"body\": [\n        \"Plus Jakarta Sans\"\n      ],\n      \"paragraph\": [\n        \"Plus Jakarta Sans\"\n      ]\n    },\n    \"fontSizes\": {\n      \"h1\": \"16px\",\n      \"h2\": \"20px\",\n      \"body\": \"48px\"\n    }\n  },\n  \"spacing\": {\n    \"baseUnit\": 4,\n    \"borderRadius\": \"0px\"\n  },\n  \"components\": {\n    \"input\": {\n      \"background\": \"transparent\",\n      \"textColor\": \"#1C1917\",\n      \"borderColor\": null,\n      \"borderRadius\": \"0px\",\n      \"borderRadiusCorners\": {\n        \"topLeft\": \"0px\",\n        \"topRight\": \"0px\",\n        \"bottomRight\": \"0px\",\n        \"bottomLeft\": \"0px\"\n      },\n      \"shadow\": \"rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px\"\n    },\n    \"buttonPrimary\": {\n      \"background\": \"#1D6146\",\n      \"textColor\": \"#FFFFFF\",\n      \"borderRadius\": \"14px\",\n      \"borderRadiusCorners\": {\n        \"topLeft\": \"14px\",\n        \"topRight\": \"14px\",\n        \"bottomRight\": \"14px\",\n        \"bottomLeft\": \"14px\"\n      },\n      \"shadow\": \"none\"\n    },\n    \"buttonSecondary\": {\n      \"background\": \"#6B8376\",\n      \"textColor\": \"#FFFFFF\",\n      \"borderRadius\": \"10px\",\n      \"borderRadiusCorners\": {\n        \"topLeft\": \"10px\",\n        \"topRight\": \"10px\",\n        \"bottomRight\": \"10px\",\n        \"bottomLeft\": \"10px\"\n      },\n      \"shadow\": \"rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.1) 0px 1px 2px -1px\"\n    }\n  },\n  \"images\": {\n    \"logo\": \"https://usegrade.com/logos/logo-text-black.svg\",\n    \"favicon\": \"https://usegrade.com/favicon.ico?favicon.5ca26e0f.ico\",\n    \"ogImage\": \"https://usegrade.com/social-card-thumbnail.png\",\n    \"logoHref\": \"/\",\n    \"logoAlt\": \"Grade Logo\"\n  },\n  \"__llm_logo_reasoning\": {\n    \"selectedIndex\": 7,\n    \"reasoning\": \"Selected #7 because it is visible, located in the header, has the correct alt text ('Grade Logo'), and links to the homepage, making it the primary brand logo.\",\n    \"confidence\": 0.95,\n    \"source\": \"llm\"\n  },\n  \"__llm_button_reasoning\": {\n    \"primary\": {\n      \"index\": 1,\n      \"text\": \"Book a Demo\",\n      \"reasoning\": \"Button #1 has a vibrant brand color (#1D6146) and action-oriented text ('Book a Demo'), making it the primary CTA.\"\n    },\n    \"secondary\": {\n      \"index\": 3,\n      \"text\": \"Approve & Pay\",\n      \"reasoning\": \"Button #3 has a different background color (#6B8376) and serves a secondary action ('Approve & Pay'), making it suitable as a secondary button.\"\n    },\n    \"confidence\": 0.95\n  },\n  \"personality\": {\n    \"tone\": \"professional\",\n    \"energy\": \"medium\",\n    \"targetAudience\": \"businesses and creators\"\n  },\n  \"designSystem\": {\n    \"framework\": \"tailwind\",\n    \"componentLibrary\": \"\"\n  },\n  \"confidence\": {\n    \"buttons\": 0.95,\n    \"colors\": 0.9,\n    \"overall\": 0.925\n  },\n  \"__llm_metadata\": {\n    \"logoSelection\": {\n      \"llmCalled\": true,\n      \"llmSucceeded\": true,\n      \"finalSource\": \"llm\",\n      \"rawLogoSelection\": {\n        \"selectedLogoIndex\": 7,\n        \"selectedLogoReasoning\": \"Selected #7 because it is visible, located in the header, has the correct alt text ('Grade Logo'), and links to the homepage, making it the primary brand logo.\",\n        \"confidence\": 0.95\n      }\n    },\n    \"buttonClassification\": {\n      \"llmCalled\": true,\n      \"llmSucceeded\": true\n    }\n  }\n}\n```\n"
}