refactor: update references from competitive intelligence to open web research across various components and documentation

This commit is contained in:
DESKTOP-RTLN3BA\$punk 2026-07-16 19:41:16 -07:00
parent a7903e0b4b
commit 7bc02ce55b
32 changed files with 225 additions and 225 deletions

View file

@ -76,7 +76,7 @@ function Show-Banner {
"@ -ForegroundColor White
Write-Host " OSS Alternative to NotebookLM for Teams" -ForegroundColor Yellow
Write-Host " NotebookLM for Open Web Research" -ForegroundColor Yellow
Write-Host ("=" * 62) -ForegroundColor Cyan
Write-Info "This installer will create $InstallDir\ and start SurfSense with Docker Compose."
}

View file

@ -87,7 +87,7 @@ show_banner() {
EOF
printf "${YELLOW} OSS Alternative to NotebookLM for Teams${NC}\n"
printf "${YELLOW} NotebookLM for Open Web Research${NC}\n"
printf "${CYAN}══════════════════════════════════════════════════════════════${NC}\n"
info "This installer will create ${INSTALL_DIR}/ and start SurfSense with Docker Compose."
}

View file

@ -46,7 +46,7 @@ def build_anonymous_system_prompt(anon_doc: dict[str, Any] | None = None) -> str
a registration funnel: every other SurfSense capability (scraping, live
data, deliverables, knowledge base, automations) redirects to sign-up, and
the assistant softly suggests an account when the conversation reveals a
competitive-intelligence need the platform serves.
live-web-research need the platform serves.
"""
today = datetime.now(UTC).strftime("%A, %B %d, %Y")
@ -73,8 +73,8 @@ def build_anonymous_system_prompt(anon_doc: dict[str, Any] | None = None) -> str
return (
"You are SurfSense's free AI assistant, available to everyone without "
"login. SurfSense is the open-source competitive intelligence platform: "
"registered users get specialist agents that pull live market data from "
"login. SurfSense is the open-source open web research platform: "
"registered users get specialist agents that pull live web data from "
"Reddit, YouTube, Google Maps, Google Search, and the open web, turn it "
"into cited briefs, reports, podcasts, and presentations, keep findings "
"in a searchable knowledge base, and run scheduled monitoring "
@ -110,10 +110,11 @@ def build_anonymous_system_prompt(anon_doc: dict[str, Any] | None = None) -> str
"your own knowledge and about any uploaded document).\n\n"
"## Suggesting SurfSense when it genuinely fits\n"
"You are also the front door to SurfSense. When the conversation "
"reveals a need the full platform serves — researching competitors, "
"tracking pricing or rankings, monitoring brand mentions or reviews, "
"gauging Reddit/YouTube sentiment, generating leads, needing current "
"web data, or wanting recurring reports — first answer as well as you "
"reveals a need the full platform serves — researching a topic or "
"competitor on the live web, tracking pricing or rankings, monitoring "
"brand mentions or reviews, gauging Reddit/YouTube sentiment, "
"generating leads, needing current web data, or wanting recurring "
"reports — first answer as well as you "
"can from your own knowledge, then add ONE short sentence pointing out "
"that a free SurfSense account can do that with live data, linking "
"https://www.surfsense.com/register.\n"

View file

@ -1,12 +1,12 @@
<agent_identity>
You are **SurfSense's main agent**, the orchestrator of an open-source
competitive intelligence platform. Users come to you to understand their
market: what competitors are doing, how audiences react, where rankings and
reviews are moving, and what is being said across the open web — and to put
that intelligence to work alongside their own knowledge base.
open web research platform. Users come to you to research the live web:
what communities and audiences are saying, how rankings, reviews, and pages
are changing, and what is being published across the open web — and to put
that research to work alongside their own knowledge base.
You do this by dispatching **specialist subagents** via the `task` tool:
- **Live market data** — Reddit, YouTube, TikTok, Google Maps, Google Search,
- **Live web data** — Reddit, YouTube, TikTok, Google Maps, Google Search,
and the web crawler return structured, current platform data (posts,
comments, transcripts, videos, reviews, SERPs, full page content).
- **The user's own context** — their knowledge base, connected apps, and

View file

@ -1,12 +1,12 @@
<agent_identity>
You are **SurfSense's main agent**, the orchestrator of an open-source
competitive intelligence platform. This team comes to you to understand its
market: what competitors are doing, how audiences react, where rankings and
reviews are moving, and what is being said across the open web — and to put
that intelligence to work alongside the team's shared knowledge base.
open web research platform. This team comes to you to research the live web:
what communities and audiences are saying, how rankings, reviews, and pages
are changing, and what is being published across the open web — and to put
that research to work alongside the team's shared knowledge base.
You do this by dispatching **specialist subagents** via the `task` tool:
- **Live market data** — Reddit, YouTube, TikTok, Google Maps, Google Search,
- **Live web data** — Reddit, YouTube, TikTok, Google Maps, Google Search,
and the web crawler return structured, current platform data (posts,
comments, transcripts, videos, reviews, SERPs, full page content).
- **The team's own context** — its shared knowledge base, connected apps, and

View file

@ -1,6 +1,6 @@
"""Pure contact/social-signal extraction from raw HTML (Apache-2.0, generic).
Lead-gen / competitive-intelligence crawls need the emails, phone numbers, and
Lead-gen / company-research crawls need the emails, phone numbers, and
social profiles a site publishes which almost always live in the footer, the
contact page, or the privacy/terms pages. Trafilatura's main-content extraction
deliberately drops that boilerplate, so these signals must be pulled from the

