diff --git a/docker/scripts/install.ps1 b/docker/scripts/install.ps1 index 144944fe7..7e23204cf 100644 --- a/docker/scripts/install.ps1 +++ b/docker/scripts/install.ps1 @@ -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." } diff --git a/docker/scripts/install.sh b/docker/scripts/install.sh index 03f38ce38..29697b8fc 100644 --- a/docker/scripts/install.sh +++ b/docker/scripts/install.sh @@ -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." } diff --git a/surfsense_backend/app/agents/chat/anonymous_chat/agent.py b/surfsense_backend/app/agents/chat/anonymous_chat/agent.py index 13cb33adb..11e898a32 100644 --- a/surfsense_backend/app/agents/chat/anonymous_chat/agent.py +++ b/surfsense_backend/app/agents/chat/anonymous_chat/agent.py @@ -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" diff --git a/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/identity/private.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/identity/private.md index 0c7e4071c..4643cb843 100644 --- a/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/identity/private.md +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/identity/private.md @@ -1,12 +1,12 @@ 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 diff --git a/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/identity/team.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/identity/team.md index 6c1076a89..81e5111d5 100644 --- a/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/identity/team.md +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/identity/team.md @@ -1,12 +1,12 @@ 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 diff --git a/surfsense_backend/app/utils/crawl/contacts.py b/surfsense_backend/app/utils/crawl/contacts.py index 872db33d9..f7e379042 100644 --- a/surfsense_backend/app/utils/crawl/contacts.py +++ b/surfsense_backend/app/utils/crawl/contacts.py @@ -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 diff --git a/surfsense_web/app/(home)/connectors/page.tsx b/surfsense_web/app/(home)/connectors/page.tsx index af6838337..706c555b4 100644 --- a/surfsense_web/app/(home)/connectors/page.tsx +++ b/surfsense_web/app/(home)/connectors/page.tsx @@ -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() {

- Connectors for every platform your market uses + Connectors for every platform where answers live

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{" "} - competitive intelligence platform + open web research platform .

diff --git a/surfsense_web/app/(home)/external-mcp-connectors/page.tsx b/surfsense_web/app/(home)/external-mcp-connectors/page.tsx index f90a4ef99..021b1b0e0 100644 --- a/surfsense_web/app/(home)/external-mcp-connectors/page.tsx +++ b/surfsense_web/app/(home)/external-mcp-connectors/page.tsx @@ -253,7 +253,7 @@ export default function ExternalMcpConnectorsPage() {

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.

@@ -330,7 +330,7 @@ export default function ExternalMcpConnectorsPage() {

External MCP connectors are part of the SurfSense{" "} - competitive intelligence platform + open web research platform . Start free, no credit card required.

diff --git a/surfsense_web/app/(home)/mcp-server/page.tsx b/surfsense_web/app/(home)/mcp-server/page.tsx index ce4caf992..b2cc01743 100644 --- a/surfsense_web/app/(home)/mcp-server/page.tsx +++ b/surfsense_web/app/(home)/mcp-server/page.tsx @@ -369,12 +369,12 @@ export default function McpServerPage() {

- Put live market data inside your agents + Put live web data inside your agents

The MCP server is part of the SurfSense{" "} - competitive intelligence platform + open web research platform . Start with $5 of free credit, no credit card required.

diff --git a/surfsense_web/app/(home)/pricing/page.tsx b/surfsense_web/app/(home)/pricing/page.tsx index 666cb20d4..b50dde55a 100644 --- a/surfsense_web/app/(home)/pricing/page.tsx +++ b/surfsense_web/app/(home)/pricing/page.tsx @@ -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, diff --git a/surfsense_web/app/dashboard/[workspace_id]/automations/components/builder/basics-section.tsx b/surfsense_web/app/dashboard/[workspace_id]/automations/components/builder/basics-section.tsx index fdc9f4526..44d246482 100644 --- a/surfsense_web/app/dashboard/[workspace_id]/automations/components/builder/basics-section.tsx +++ b/surfsense_web/app/dashboard/[workspace_id]/automations/components/builder/basics-section.tsx @@ -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 })} /> diff --git a/surfsense_web/app/layout.tsx b/surfsense_web/app/layout.tsx index fff38e83b..e464391ea 100644 --- a/surfsense_web/app/layout.tsx +++ b/surfsense_web/app/layout.tsx @@ -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", }, ], }, diff --git a/surfsense_web/components/assistant-ui/thread.tsx b/surfsense_web/components/assistant-ui/thread.tsx index c51bea165..145ac72c5 100644 --- a/surfsense_web/components/assistant-ui/thread.tsx +++ b/surfsense_web/components/assistant-ui/thread.tsx @@ -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; diff --git a/surfsense_web/components/connectors-marketing/connector-page.tsx b/surfsense_web/components/connectors-marketing/connector-page.tsx index 6e92585ab..bccea04fb 100644 --- a/surfsense_web/components/connectors-marketing/connector-page.tsx +++ b/surfsense_web/components/connectors-marketing/connector-page.tsx @@ -277,7 +277,7 @@ export function ConnectorPage({ content }: { content: ConnectorPageContent }) {