View file

@ -6,7 +6,7 @@ import { getAllConnectors } from "@/lib/connectors-marketing";
const canonicalUrl = "https://www.surfsense.com/connectors";
const metaDescription =
"Platform-native scraper APIs for AI agents. Pull live data from the platforms your market uses through one typed API or the SurfSense MCP server. Explore every connector.";
"Platform-native scraper APIs for AI agents. Pull live, structured data from the platforms where answers live through one typed API or the SurfSense MCP server. Explore every connector.";
export const metadata: Metadata = {
title: "Scraper APIs for AI Agents: All Connectors | SurfSense",
@ -17,7 +17,7 @@ export const metadata: Metadata = {
"scraper api for ai agents",
"data connectors",
"mcp server",
"competitive intelligence platform",
"open web research platform",
],
alternates: { canonical: canonicalUrl },
openGraph: {
@ -38,13 +38,13 @@ export default function ConnectorsIndexPage() {
<div className="mx-auto w-full max-w-7xl px-2 md:px-8 xl:px-0">
<header className="max-w-2xl">
<h1 className="text-3xl font-bold tracking-tight text-balance sm:text-4xl lg:text-5xl">
Connectors for every platform your market uses
Connectors for every platform where answers live
</h1>
<p className="mt-5 text-base leading-relaxed text-muted-foreground sm:text-lg">
Each connector is a platform-native scraper API your AI agents can call directly, or
through the SurfSense MCP server. They are the live data behind the SurfSense{" "}
<Link href="/" className="font-medium text-foreground underline underline-offset-4">
competitive intelligence platform
open web research platform
</Link>
.
</p>

View file

@ -253,7 +253,7 @@ export default function ExternalMcpConnectorsPage() {
<p className="mt-3 max-w-2xl text-muted-foreground leading-relaxed">
These apps run on their official hosted MCP servers. Sign in once with OAuth and
SurfSense manages the tokens and curates each tool list, so your agents can search
Notion, read Slack threads, or file Jira issues alongside your market intelligence.
Notion, read Slack threads, or file Jira issues alongside your live web research.
</p>
</Reveal>
<Reveal>
@ -330,7 +330,7 @@ export default function ExternalMcpConnectorsPage() {
<p className="mx-auto mt-3 max-w-xl text-muted-foreground leading-relaxed">
External MCP connectors are part of the SurfSense{" "}
<Link href="/" className="font-medium text-foreground underline underline-offset-4">
competitive intelligence platform
open web research platform
</Link>
. Start free, no credit card required.
</p>

View file

@ -369,12 +369,12 @@ export default function McpServerPage() {
<Reveal>
<div className="rounded-2xl border bg-card p-8 text-center sm:p-12">
<h2 className="text-2xl font-bold tracking-tight sm:text-3xl">
Put live market data inside your agents
Put live web data inside your agents
</h2>
<p className="mx-auto mt-3 max-w-xl text-muted-foreground leading-relaxed">
The MCP server is part of the SurfSense{" "}
<Link href="/" className="font-medium text-foreground underline underline-offset-4">
competitive intelligence platform
open web research platform
</Link>
. Start with $5 of free credit, no credit card required.
</p>

View file

@ -17,7 +17,7 @@ export const metadata: Metadata = {
"open source ai agent platform",
"self-hosted ai workspace",
"ai automation pricing",
"competitive intelligence pricing",
"web scraping api pricing",
],
alternates: {
canonical: canonicalUrl,

View file

@ -18,7 +18,7 @@ export function BasicsSection({ name, description, errors, onChange }: BasicsSec
id="automation-name"
value={name}
maxLength={200}
placeholder="Weekly competitor digest"
placeholder="Weekly research digest"
onChange={(e) => onChange({ name: e.target.value })}
/>
</Field>

View file

@ -50,27 +50,26 @@ export const metadata: Metadata = {
alternates: {
canonical: "https://www.surfsense.com",
},
title: "SurfSense - NotebookLM for Competitive Intelligence",
title: "SurfSense - NotebookLM for Open Web Research",
description:
"SurfSense is an open-source competitive intelligence platform. Your AI agents monitor competitors, track rankings, and listen to your market through one API or MCP server.",
"SurfSense is an open-source open web research platform. Your AI agents research the live web with structured data from Reddit, YouTube, Google Maps, Google Search, and any page, through one API or MCP server.",
keywords: [
"competitive intelligence platform",
"competitive intelligence software",
"market intelligence tools",
"competitor monitoring",
"competitor price monitoring",
"brand monitoring",
"rank tracking",
"social listening",
"open web research platform",
"web research for AI agents",
"live web data for agents",
"web scraping API",
"reddit scraper api",
"youtube scraper api",
"deep research agent",
"mcp server",
"agent harness",
"open source competitive intelligence",
"open source NotebookLM alternative",
"SurfSense",
],
openGraph: {
title: "SurfSense - NotebookLM for Competitive Intelligence",
title: "SurfSense - NotebookLM for Open Web Research",
description:
"SurfSense is an open-source competitive intelligence platform. Your AI agents monitor competitors, track rankings, and listen to your market through one API or MCP server.",
"SurfSense is an open-source open web research platform. Your AI agents research the live web with structured data from Reddit, YouTube, Google Maps, Google Search, and any page, through one API or MCP server.",
url: "https://www.surfsense.com",
siteName: "SurfSense",
type: "website",
@ -79,16 +78,16 @@ export const metadata: Metadata = {
url: "/og-image.png",
width: 1200,
height: 630,
alt: "SurfSense - Competitive Intelligence Platform for AI Agents",
alt: "SurfSense - Open Web Research Platform for AI Agents",
},
],
locale: "en_US",
},
twitter: {
card: "summary_large_image",
title: "SurfSense - NotebookLM for Competitive Intelligence",
title: "SurfSense - NotebookLM for Open Web Research",
description:
"SurfSense is an open-source competitive intelligence platform. Your AI agents monitor competitors, track rankings, and listen to your market through one API or MCP server.",
"SurfSense is an open-source open web research platform. Your AI agents research the live web with structured data from Reddit, YouTube, Google Maps, Google Search, and any page, through one API or MCP server.",
creator: "@SurfSenseAI",
site: "@SurfSenseAI",
images: [
@ -96,7 +95,7 @@ export const metadata: Metadata = {
url: "/og-image-twitter.png",
width: 1200,
height: 630,
alt: "SurfSense - Competitive Intelligence Platform for AI Agents",
alt: "SurfSense - Open Web Research Platform for AI Agents",
},
],
},

View file

@ -115,7 +115,7 @@ import {
} from "../new-chat/document-mention-picker";
const COMPOSER_PLACEHOLDER =
"Track competitors, scrape platforms, automate briefs. Use / for prompts, @ for docs";
"Research the live web, scrape platforms, automate briefs. Use / for prompts, @ for docs";
type ComposerSuggestionAnchorPoint = {
left: number;

View file

@ -277,7 +277,7 @@ export function ConnectorPage({ content }: { content: ConnectorPageContent }) {
<p className="mx-auto mt-3 max-w-xl text-muted-foreground leading-relaxed">
The {content.name} connector is one of many in the SurfSense{" "}
<Link href="/" className="font-medium text-foreground underline underline-offset-4">
competitive intelligence platform
open web research platform
</Link>
. Start free, no credit card required.
</p>

View file

@ -15,7 +15,7 @@ export function ConnectorGrid() {
<Reveal>
<div className="flex flex-wrap items-center gap-3">
<h2 className="text-2xl font-bold tracking-tight sm:text-3xl">
Connectors for every platform your market uses
Connectors for every platform where answers live
</h2>
<Badge variant="outline" className="py-1">
{connectors.length} connectors and growing

View file

@ -28,7 +28,7 @@ export type HeroChatDemoScript = {
type Stage = "typing" | "steps" | "answer" | "done";
const PLACEHOLDER =
"Track competitors, scrape platforms, automate briefs. Use / for prompts, @ for docs";
"Research the live web, scrape platforms, automate briefs. Use / for prompts, @ for docs";
/** Blinking caret for the typewriter (overlay only, never inside the real input). */
function Caret() {

View file

@ -66,6 +66,105 @@ const HERO_REALTIME = "/homepage/hero_realtime";
* `src`; everything else plays the chat demo.
*/
const CATEGORIES: HeroCategory[] = [
{
id: "live-research",
label: "Research the Live Web",
useCases: [
{
id: "deep-research",
title: "Deep Research on the Live Web",
description:
"The agent crawls dozens of live sources on a question and synthesizes a cited answer, not a stale index.",
src: null,
demo: {
prompt: "Research the AI note-taking market and build a landscape brief with citations.",
steps: [
{
title: "Research",
items: ["Crawling 38 live sources", "Vendor sites, reviews, pricing pages"],
},
{
title: "Generate report",
items: ["Landscape brief · 24 inline citations"],
},
],
rows: [
{
primary: "23 vendors mapped across 4 segments",
secondary: "consumer, prosumer, team, developer-first",
},
{
primary: "Pricing clusters at $10 and $20/mo",
secondary: "3 vendors moved upmarket this quarter",
},
],
summary: "Landscape brief saved · 24 inline citations you can check",
},
},
{
id: "geo-monitoring",
title: "AI Overview & GEO Tracking",
description:
"Capture when Google's AI Overviews answer the queries you care about, and exactly which sources they cite.",
src: null,
demo: {
prompt: "Which of our target keywords trigger an AI Overview, and who gets cited?",
steps: [
{
title: "Google Search",
items: ["Scraping 25 SERPs", "Capturing AI Overviews and citations"],
},
{
title: "Plan tasks",
items: ["Map citations to competitors", "Compute your citation gap"],
},
],
rows: [
{
primary: "9 of 25 keywords trigger an AI Overview",
secondary: "up from 6 last month",
},
{
primary: "Competitor A cited on 4 · you on 1",
secondary: "their listicle wins 3 of those citations",
},
],
summary: "Citation gap report saved · weekly re-check scheduled",
},
},
{
id: "cited-briefs",
title: "Cited Briefs & Alerts",
description:
"Everything the agents gather lands in your workspace as briefs and alerts with sources you can check.",
src: null,
demo: {
prompt: "Send me a Monday brief of every change my agents detected last week.",
steps: [
{
title: "Plan tasks",
items: ["Collect pricing, changelog, SERP, Reddit signals"],
},
{
title: "Create automation",
items: ["Weekly brief · Mondays 8:00 · workspace + email"],
},
],
rows: [
{
primary: "Sources: pricing, changelogs, SERPs, Reddit",
secondary: "everything your agents tracked this week",
},
{
primary: "Delivered to workspace + email",
secondary: "every claim links to its source",
},
],
summary: "Automation created · first brief lands Monday 8:00",
},
},
],
},
{
id: "connector-workflows",
label: "Multi-Connector Workflows",
@ -191,7 +290,7 @@ const CATEGORIES: HeroCategory[] = [
secondary: "pricing + changelog diff · detected Jul 3",
},
{
primary: 'Took #2 on "competitive intelligence api"',
primary: 'Took #2 on "reddit scraper api"',
secondary: "you hold #4 · gap widened two weeks in a row",
},
{
@ -290,7 +389,7 @@ const CATEGORIES: HeroCategory[] = [
id: "serp-watch",
title: "Rank & Ad Monitoring",
description:
"Automations track the Google rankings, paid ads, and AI Overview citations your market actually sees.",
"Automations track the Google rankings, paid ads, and AI Overview citations your audience actually sees.",
src: null,
demo: {
prompt: "Track who ranks and runs ads for our top 10 keywords in the US.",
@ -310,7 +409,7 @@ const CATEGORIES: HeroCategory[] = [
],
rows: [
{
primary: '"competitive intelligence tools" — you #4, ↓1',
primary: '"ai research tools" — you #4, ↓1',
secondary: "Competitor A took #3 · runs 2 sponsored ads",
},
{
@ -441,13 +540,13 @@ const CATEGORIES: HeroCategory[] = [
},
{
id: "brand-listening",
label: "Brand & Market Listening",
label: "Brand & Community Listening",
useCases: [
{
id: "reddit-listening",
title: "Reddit Brand Monitoring",
description:
"Hear what your market says about you, your competitors, and your category in the threads where buyers speak candidly.",
"Hear what Reddit says about you, your competitors, and your category in the threads where people speak candidly.",
src: null,
demo: {
prompt: "Give me 20 posts on Reddit where people ask for an alternative to NotebookLM.",
@ -553,105 +652,6 @@ const CATEGORIES: HeroCategory[] = [
},
],
},
{
id: "market-research",
label: "Market Research",
useCases: [
{
id: "deep-research",
title: "Deep Research on the Live Web",
description:
"The agent crawls dozens of live sources on a question and synthesizes a cited answer, not a stale index.",
src: null,
demo: {
prompt: "Research the AI note-taking market and build a landscape brief with citations.",
steps: [
{
title: "Research",
items: ["Crawling 38 live sources", "Vendor sites, reviews, pricing pages"],
},
{
title: "Generate report",
items: ["Landscape brief · 24 inline citations"],
},
],
rows: [
{
primary: "23 vendors mapped across 4 segments",
secondary: "consumer, prosumer, team, developer-first",
},
{
primary: "Pricing clusters at $10 and $20/mo",
secondary: "3 vendors moved upmarket this quarter",
},
],
summary: "Landscape brief saved · 24 inline citations you can check",
},
},
{
id: "geo-monitoring",
title: "AI Overview & GEO Tracking",
description:
"Capture when Google's AI Overviews answer your market's queries, and exactly which sources they cite.",
src: null,
demo: {
prompt: "Which of our target keywords trigger an AI Overview, and who gets cited?",
steps: [
{
title: "Google Search",
items: ["Scraping 25 SERPs", "Capturing AI Overviews and citations"],
},
{
title: "Plan tasks",
items: ["Map citations to competitors", "Compute your citation gap"],
},
],
rows: [
{
primary: "9 of 25 keywords trigger an AI Overview",
secondary: "up from 6 last month",
},
{
primary: "Competitor A cited on 4 · you on 1",
secondary: "their listicle wins 3 of those citations",
},
],
summary: "Citation gap report saved · weekly re-check scheduled",
},
},
{
id: "cited-briefs",
title: "Cited Briefs & Alerts",
description:
"Everything the agents gather lands in your workspace as briefs and alerts with sources you can check.",
src: null,
demo: {
prompt: "Send me a Monday brief of every competitor change detected last week.",
steps: [
{
title: "Plan tasks",
items: ["Collect pricing, changelog, SERP, Reddit signals"],
},
{
title: "Create automation",
items: ["Weekly brief · Mondays 8:00 · workspace + email"],
},
],
rows: [
{
primary: "Sources: pricing, changelogs, SERPs, Reddit",
secondary: "everything your agents tracked this week",
},
{
primary: "Delivered to workspace + email",
secondary: "every claim links to its source",
},
],
summary: "Automation created · first brief lands Monday 8:00",
},
},
],
},
{
id: "platform-agent",
label: "SurfSense Agent",
@ -708,7 +708,7 @@ export function HeroSection() {
"relative mt-4 max-w-4xl text-left text-4xl font-bold tracking-tight text-balance text-neutral-900 sm:text-5xl md:text-6xl dark:text-neutral-50"
)}
>
<Balancer>NotebookLM for competitive intelligence research.</Balancer>
<Balancer>NotebookLM for open web research.</Balancer>
</h1>
<div className="mt-4 flex w-full flex-col items-start justify-between gap-4 md:mt-8 md:flex-row md:items-end md:gap-10">
<div>
@ -717,10 +717,10 @@ export function HeroSection() {
"relative mb-8 max-w-2xl text-left text-sm text-neutral-600 antialiased sm:text-base md:text-lg dark:text-neutral-400"
)}
>
SurfSense is an open-source competitive intelligence platform, like NotebookLM but
with live scraping connectors. Your AI agents monitor competitors, track rankings, and
listen to your market with live data from platforms like Reddit, YouTube, Instagram,
TikTok, Google Maps, Google Search, and the open web.
SurfSense is an open-source open web research platform, like NotebookLM but with
live data connectors. Your AI agents research the live web with structured data from
Reddit, YouTube, Instagram, TikTok, Google Maps, Google Search, and any page on the
open web.
</p>
<div className="relative mb-4 flex w-full flex-col justify-center gap-y-2 sm:flex-row sm:justify-start sm:space-y-0 sm:space-x-4">

View file

@ -6,9 +6,9 @@ import { FAQJsonLd } from "@/components/seo/json-ld";
/** Answers are 40-60 words, written as quotable definitions for AI Overviews. */
export const HOME_FAQ = [
{
question: "What is competitive intelligence?",
question: "What is open web research?",
answer:
"Competitive intelligence is the practice of gathering and analyzing public information about competitors and your market to make better decisions. It covers pricing, product moves, rankings, reviews, and what customers say online. SurfSense automates it: AI agents collect the live data and turn it into briefs and alerts.",
"Open web research is gathering and analyzing live public information from across the web: search results, community discussions, reviews, videos, and any page. Unlike asking a chatbot that reasons over a stale index, it works from what the web says right now. SurfSense automates it: AI agents collect the live data and turn it into cited briefs and alerts.",
},
{
question: "What is an MCP server?",
@ -28,7 +28,7 @@ export const HOME_FAQ = [
{
question: "Can I self-host SurfSense?",
answer:
"Yes. SurfSense is open source and self-hostable, so you can run the entire platform on your own infrastructure and keep sensitive competitive research in-house. Use the cloud version to start in minutes, or deploy from the GitHub repository when you need full control.",
"Yes. SurfSense is open source and self-hostable, so you can run the entire platform on your own infrastructure and keep sensitive research in-house. Use the cloud version to start in minutes, or deploy from the GitHub repository when you need full control.",
},
];

View file

@ -21,9 +21,9 @@ const PATHS: {
icon: Megaphone,
art: "chat",
eyebrow: "For founders & marketing teams",
title: "Competitor and market intelligence without the enterprise price tag",
title: "Live web research without the enterprise price tag",
description:
"Ask for a competitor teardown, a lead list, or a weekly market brief in plain English. The agent gathers live data, cites its sources, and automations keep watch so you hear about changes first. Start free, pay only for what you use.",
"Ask for a research brief, a lead list, or a competitor teardown in plain English. The agent gathers live data, cites its sources, and automations keep watch so you hear about changes first. Start free, pay only for what you use.",
links: [
{ label: "See what teams build", href: "/connectors" },
{ label: "Pricing", href: "/pricing" },

View file

@ -13,17 +13,17 @@ const USE_CASES: {
art: UseCaseArtVariant;
}[] = [
{
title: "Competitor price monitoring",
title: "Search & AI answer research",
description:
"Crawl competitor pricing and product pages on a schedule and get an alert the day something changes, not the quarter after.",
href: "/web-crawl",
anchor: "Web Crawl API",
art: "price",
"Watch the rankings, ads, and AI Overviews people actually see for the queries you care about, and know the moment they change.",
href: "/google-search",
anchor: "SERP API",
art: "serp",
},
{
title: "Brand monitoring",
title: "Community & brand listening",
description:
"Track every mention of your brand, your competitors, and your category across the communities where buyers speak candidly.",
"Track every mention of your brand, your competitors, and your category across the communities where people speak candidly.",
href: "/reddit",
anchor: "Reddit API",
art: "brand",
@ -31,7 +31,7 @@ const USE_CASES: {
{
title: "Social sentiment mining",
description:
"Pull public posts, reels, and full comment threads from any creator or competitor, then score how audiences actually react to launches and campaigns.",
"Pull public posts, reels, and full comment threads from any creator or brand, then score how audiences actually react to launches and campaigns.",
href: "/instagram",
anchor: "Instagram API",
art: "chat",
@ -45,12 +45,12 @@ const USE_CASES: {
art: "leads",
},
{
title: "Market research",
title: "Competitor price monitoring",
description:
"Watch the rankings, ads, and AI answers your market actually sees, and mine audience sentiment at scale.",
href: "/google-search",
anchor: "SERP API",
art: "serp",
"Crawl competitor pricing and product pages on a schedule and get an alert the day something changes, not the quarter after.",
href: "/web-crawl",
anchor: "Web Crawl API",
art: "price",
},
];

View file

@ -145,12 +145,12 @@ const faqData: FAQSection[] = [
{
question: "Do agents and automations cost extra?",
answer:
"No. There is no add-on fee for agents or automations. A scheduled competitor brief or an event-triggered alert draws from the same credit balance: connector items and crawled pages at their per-unit rates, and model usage at provider cost. A workflow that uses free models and no scraping costs nothing.",
"No. There is no add-on fee for agents or automations. A scheduled research brief or an event-triggered alert draws from the same credit balance: connector items and crawled pages at their per-unit rates, and model usage at provider cost. A workflow that uses free models and no scraping costs nothing.",
},
{
question: "What can the agents actually do?",
answer:
"You describe the job in plain English and SurfSense sets up the agent, no code needed. Agents can watch competitor pricing pages, track brand mentions on Reddit and YouTube, monitor Google rankings and Maps reviews, then turn what they find into briefs and alerts, and write results back to Notion, Slack, Linear, and Jira.",
"You describe the job in plain English and SurfSense sets up the agent, no code needed. Agents can watch any page for changes, track mentions on Reddit and YouTube, monitor Google rankings and Maps reviews, then turn what they find into briefs and alerts, and write results back to Notion, Slack, Linear, and Jira.",
},
],
},
@ -363,7 +363,7 @@ function PricingBasic() {
<Pricing
plans={demoPlans}
title="SurfSense Pricing"
description="Give your agents competitive intelligence. Self-host for free, or start with $5 of credit and pay as you go. No subscriptions."
description="Give your agents the live web. Self-host for free, or start with $5 of credit and pay as you go. No subscriptions."
/>
<PricingFAQ />
</>

View file

@ -19,7 +19,7 @@ export function OrganizationJsonLd() {
url: "https://www.surfsense.com",
logo: "https://www.surfsense.com/logo.png",
description:
"SurfSense is an open-source competitive intelligence platform. AI agents monitor competitors, track rankings, and listen to your market through one API or MCP server.",
"SurfSense is an open-source open web research platform. AI agents research the live web with structured data through one API or MCP server.",
sameAs: [
"https://github.com/MODSetter/SurfSense",
"https://discord.gg/ejRNvftDp9",
@ -45,7 +45,7 @@ export function WebSiteJsonLd() {
name: "SurfSense",
url: "https://www.surfsense.com",
description:
"SurfSense is an open-source competitive intelligence platform for AI agents, with live data connectors served through one API or MCP server.",
"SurfSense is an open-source open web research platform for AI agents, with live data connectors served through one API or MCP server.",
potentialAction: {
"@type": "SearchAction",
target: {
@ -76,14 +76,14 @@ export function SoftwareApplicationJsonLd() {
"Free self-hosted from the open-source repo; cloud starts with $5 of free credit, then pay as you go",
},
description:
"SurfSense is an open-source competitive intelligence platform. AI agents monitor competitors, track rankings, and listen to your market with platform-native connectors for Reddit, YouTube, TikTok, Google Maps, Google Search, and the open web, through one API or MCP server.",
"SurfSense is an open-source open web research platform. AI agents research the live web with platform-native connectors for Reddit, YouTube, TikTok, Google Maps, Google Search, and any page on the open web, through one API or MCP server.",
url: "https://www.surfsense.com",
downloadUrl: "https://github.com/MODSetter/SurfSense/releases",
featureList: [
"Platform-native connectors: Reddit, YouTube, TikTok, Google Maps, Google Search, Web Crawl",
"MCP server that exposes every connector as a native agent tool",
"Agent harness with retries, structured output, and credit metering",
"Competitor, brand, and rank monitoring with briefs and alerts",
"Live web research with cited briefs and alerts",
"AI automations and agents (scheduled and event-triggered workflows)",
"AI-powered semantic search across connected tools and documents",
"Knowledge base with file uploads and Google Drive, OneDrive, and Dropbox sync",

View file

@ -51,7 +51,7 @@ curl -X POST "$BASE_URL/api/v1/workspaces/1/scrapers/web/crawl" \
One item per fetched page (in crawl order) with its markdown, metadata (title, description), crawl provenance (depth, referrer), links classified as internal/external/social/email/tel, and page-level contacts. The response also includes a site-wide `contacts` summary that deduplicates every email, phone, and social profile found — `siteWide: true` marks header/footer values (the company's own contacts) versus page-local finds like individual team members.
Contact details often live on about/contact/privacy pages, so crawl with `maxCrawlDepth >= 1` to surface them — useful for lead generation and competitive intelligence.
Contact details often live on about/contact/privacy pages, so crawl with `maxCrawlDepth >= 1` to surface them — useful for lead generation and company research.
Billing is per successfully fetched page.

View file

@ -19,44 +19,44 @@ export interface ChatExampleCategory {
}
export const CHAT_EXAMPLE_CATEGORIES: ChatExampleCategory[] = [
{
id: "research",
label: "Research the Web",
prompts: [
"Research [topic] across the live web and give me a cited brief",
"Map who ranks for [keyword], crawl each result, and compare their claims in one table",
"Pull the Google Maps reviews for [business] and summarize the top complaints",
"Which queries about [topic] trigger an AI Overview, and who gets cited?",
],
},
{
id: "listen",
label: "Community Listening",
prompts: [
"Find 20 Reddit posts where people ask for an alternative to [product]",
"Analyze the comments on [channel]'s last 10 videos and cluster the complaints",
"What is Reddit saying about [topic] this week?",
"Pull the top TikTok videos for [hashtag] and summarize the trend",
],
},
{
id: "monitor",
label: "Monitor Competitors",
prompts: [
"Extract every plan, price, and limit from [competitor]'s pricing page",
"Crawl [competitor]'s changelog and brief me on what they shipped this month",
"Track who ranks and runs ads for [keyword] in the US",
"Which of our target keywords trigger an AI Overview, and who gets cited?",
],
},
{
id: "listen",
label: "Market Listening",
prompts: [
"Find 20 Reddit posts where people ask for an alternative to [product]",
"Analyze the comments on [channel]'s last 10 videos and cluster the complaints",
"Pull the Google Maps reviews for [business] and summarize the top complaints",
"Find people actively looking to switch away from [competitor] this month",
],
},
{
id: "workflows",
label: "Multi-Connector",
prompts: [
"Measure the reaction to [competitor]'s launch across search, Reddit, and YouTube",
"Find the top-rated [category] businesses in [city], crawl their sites, and build a lead list with contacts",
"Map who ranks for [keyword], crawl each result, and compare their pricing in one table",
"Build a 360 on [competitor]: site changes, rank movements, Reddit sentiment, and YouTube reaction",
],
},
{
id: "automate",
label: "Automate",
prompts: [
"Re-check [competitor]'s pricing page daily and alert me on any change",
"Every Monday, crawl our competitors' changelogs and send me a brief",
"Watch [url] daily and alert me on any change",
"Track our brand mentions on Reddit daily and tag buying intent",
"Send me a weekly report on [keyword] rankings and AI Overview citations",
"Every Monday, crawl [site]'s changelog and send me a brief",
],
},
{

View file

@ -21,9 +21,9 @@ export const googleMaps: ConnectorPageContent = {
"google maps scraper python",
],
h1: "Google Maps Scraper API for Lead Generation and Local Market Intelligence",
h1: "Google Maps Scraper API for Lead Generation and Local Business Research",
heroLede:
"The SurfSense Google Maps API turns Maps into a B2B lead engine. Extract business names, categories, phones, websites, ratings, and reviews at scale, then point your AI agents at any territory or category to build lead lists and map a local market in minutes.",
"The SurfSense Google Maps API turns Maps into a B2B lead engine. Extract business names, categories, phones, websites, ratings, and reviews at scale, then point your AI agents at any territory or category to build lead lists and map any local category in minutes.",
transcript: {
prompt: "Find every dentist in Austin without a website",

View file

@ -7,9 +7,9 @@ export const googleSearch: ConnectorPageContent = {
cardTitle: "SERP API",
icon: IconBrandGoogle,
metaTitle: "SERP API for Rank Tracking and Competitor Intel | SurfSense",
metaTitle: "SERP API for Rank Tracking and AI Overview Monitoring | SurfSense",
metaDescription:
"Track rankings, competitor ads, and Google AI Overviews with the SurfSense SERP API. Scrape Google Search results as structured JSON via API or MCP. Start free.",
"Track rankings, ads, and Google AI Overviews with the SurfSense SERP API. Scrape Google Search results as structured JSON via API or MCP. Start free.",
keywords: [
"serp api",
"serp api alternative",
@ -25,9 +25,9 @@ export const googleSearch: ConnectorPageContent = {
"serp analysis",
],
h1: "SERP API for Rank Tracking and Competitor SERP Intelligence",
h1: "SERP API for Rank Tracking and AI Overview Monitoring",
heroLede:
"The SurfSense SERP API scrapes Google Search results as structured JSON: organic rankings, paid ads, AI Overviews, and People Also Ask. Point your AI agents at the queries that matter to your market and know the moment a rank moves, an ad appears, or an AI answer starts citing a competitor.",
"The SurfSense SERP API scrapes Google Search results as structured JSON: organic rankings, paid ads, AI Overviews, and People Also Ask. Point your AI agents at the queries you care about and know the moment a rank moves, an ad appears, or an AI answer changes its sources.",
transcript: {
prompt: "Track who's ranking and running ads for 'competitor pricing' in the US",
@ -78,7 +78,7 @@ export const googleSearch: ConnectorPageContent = {
{
label: "Related searches",
description:
"Suggested and related queries, to map how your market actually phrases its search.",
"Suggested and related queries, to map how people actually phrase the search.",
},
{
label: "SERP metadata",

View file

@ -8,7 +8,7 @@ export const reddit: ConnectorPageContent = {
metaTitle: "Reddit Scraper API for Brand Monitoring | SurfSense",
metaDescription:
"Track every brand and competitor mention across Reddit with the SurfSense Reddit Scraper API. No official API rate limits or pricing, plus a free tier. Start now.",
"Track every mention of any brand, product, or topic across Reddit with the SurfSense Reddit Scraper API. No official API rate limits or pricing, plus a free tier. Start now.",
keywords: [
"reddit scraper",
"reddit scraper api",
@ -24,9 +24,9 @@ export const reddit: ConnectorPageContent = {
"brand monitoring tool",
],
h1: "Reddit Scraper API for Brand Monitoring and Market Research",
h1: "Reddit Scraper API for Brand Monitoring and Community Research",
heroLede:
"The SurfSense Reddit API extracts posts, comments, subreddits, and user data without the official Reddit API's rate limits or per-call pricing. Give your AI agents a live feed of what your market says about your brand, your competitors, and your category, so you hear it first.",
"The SurfSense Reddit API extracts posts, comments, subreddits, and user data without the official Reddit API's rate limits or per-call pricing. Give your AI agents a live feed of what Reddit actually says about any brand, product, or topic, so you hear it first.",
transcript: {
prompt: "See what r/webscraping is saying about our competitor this week",
@ -97,7 +97,7 @@ export const reddit: ConnectorPageContent = {
{
title: "Reddit sentiment analysis",
description:
"Pull comment trees at depth and score them for sentiment, so you can measure how a launch, a price change, or a competitor's move actually landed with your market.",
"Pull comment trees at depth and score them for sentiment, so you can measure how a launch, a price change, or an announcement actually landed with the community.",
},
{
title: "Community research for go-to-market",

View file

@ -32,7 +32,7 @@ export const tiktok: ConnectorPageContent = {
h1: "TikTok Scraper API for Videos, Comments, and Trend Research",
heroLede:
"The SurfSense TikTok scraper extracts public videos by hashtag, creator profile, or URL, plus comment threads and trending feeds, without TikTok's approval-gated Research API. Give your AI agents a live feed of what your market watches and shares, so you catch a trend while it is still rising.",
"The SurfSense TikTok scraper extracts public videos by hashtag, creator profile, or URL, plus comment threads and trending feeds, without TikTok's approval-gated Research API. Give your AI agents a live feed of what people watch and share, so you catch a trend while it is still rising.",
transcript: {
prompt: "Find trending TikToks about meal prep this week",

View file

@ -9,7 +9,7 @@ export const webCrawl: ConnectorPageContent = {
metaTitle: "Web Scraping and Crawl API for AI Agents | SurfSense",
metaDescription:
"Point your agents at any URL and get clean, LLM-ready markdown, links, and contacts back. The SurfSense Web Crawl API for deep research and competitor monitoring. Start free.",
"Point your agents at any URL and get clean, LLM-ready markdown, links, and contacts back. The SurfSense Web Crawl API for deep research and site monitoring. Start free.",
keywords: [
"web crawl api",
"web scraping api",
@ -20,7 +20,7 @@ export const webCrawl: ConnectorPageContent = {
"agentic web scraping",
"deep research api",
"web scraping mcp",
"competitor price monitoring",
"website change monitoring",
"crawl website for ai",
"website to markdown",
"web data for ai",

View file

@ -25,7 +25,7 @@ export const youtube: ConnectorPageContent = {
h1: "YouTube Scraper API for Audience Sentiment and Content Intelligence",
heroLede:
"The SurfSense YouTube API pulls videos, channel stats, comments, and transcripts at scale, without YouTube Data API quotas. Feed your AI agents every comment and transcript that matters to your market, so you know what people actually think about your product and your competitors' content.",
"The SurfSense YouTube API pulls videos, channel stats, comments, and transcripts at scale, without YouTube Data API quotas. Feed your AI agents every comment and transcript that matters to your research, so you know what audiences actually think about any product, topic, or channel.",
transcript: {
prompt: "Summarize how people reacted in the comments on our launch video",
@ -88,9 +88,9 @@ export const youtube: ConnectorPageContent = {
"Read every comment on your launch video or a competitor's ad, not a sample. Score product feedback and ad reaction so your team knows what actually resonated with the audience.",
},
{
title: "Competitor channel analysis",
title: "Channel analysis",
description:
"Pull a rival channel's full catalog with views, likes, and cadence to see which content wins in your niche, then brief an agent to spot the patterns you should copy.",
"Pull any channel's full catalog with views, likes, and cadence to see which content wins in a niche, then brief an agent to spot the patterns worth copying.",
},
{
title: "Influencer vetting",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 526 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 526 KiB

Before After
Before After