The {content.name} connector is one of many in the SurfSense{" "} - competitive intelligence platform + open web research platform . Start free, no credit card required.

diff --git a/surfsense_web/components/homepage/connector-grid.tsx b/surfsense_web/components/homepage/connector-grid.tsx index 00f4dd38b..be3956358 100644 --- a/surfsense_web/components/homepage/connector-grid.tsx +++ b/surfsense_web/components/homepage/connector-grid.tsx @@ -15,7 +15,7 @@ export function ConnectorGrid() {

- Connectors for every platform your market uses + Connectors for every platform where answers live

{connectors.length} connectors and growing diff --git a/surfsense_web/components/homepage/hero-chat-demo.tsx b/surfsense_web/components/homepage/hero-chat-demo.tsx index a4a5ebc2a..3e7d6c23e 100644 --- a/surfsense_web/components/homepage/hero-chat-demo.tsx +++ b/surfsense_web/components/homepage/hero-chat-demo.tsx @@ -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() { diff --git a/surfsense_web/components/homepage/hero-section.tsx b/surfsense_web/components/homepage/hero-section.tsx index 6e31891bd..5c138a2d3 100644 --- a/surfsense_web/components/homepage/hero-section.tsx +++ b/surfsense_web/components/homepage/hero-section.tsx @@ -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" )} > - NotebookLM for competitive intelligence research. + NotebookLM for open web research.
@@ -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.

diff --git a/surfsense_web/components/homepage/home-faq.tsx b/surfsense_web/components/homepage/home-faq.tsx index 85ec9be12..6d6404b43 100644 --- a/surfsense_web/components/homepage/home-faq.tsx +++ b/surfsense_web/components/homepage/home-faq.tsx @@ -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.", }, ]; diff --git a/surfsense_web/components/homepage/persona-paths.tsx b/surfsense_web/components/homepage/persona-paths.tsx index 50eadba0f..0f2be1497 100644 --- a/surfsense_web/components/homepage/persona-paths.tsx +++ b/surfsense_web/components/homepage/persona-paths.tsx @@ -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" }, diff --git a/surfsense_web/components/homepage/use-cases.tsx b/surfsense_web/components/homepage/use-cases.tsx index 6163f7481..9c8d8ef53 100644 --- a/surfsense_web/components/homepage/use-cases.tsx +++ b/surfsense_web/components/homepage/use-cases.tsx @@ -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", }, ]; diff --git a/surfsense_web/components/pricing/pricing-section.tsx b/surfsense_web/components/pricing/pricing-section.tsx index 1af296e57..e29ef22d3 100644 --- a/surfsense_web/components/pricing/pricing-section.tsx +++ b/surfsense_web/components/pricing/pricing-section.tsx @@ -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() { diff --git a/surfsense_web/components/seo/json-ld.tsx b/surfsense_web/components/seo/json-ld.tsx index 063f6a0c0..1f9f4419c 100644 --- a/surfsense_web/components/seo/json-ld.tsx +++ b/surfsense_web/components/seo/json-ld.tsx @@ -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", diff --git a/surfsense_web/content/docs/connectors/native/web-crawl.mdx b/surfsense_web/content/docs/connectors/native/web-crawl.mdx index 52bf5dfe1..32ae3b4b6 100644 --- a/surfsense_web/content/docs/connectors/native/web-crawl.mdx +++ b/surfsense_web/content/docs/connectors/native/web-crawl.mdx @@ -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. diff --git a/surfsense_web/lib/chat/example-prompts.ts b/surfsense_web/lib/chat/example-prompts.ts index 753816dfb..fed530688 100644 --- a/surfsense_web/lib/chat/example-prompts.ts +++ b/surfsense_web/lib/chat/example-prompts.ts @@ -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", ], }, { diff --git a/surfsense_web/lib/connectors-marketing/google-maps.tsx b/surfsense_web/lib/connectors-marketing/google-maps.tsx index 03b1d247b..bbc5f7f5b 100644 --- a/surfsense_web/lib/connectors-marketing/google-maps.tsx +++ b/surfsense_web/lib/connectors-marketing/google-maps.tsx @@ -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", diff --git a/surfsense_web/lib/connectors-marketing/google-search.tsx b/surfsense_web/lib/connectors-marketing/google-search.tsx index 7f436f9b0..97b998ae3 100644 --- a/surfsense_web/lib/connectors-marketing/google-search.tsx +++ b/surfsense_web/lib/connectors-marketing/google-search.tsx @@ -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", diff --git a/surfsense_web/lib/connectors-marketing/reddit.tsx b/surfsense_web/lib/connectors-marketing/reddit.tsx index 2a930afe9..b79462623 100644 --- a/surfsense_web/lib/connectors-marketing/reddit.tsx +++ b/surfsense_web/lib/connectors-marketing/reddit.tsx @@ -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", diff --git a/surfsense_web/lib/connectors-marketing/tiktok.tsx b/surfsense_web/lib/connectors-marketing/tiktok.tsx index 6063fd1ae..77f395a93 100644 --- a/surfsense_web/lib/connectors-marketing/tiktok.tsx +++ b/surfsense_web/lib/connectors-marketing/tiktok.tsx @@ -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", diff --git a/surfsense_web/lib/connectors-marketing/web-crawl.tsx b/surfsense_web/lib/connectors-marketing/web-crawl.tsx index 1cb4d5dac..305698350 100644 --- a/surfsense_web/lib/connectors-marketing/web-crawl.tsx +++ b/surfsense_web/lib/connectors-marketing/web-crawl.tsx @@ -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", diff --git a/surfsense_web/lib/connectors-marketing/youtube.tsx b/surfsense_web/lib/connectors-marketing/youtube.tsx index fceaee940..0abfc8384 100644 --- a/surfsense_web/lib/connectors-marketing/youtube.tsx +++ b/surfsense_web/lib/connectors-marketing/youtube.tsx @@ -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", diff --git a/surfsense_web/public/og-image-twitter.png b/surfsense_web/public/og-image-twitter.png index 0de947ab5..922d7fffb 100644 Binary files a/surfsense_web/public/og-image-twitter.png and b/surfsense_web/public/og-image-twitter.png differ diff --git a/surfsense_web/public/og-image.png b/surfsense_web/public/og-image.png index 0de947ab5..922d7fffb 100644 Binary files a/surfsense_web/public/og-image.png and b/surfsense_web/public/og-image.png differ