Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
176 commits
Select commit Hold shift + click to select a range
fb42356
fix: wire video_presentation fan-in as a barrier so generate_slide_sc…
mvanhorn Jun 24, 2026
aa7388f
Merge pull request #1563 from mvanhorn/fix/1531-video-presentation-fa…
MODSetter Jul 4, 2026
f44cb8a
fix: dispatch periodic BookStack indexing from the scheduler task_map
pelazas Jul 4, 2026
6fafedc
Support separate embedding base URL
dpersek Jul 6, 2026
b477d33
Merge commit 'fa7075fde64ce6024e25317db39d0a2ed582769b' into dev
MODSetter Jul 7, 2026
97f6497
feat(mcp): add per-request API key identity auth slice
CREDO23 Jul 7, 2026
80e032e
feat(mcp): assemble streamable-http transport app
CREDO23 Jul 7, 2026
8a54e02
refactor(mcp): resolve API key per request in client
CREDO23 Jul 7, 2026
3b4678a
feat(mcp): make api_key optional, add http host/port config
CREDO23 Jul 7, 2026
93bd022
feat(mcp): serve stateless streamable-http with stdio dispatch
CREDO23 Jul 7, 2026
44d0f28
fix(mcp): scope active workspace per caller identity
CREDO23 Jul 7, 2026
fa7d5f8
test(mcp): cover per-request auth and workspace isolation
CREDO23 Jul 7, 2026
0d40336
build(mcp): declare starlette and uvicorn dependencies
CREDO23 Jul 7, 2026
a7215c0
docs(mcp): tighten comments to intent-only
CREDO23 Jul 7, 2026
2acc142
refactor(mcp): split scraper and knowledge-base features into SRP mod…
CREDO23 Jul 7, 2026
2b9daea
feat(mcp): add health endpoint with public-path auth exemption
CREDO23 Jul 7, 2026
9aef0c2
docs(mcp): document hosted /mcp remote endpoint
CREDO23 Jul 7, 2026
1c5b085
feat(web): add hosted and self-host MCP client configs
CREDO23 Jul 7, 2026
41edac7
Merge remote-tracking branch 'upstream/dev' into feature/1354-embeddi…
dpersek Jul 7, 2026
3c027b9
Merge remote-tracking branch 'upstream/main' into dev
CREDO23 Jul 8, 2026
ef3f9f2
feat(tiktok): item output schemas
CREDO23 Jul 8, 2026
b2d387f
feat(tiktok): URL target resolver
CREDO23 Jul 8, 2026
8840fd2
feat(tiktok): rehydration blob extractor
CREDO23 Jul 8, 2026
0bbcf99
feat(tiktok): author normalizer
CREDO23 Jul 8, 2026
ef66063
feat(tiktok): video normalizer and parser tests
CREDO23 Jul 8, 2026
5688ab0
feat(tiktok): scrape input schema
CREDO23 Jul 8, 2026
44b3e64
feat(tiktok): rotate-on-block fetch session
CREDO23 Jul 8, 2026
daa0856
feat(tiktok): blob-first orchestrator + video flow
CREDO23 Jul 8, 2026
ad8b734
feat(tiktok): browser-driven signed listings
CREDO23 Jul 8, 2026
5a326f3
fix(tiktok): warm browser listing + drop ctx-var-in-generator
CREDO23 Jul 8, 2026
ea95a05
test(tiktok): live e2e smoke script
CREDO23 Jul 8, 2026
9dd39fa
test(tiktok): pin live fixtures, trim listing debug scaffolding
CREDO23 Jul 8, 2026
2943d8b
feat(tiktok): tiktok.scrape capability + billing wire-up
CREDO23 Jul 8, 2026
ed1c3a1
feat(tiktok): expose tiktok.scrape on MCP, chat subagent, playground
CREDO23 Jul 8, 2026
ea6befd
docs(tiktok): native connector page + nav card
CREDO23 Jul 8, 2026
5f9472b
feat(tiktok): advertise tiktok across agent prompts, MCP instructions…
CREDO23 Jul 8, 2026
f731d37
feat(tiktok): add TikTok SEO landing page and site-wide marketing parity
CREDO23 Jul 8, 2026
ba375ea
feat(tiktok): emit graceful ErrorItem for blocked/empty listings
CREDO23 Jul 8, 2026
b8155c6
Merge commit '1ae927a7db6a21fd32f69429f550f592b6160970' into dev
MODSetter Jul 8, 2026
d2ed0bb
Merge pull request #1570 from pelazas/fix/scheduler-task-map-bookstack
MODSetter Jul 8, 2026
3eb485f
Merge pull request #1575 from SyntaxSawdust/feature/1354-embedding-ba…
MODSetter Jul 9, 2026
3bd864e
feat(env): add Instagram scraping configuration parameters to .env.ex…
AnishSarkar22 Jul 9, 2026
8486a4f
feat(constants): add Instagram to SUBAGENT_TO_REQUIRED_CONNECTOR_MAP …
AnishSarkar22 Jul 9, 2026
f204db7
feat(billing): add INSTAGRAM_ITEM and INSTAGRAM_COMMENT units
AnishSarkar22 Jul 9, 2026
43660ee
feat(billing): map Instagram units to rate keys and display nouns
AnishSarkar22 Jul 9, 2026
51c2dfd
feat(config): add Instagram per-item and per-comment scrape rates
AnishSarkar22 Jul 9, 2026
842a0e6
feat(instagram): add platform input/output schemas
AnishSarkar22 Jul 9, 2026
8dc8ad6
feat(instagram): add URL classifier and normalizer
AnishSarkar22 Jul 9, 2026
2d29001
feat(instagram): add web-JSON parsers
AnishSarkar22 Jul 9, 2026
b1eff47
feat(instagram): add proxy-aware fetch with warm-up and rotate-on-block
AnishSarkar22 Jul 9, 2026
6270250
feat(instagram): add fan-out orchestrator with deterministic early-st…
AnishSarkar22 Jul 9, 2026
eccc142
docs(instagram): add platform scraper README
AnishSarkar22 Jul 9, 2026
ff55537
feat(instagram): add scrape capability verb
AnishSarkar22 Jul 9, 2026
38a26b1
feat(instagram): add comments capability verb
AnishSarkar22 Jul 9, 2026
7ea474b
feat(instagram): add details capability verb
AnishSarkar22 Jul 9, 2026
929efe8
feat(instagram): register instagram.* capability namespace
AnishSarkar22 Jul 9, 2026
c5e3fd4
feat(mcp): add Instagram scrape/comments/details tools
AnishSarkar22 Jul 9, 2026
98eab8c
feat(chat): add Instagram builtin subagent
AnishSarkar22 Jul 9, 2026
9da1360
test(instagram): add platform-layer unit tests
AnishSarkar22 Jul 9, 2026
2e66e71
test(instagram): add capability unit tests
AnishSarkar22 Jul 9, 2026
458d223
test(billing): cover Instagram item and comment billing
AnishSarkar22 Jul 9, 2026
e151346
test(chat): include Instagram in subagent composition test
AnishSarkar22 Jul 9, 2026
7309ca5
test(instagram): add manual e2e scraper script
AnishSarkar22 Jul 9, 2026
d00030d
feat(web): add Instagram playground platform and brand icon
AnishSarkar22 Jul 9, 2026
fa2ac40
feat(web): add Instagram connector marketing page
AnishSarkar22 Jul 9, 2026
4e86710
feat(web): cross-link Instagram from sibling connectors
AnishSarkar22 Jul 9, 2026
f5aad48
docs(web): document Instagram native connector
AnishSarkar22 Jul 9, 2026
ba83d16
docs(web): add Instagram to MCP server tool docs
AnishSarkar22 Jul 9, 2026
d800ca3
feat(instagram): handle soft login wall in fetch logic
AnishSarkar22 Jul 9, 2026
6384409
test(instagram): enhance fetch resilience tests for login redirects
AnishSarkar22 Jul 9, 2026
5551ebb
chore(instagram): modify instagram svg
AnishSarkar22 Jul 9, 2026
e8f8eea
fix(instagram): improve error handling for Instagram access blocks in…
AnishSarkar22 Jul 9, 2026
4af0b9d
test(instagram): add regression test for InstagramAccessBlockedError …
AnishSarkar22 Jul 9, 2026
be26f00
refactor(instagram): enhance fetch logic for login wall detection
AnishSarkar22 Jul 9, 2026
a0b388a
refactor(instagram): enhance batch processing for access block handling
AnishSarkar22 Jul 9, 2026
0309e1d
refactor(instagram): streamline login redirect handling in tests
AnishSarkar22 Jul 9, 2026
f66ab73
refactor(instagram): improve handling of login-gated endpoints in fet…
AnishSarkar22 Jul 9, 2026
82f1d0b
refactor(instagram): improve anonymous scraping logic and error messa…
AnishSarkar22 Jul 9, 2026
2c251f9
test(instagram): add tests for anonymous profile and hashtag discovery
AnishSarkar22 Jul 9, 2026
6652efd
feat(tiktok): return profile metadata even when video listing is gated
CREDO23 Jul 9, 2026
192b6dc
feat(tiktok): add tiktok.user_search verb for account discovery
CREDO23 Jul 9, 2026
7723b5b
feat(tiktok): add tiktok.comments verb for public comment scraping
CREDO23 Jul 9, 2026
67b5472
feat(tiktok): add tiktok.trending verb for the Explore feed
CREDO23 Jul 9, 2026
6b15d61
feat(tiktok): surface comments, user_search, trending across all prod…
CREDO23 Jul 9, 2026
bcfc3a5
test(capabilities): expect export_run in the agent tool manifest
CREDO23 Jul 9, 2026
867e940
Merge upstream/dev into feature/tiktok-scraper
CREDO23 Jul 9, 2026
2a6715e
feat(homepage): update hero section description and add Instagram use…
AnishSarkar22 Jul 10, 2026
abb2ea2
feat(auth-utils): add Instagram to public route prefixes for monitoring
AnishSarkar22 Jul 10, 2026
d3d8f10
feat(i18n): add Korean (ko) translation
moduvoice Jul 10, 2026
c679f2a
fix(tiktok): fetch profile video lists headful + dismiss login modal
CREDO23 Jul 10, 2026
4496631
docs(tiktok): update e2e stage 2 notes for headful profile feed
CREDO23 Jul 10, 2026
6784503
feat(crawl): add CRAWL_HEADED_XVFB_ENABLED flag
CREDO23 Jul 10, 2026
a551dd7
feat(docker): start Xvfb when CRAWL_HEADED_XVFB_ENABLED is set
CREDO23 Jul 10, 2026
6400dc5
fix(tiktok): gate headful profile feed on CRAWL_HEADED_XVFB_ENABLED
CREDO23 Jul 10, 2026
d3a6e2c
docs(docker): note entrypoint wires xvfb at runtime
CREDO23 Jul 10, 2026
c29b7f4
docs(env): document CRAWL_HEADED_XVFB_ENABLED
CREDO23 Jul 10, 2026
4935799
docs(tiktok): note stage 2 profile feed is headful only when flag is set
CREDO23 Jul 10, 2026
15fb50c
feat(tiktok): add TIKTOK_LISTING_MAX_ATTEMPTS knob
CREDO23 Jul 10, 2026
c8fcf87
fix(tiktok): retry empty item_list captures on a fresh exit IP
CREDO23 Jul 10, 2026
8f825b7
test(tiktok): cover item_list retry-on-empty loop
CREDO23 Jul 10, 2026
97e250b
docs(env): document TIKTOK_LISTING_MAX_ATTEMPTS
CREDO23 Jul 10, 2026
01bc3f8
docs(config): trim narration from xvfb + listing-retry comments
CREDO23 Jul 10, 2026
f74a73e
docs(tiktok): trim fetch_item_list retry docstring to intent
CREDO23 Jul 10, 2026
9793751
docs(tiktok): trim stage 2 comment to the why
CREDO23 Jul 10, 2026
cd82f86
fix(tiktok-agent): stop steering the subagent to keyword search for v…
CREDO23 Jul 10, 2026
1911b78
fix(tiktok-agent): drop keyword search from the routing description's…
CREDO23 Jul 10, 2026
6a0ff14
fix(tiktok-mcp): flag that search_queries returns no videos in the sc…
CREDO23 Jul 10, 2026
9035022
fix(tiktok-marketing): stop advertising keyword search as a video source
CREDO23 Jul 10, 2026
8afa4c6
refactor(instagram): remove unused comments capability
AnishSarkar22 Jul 10, 2026
de1990f
refactor(instagram): simplify scrape and details capability schemas
AnishSarkar22 Jul 10, 2026
4813dc9
refactor(instagram): streamline scraper, fetch, and parsing pipeline
AnishSarkar22 Jul 10, 2026
36bb4a1
docs(instagram): update platform scraper README
AnishSarkar22 Jul 10, 2026
8fc86b7
refactor(mcp): align Instagram scraper tool with new pipeline
AnishSarkar22 Jul 10, 2026
9e9dd8a
feat(subagent): update Instagram subagent prompts and tools
AnishSarkar22 Jul 10, 2026
69a8433
docs(web): refresh Instagram connector and MCP docs
AnishSarkar22 Jul 10, 2026
42d03fd
feat(web): update Instagram marketing and playground catalog
AnishSarkar22 Jul 10, 2026
82a6304
test(instagram): update capability tests for schema changes
AnishSarkar22 Jul 10, 2026
ba70ae1
test(instagram): update platform tests and add discovery fixtures
AnishSarkar22 Jul 10, 2026
949cc1b
chore(scripts): update Instagram e2e scraper script
AnishSarkar22 Jul 10, 2026
4bd3ec2
delete(instagram): remove obsolete post fixture for Instagram tests
AnishSarkar22 Jul 10, 2026
467f51f
chore(.gitignore): add Instagram test fixtures for unit tests
AnishSarkar22 Jul 10, 2026
d41ccb7
feat(instagram): enhance Open Graph parsing for anonymous posts
AnishSarkar22 Jul 10, 2026
457be18
feat(instagram): improve parsing of Instagram media IDs and mentions
AnishSarkar22 Jul 10, 2026
5cac661
refactor(instagram): update platform schemas and scraper for tagged m…
AnishSarkar22 Jul 10, 2026
27d22a9
refactor(instagram): drop mentions from scrape capability
AnishSarkar22 Jul 10, 2026
ca7d23d
refactor(mcp): align Instagram scraper tool with capability changes
AnishSarkar22 Jul 10, 2026
c001f4b
feat(subagent): update Instagram subagent system prompt
AnishSarkar22 Jul 10, 2026
b75ab81
docs(web): refresh Instagram connector docs
AnishSarkar22 Jul 10, 2026
3e8f311
feat(web): update Instagram marketing copy
AnishSarkar22 Jul 10, 2026
b1fe739
docs(instagram): update platform scraper README
AnishSarkar22 Jul 10, 2026
69bf748
chore(.gitignore): ignore Instagram tagged test fixture
AnishSarkar22 Jul 10, 2026
cb4adab
feat(instagram): extract PolarisMedia relay JSON with carousel, tags,…
AnishSarkar22 Jul 10, 2026
452fe30
refactor(instagram): drop login-walled comment fields and note search…
AnishSarkar22 Jul 10, 2026
4bc3d43
refactor(instagram): remove unused share-link redirect resolver
AnishSarkar22 Jul 10, 2026
d3c65a3
refactor(instagram): drop unused slug field and mark share links unsu…
AnishSarkar22 Jul 10, 2026
75c3add
test(instagram): cover PolarisMedia relay parsing and enriched media …
AnishSarkar22 Jul 10, 2026
819486a
docs(instagram): document PolarisMedia extraction and richer media fi…
AnishSarkar22 Jul 10, 2026
42f9f35
docs(web): document new media fields and search_type aliasing
AnishSarkar22 Jul 10, 2026
ec3f47a
feat(web): surface carousel, tagged users, and location in connector …
AnishSarkar22 Jul 10, 2026
ff695fa
Merge pull request #1589 from CREDO23/feature/tiktok-scraper
MODSetter Jul 10, 2026
e38ca19
Merge remote-tracking branch 'upstream/dev' into feat/instagram-scraper
AnishSarkar22 Jul 10, 2026
cb25672
chore: Enhance SurfSense MCP server documentation and toolset by addi…
AnishSarkar22 Jul 10, 2026
b341b0a
Merge pull request #1593 from AnishSarkar22/feat/instagram-scraper
MODSetter Jul 11, 2026
e324135
Merge pull request #1592 from moduvoice/feat/ko-i18n-translation
MODSetter Jul 11, 2026
6e0b851
fix: correct invalid placeholder values in backed .env.example
Benebo7 Jul 11, 2026
a6c6b4b
docs: Improve contributor Docker setup guide and fix broken link
Benebo7 Jul 11, 2026
a172e9c
Add raw OpenAI-compatible provider without /v1 normalization
Jul 12, 2026
2ff7ea4
feat: add Requesty as a model provider
Thibaultjaigu Jul 13, 2026
8ee9eda
Merge pull request #1595 from Benebo7/docs/dev-docker-setup-guide
MODSetter Jul 13, 2026
d1fa930
Merge pull request #1597 from zzh-github/feature/openai-compatible-raw
MODSetter Jul 13, 2026
d3da875
Merge pull request #1599 from Thibaultjaigu/feat/requesty-provider
MODSetter Jul 13, 2026
0d66335
Update metadata and hero section text to reflect rebranding of SurfSe…
MODSetter Jul 13, 2026
b5cefd2
feat(chat): add module-level chat stream store for resumable streaming
CREDO23 Jul 13, 2026
0fb577b
feat(chat): add useChatStream hook over the stream store
CREDO23 Jul 13, 2026
9984a88
feat(chat): extract shared stream-engine helpers
CREDO23 Jul 13, 2026
204b3aa
feat(chat): add stream engine driving turns into the store
CREDO23 Jul 13, 2026
5c3aa72
feat(chat): add ActiveChatStreamRunner to persist streams across nav
CREDO23 Jul 13, 2026
5e453ce
feat(chat): mount ActiveChatStreamRunner in the workspace shell
CREDO23 Jul 13, 2026
768bc8c
refactor(chat): consume stream store and delegate turns to the engine
CREDO23 Jul 13, 2026
9879306
docs(chat): tighten ActiveChatStreamRunner comment to intent
CREDO23 Jul 13, 2026
a44c67d
docs(chat): tighten engine comments to intent
CREDO23 Jul 13, 2026
f0cd20b
feat(chat): add showMessageTimestamps preference atom (localStorage, …
CREDO23 Jul 13, 2026
f4870ad
feat(chat): add shared formatMessageTimestamp helper
CREDO23 Jul 13, 2026
00fbc24
feat(chat): add MessageTimestamp component gated on the preference
CREDO23 Jul 13, 2026
0093664
feat(chat): render timestamp under user messages
CREDO23 Jul 13, 2026
855f824
feat(chat): render timestamp under assistant messages and reuse share…
CREDO23 Jul 13, 2026
4b2f009
feat(settings): add Appearance content with show-timestamps toggle
CREDO23 Jul 13, 2026
b3999a7
feat(settings): add Appearance user-settings page
CREDO23 Jul 13, 2026
e30a7af
feat(settings): register Appearance tab in user-settings nav
CREDO23 Jul 13, 2026
f70b835
Update README files in multiple languages to reflect the rebranding o…
MODSetter Jul 13, 2026
9e72be1
Merge pull request #1601 from CREDO23/feat/resumable-streaming-and-ti…
MODSetter Jul 13, 2026
ab5970f
feat: updating messaging of instagram and tiktok pages
MODSetter Jul 13, 2026
1bc7d9f
Update README files in multiple languages to include Instagram and Ti…
MODSetter Jul 13, 2026
1131da5
feat: bumped version to 0.0.32
MODSetter Jul 13, 2026
e8b3692
chore: linting
MODSetter Jul 13, 2026
2b018c4
refactor: streamline TikTok and Instagram scraping logic by removing …
MODSetter Jul 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
15 changes: 15 additions & 0 deletions .github/workflows/desktop-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,21 @@ jobs:
echo "Windows signing: skipped"
fi

- name: Verify Apple notarization credentials
if: matrix.os == 'macos-latest'
shell: bash
# Fails in seconds with the same 401 notarytool would throw after the
# full build, instead of wasting ~15 min of build time on bad secrets.
run: |
xcrun notarytool history \
--apple-id "$APPLE_ID" \
--password "$APPLE_APP_SPECIFIC_PASSWORD" \
--team-id "$APPLE_TEAM_ID" > /dev/null
env:
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}

- name: Setup pnpm
uses: pnpm/action-setup@v5

Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ We follow a **branch protection model** to keep `main` stable:
```

3. **Choose your setup method**:
- **Docker Setup**: Follow the [Docker Setup Guide](./DOCKER_SETUP.md)
- **Docker Setup**: Follow the [Building from Source (Contributors)](https://www.surfsense.com/docs/docker-installation#building-from-source-contributors) section of the Docker Installation guide
- **Manual Setup**: Follow the [Installation Guide](https://www.surfsense.com/docs/)

4. **Configure services**:
Expand Down
8 changes: 5 additions & 3 deletions README.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@
<a href="https://trendshift.io/repositories/13606" target="_blank"><img src="https://trendshift.io/api/badge/repositories/13606" alt="MODSetter%2FSurfSense | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
</div>

# SurfSense: Dale inteligencia competitiva a tus agentes de IA
# SurfSense: NotebookLM para investigación de inteligencia competitiva

SurfSense es la **plataforma de inteligencia competitiva de código abierto para agentes de IA**. Tus agentes monitorean a la competencia, siguen los rankings y escuchan a tu mercado con datos en vivo de **Reddit, YouTube, Google Maps, Google Search y la web abierta**, a través de una única **API REST** o un **servidor MCP**. Agentes programados y activados por eventos convierten lo que encuentran en informes y alertas, y una base de conocimiento integrada mantiene cada hallazgo disponible para búsqueda con citas.
SurfSense es la **plataforma de inteligencia competitiva de código abierto para agentes de IA**, como NotebookLM pero con conectores de scraping en vivo. Tus agentes monitorean a la competencia, siguen los rankings y escuchan a tu mercado con datos en vivo de **Reddit, YouTube, Instagram, TikTok, Google Maps, Google Search y la web abierta**, a través de una única **API REST** o un **servidor MCP**. Agentes programados y activados por eventos convierten lo que encuentran en informes y alertas, y una base de conocimiento integrada mantiene cada hallazgo disponible para búsqueda con citas.

> [!NOTE]
> **📢 Una nota para nuestros usuarios de la alternativa a NotebookLM**
Expand Down Expand Up @@ -103,6 +103,8 @@ Las automatizaciones ejecutan turnos completos de agente según un horario o en
|---|---|---|
| **Reddit** | Publicaciones, comentarios y flujos de subreddits sin los límites de tasa de la API oficial | [Reddit Scraper API](https://www.surfsense.com/reddit) |
| **YouTube** | Videos, transcripciones e hilos de comentarios para escuchar a tu marca y productos | [YouTube Scraper API](https://www.surfsense.com/youtube) |
| **Instagram** | Perfiles, publicaciones y reels públicos sin la Graph API | [Instagram Scraper API](https://www.surfsense.com/instagram) |
| **TikTok** | Videos, comentarios, hashtags y perfiles sin aprobación de la Research API | [TikTok Scraper API](https://www.surfsense.com/tiktok) |
| **Google Maps** | Lugares, calificaciones y reseñas para investigar competidores locales y prospectos | [Google Maps Scraper API](https://www.surfsense.com/google-maps) |
| **Google Search** | SERPs en vivo para seguimiento de posiciones y monitoreo de mercado | [Google Search API](https://www.surfsense.com/google-search) |
| **Web Crawl** (rastreo web) | Cualquier página de la web abierta como contenido limpio y estructurado | [Web Crawling API](https://www.surfsense.com/web-crawl) |
Expand Down Expand Up @@ -244,7 +246,7 @@ https://github.com/user-attachments/assets/a0a16566-6967-4374-ac51-9b3e07fbecd7

| Característica | Google NotebookLM | SurfSense |
|---------|-------------------|-----------|
| **Datos de mercado en vivo para agentes** | No | Conectores de Reddit, YouTube, Google Maps, Google Search y rastreo web vía API REST y MCP |
| **Datos de mercado en vivo para agentes** | No | Conectores de Reddit, YouTube, Instagram, TikTok, Google Maps, Google Search y rastreo web vía API REST y MCP |
| **Servidor MCP** | No | Cada conector expuesto como herramienta nativa de agente, más servidores MCP propios con aplicaciones OAuth de un clic |
| **Fuentes por Notebook** | 50 (gratis) a 600 (Ultra, $249.99/mes) | Ilimitadas |
| **Número de Notebooks** | 100 (gratis) a 500 (niveles de pago) | Ilimitado |
Expand Down
8 changes: 5 additions & 3 deletions README.hi.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@
<a href="https://trendshift.io/repositories/13606" target="_blank"><img src="https://trendshift.io/api/badge/repositories/13606" alt="MODSetter%2FSurfSense | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
</div>

# SurfSense: अपने AI एजेंट्स को दें कॉम्पिटिटिव इंटेलिजेंस
# SurfSense: कॉम्पिटिटिव इंटेलिजेंस रिसर्च के लिए NotebookLM

SurfSense **AI एजेंट्स के लिए ओपन सोर्स कॉम्पिटिटिव इंटेलिजेंस प्लेटफ़ॉर्म** है। आपके एजेंट प्रतिस्पर्धियों पर नज़र रखते हैं, रैंकिंग ट्रैक करते हैं, और **Reddit, YouTube, Google Maps, Google Search और ओपन वेब** से लाइव डेटा के साथ आपके बाज़ार की बात सुनते हैं, वह भी एक ही **REST API** या **MCP सर्वर** के ज़रिए। शेड्यूल्ड और इवेंट-ट्रिगर्ड एजेंट अपनी खोजों को ब्रीफ़ और अलर्ट में बदलते हैं, और एक बिल्ट-इन नॉलेज बेस हर खोज को साइटेशन के साथ खोजने योग्य बनाए रखता है।
SurfSense **AI एजेंट्स के लिए ओपन सोर्स कॉम्पिटिटिव इंटेलिजेंस प्लेटफ़ॉर्म** है, बिलकुल NotebookLM जैसा, पर लाइव स्क्रैपिंग कनेक्टर्स के साथ। आपके एजेंट प्रतिस्पर्धियों पर नज़र रखते हैं, रैंकिंग ट्रैक करते हैं, और **Reddit, YouTube, Instagram, TikTok, Google Maps, Google Search और ओपन वेब** से लाइव डेटा के साथ आपके बाज़ार की बात सुनते हैं, वह भी एक ही **REST API** या **MCP सर्वर** के ज़रिए। शेड्यूल्ड और इवेंट-ट्रिगर्ड एजेंट अपनी खोजों को ब्रीफ़ और अलर्ट में बदलते हैं, और एक बिल्ट-इन नॉलेज बेस हर खोज को साइटेशन के साथ खोजने योग्य बनाए रखता है।

> [!NOTE]
> **📢 हमारे NotebookLM-विकल्प उपयोगकर्ताओं के लिए एक सूचना**
Expand Down Expand Up @@ -103,6 +103,8 @@ SurfSense **AI एजेंट्स के लिए ओपन सोर्स
|---|---|---|
| **Reddit** | आधिकारिक API की रेट लिमिट के बिना पोस्ट, कमेंट और सबरेडिट स्ट्रीम | [Reddit Scraper API](https://www.surfsense.com/reddit) |
| **YouTube** | ब्रांड और प्रोडक्ट लिसनिंग के लिए वीडियो, ट्रांसक्रिप्ट और कमेंट थ्रेड | [YouTube Scraper API](https://www.surfsense.com/youtube) |
| **Instagram** | Graph API के बिना सार्वजनिक प्रोफ़ाइल, पोस्ट और रील्स | [Instagram Scraper API](https://www.surfsense.com/instagram) |
| **TikTok** | Research API अप्रूवल के बिना वीडियो, कमेंट, हैशटैग और प्रोफ़ाइल | [TikTok Scraper API](https://www.surfsense.com/tiktok) |
| **Google Maps** | स्थानीय प्रतिस्पर्धी और लीड रिसर्च के लिए स्थान, रेटिंग और रिव्यू | [Google Maps Scraper API](https://www.surfsense.com/google-maps) |
| **Google Search** | रैंक ट्रैकिंग और मार्केट मॉनिटरिंग के लिए लाइव SERP | [Google Search API](https://www.surfsense.com/google-search) |
| **Web Crawl** | ओपन वेब का कोई भी पेज साफ़-सुथरे, स्ट्रक्चर्ड कंटेंट के रूप में | [Web Crawling API](https://www.surfsense.com/web-crawl) |
Expand Down Expand Up @@ -244,7 +246,7 @@ https://github.com/user-attachments/assets/a0a16566-6967-4374-ac51-9b3e07fbecd7

| फ़ीचर | Google NotebookLM | SurfSense |
|---------|-------------------|-----------|
| **एजेंट्स के लिए लाइव मार्केट डेटा** | नहीं | REST API और MCP के ज़रिए Reddit, YouTube, Google Maps, Google Search और वेब क्रॉल कनेक्टर |
| **एजेंट्स के लिए लाइव मार्केट डेटा** | नहीं | REST API और MCP के ज़रिए Reddit, YouTube, Instagram, TikTok, Google Maps, Google Search और वेब क्रॉल कनेक्टर |
| **MCP सर्वर** | नहीं | हर कनेक्टर नेटिव एजेंट टूल के रूप में उपलब्ध, साथ ही वन-क्लिक OAuth ऐप्स के साथ अपने MCP सर्वर लाने की सुविधा |
| **प्रति नोटबुक स्रोत** | 50 (Free) से 600 (Ultra, $249.99/माह) | असीमित |
| **नोटबुक की संख्या** | 100 (Free) से 500 (सशुल्क टियर) | असीमित |
Expand Down
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@
<a href="https://trendshift.io/repositories/13606" target="_blank"><img src="https://trendshift.io/api/badge/repositories/13606" alt="MODSetter%2FSurfSense | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
</div>

# SurfSense: Give Your AI Agents Competitive Intelligence
# SurfSense: NotebookLM for Competitive Intelligence Research

SurfSense is the **open-source competitive intelligence platform for AI agents**. Your agents monitor competitors, track rankings, and listen to your market with live data from **Reddit, YouTube, Google Maps, Google Search, and the open web**, through one **REST API** or **MCP server**. Scheduled and event-triggered agents turn what they find into briefs and alerts, and a built-in knowledge base keeps every finding searchable with citations.
SurfSense is the **open-source competitive intelligence platform for AI agents**, like NotebookLM but with live scraping connectors. Your agents monitor competitors, track rankings, and listen to your market with live data from **Reddit, YouTube, Instagram, TikTok, Google Maps, Google Search, and the open web**, through one **REST API** or **MCP server**. Scheduled and event-triggered agents turn what they find into briefs and alerts, and a built-in knowledge base keeps every finding searchable with citations.

> [!NOTE]
> **📢 A note for our NotebookLM-alternative users**
Expand Down Expand Up @@ -103,6 +103,8 @@ Automations run full agent turns on a schedule or in response to events, then wr
|---|---|---|
| **Reddit** | Posts, comments, and subreddit streams without the official API's rate limits | [Reddit Scraper API](https://www.surfsense.com/reddit) |
| **YouTube** | Videos, transcripts, and comment threads for brand and product listening | [YouTube Scraper API](https://www.surfsense.com/youtube) |
| **Instagram** | Public profiles, posts, and reels without the Graph API | [Instagram Scraper API](https://www.surfsense.com/instagram) |
| **TikTok** | Videos, comments, hashtags, and profiles without Research API approval | [TikTok Scraper API](https://www.surfsense.com/tiktok) |
| **Google Maps** | Places, ratings, and reviews for local competitor and lead research | [Google Maps Scraper API](https://www.surfsense.com/google-maps) |
| **Google Search** | Live SERPs for rank tracking and market monitoring | [Google Search API](https://www.surfsense.com/google-search) |
| **Web Crawl** | Any page on the open web as clean, structured content | [Web Crawling API](https://www.surfsense.com/web-crawl) |
Expand Down Expand Up @@ -243,7 +245,7 @@ Still comparing us as a NotebookLM alternative? Here is the honest breakdown.

| Feature | Google NotebookLM | SurfSense |
|---------|-------------------|-----------|
| **Live market data for agents** | No | Reddit, YouTube, Google Maps, Google Search, and web crawl connectors via REST API and MCP |
| **Live market data for agents** | No | Reddit, YouTube, Instagram, TikTok, Google Maps, Google Search, and web crawl connectors via REST API and MCP |
| **MCP server** | No | Every connector exposed as a native agent tool, plus bring-your-own MCP servers with one-click OAuth apps |
| **Sources per Notebook** | 50 (Free) to 600 (Ultra, $249.99/mo) | Unlimited |
| **Number of Notebooks** | 100 (Free) to 500 (paid tiers) | Unlimited |
Expand Down
8 changes: 5 additions & 3 deletions README.pt-BR.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@
<a href="https://trendshift.io/repositories/13606" target="_blank"><img src="https://trendshift.io/api/badge/repositories/13606" alt="MODSetter%2FSurfSense | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
</div>

# SurfSense: Dê Inteligência Competitiva aos Seus Agentes de IA
# SurfSense: NotebookLM para Pesquisa de Inteligência Competitiva

O SurfSense é a **plataforma open source de inteligência competitiva para agentes de IA**. Seus agentes monitoram concorrentes, acompanham rankings e escutam o seu mercado com dados ao vivo do **Reddit, YouTube, Google Maps, Google Search e da web aberta**, por meio de uma única **API REST** ou de um **servidor MCP**. Agentes agendados ou acionados por eventos transformam o que encontram em relatórios e alertas, e uma base de conhecimento integrada mantém cada descoberta pesquisável, com citações.
O SurfSense é a **plataforma open source de inteligência competitiva para agentes de IA**, como o NotebookLM, mas com conectores de scraping ao vivo. Seus agentes monitoram concorrentes, acompanham rankings e escutam o seu mercado com dados ao vivo do **Reddit, YouTube, Instagram, TikTok, Google Maps, Google Search e da web aberta**, por meio de uma única **API REST** ou de um **servidor MCP**. Agentes agendados ou acionados por eventos transformam o que encontram em relatórios e alertas, e uma base de conhecimento integrada mantém cada descoberta pesquisável, com citações.

> [!NOTE]
> **📢 Um recado para nossos usuários que buscavam uma alternativa ao NotebookLM**
Expand Down Expand Up @@ -103,6 +103,8 @@ As automações executam turnos completos de agente de forma agendada ou em resp
|---|---|---|
| **Reddit** | Posts, comentários e fluxos de subreddits sem os limites de requisição da API oficial | [Reddit Scraper API](https://www.surfsense.com/reddit) |
| **YouTube** | Vídeos, transcrições e threads de comentários para monitoramento de marca e produto | [YouTube Scraper API](https://www.surfsense.com/youtube) |
| **Instagram** | Perfis, posts e reels públicos sem a Graph API | [Instagram Scraper API](https://www.surfsense.com/instagram) |
| **TikTok** | Vídeos, comentários, hashtags e perfis sem aprovação da Research API | [TikTok Scraper API](https://www.surfsense.com/tiktok) |
| **Google Maps** | Estabelecimentos, avaliações e reviews para pesquisa local de concorrentes e leads | [Google Maps Scraper API](https://www.surfsense.com/google-maps) |
| **Google Search** | SERPs ao vivo para acompanhamento de rankings e monitoramento de mercado | [Google Search API](https://www.surfsense.com/google-search) |
| **Web Crawl** (rastreamento web) | Qualquer página da web aberta como conteúdo limpo e estruturado | [Web Crawling API](https://www.surfsense.com/web-crawl) |
Expand Down Expand Up @@ -244,7 +246,7 @@ Ainda nos comparando como alternativa ao NotebookLM? Aqui está o comparativo ho

| Recurso | Google NotebookLM | SurfSense |
|---------|-------------------|-----------|
| **Dados de mercado ao vivo para agentes** | Não | Conectores de Reddit, YouTube, Google Maps, Google Search e rastreamento web via API REST e MCP |
| **Dados de mercado ao vivo para agentes** | Não | Conectores de Reddit, YouTube, Instagram, TikTok, Google Maps, Google Search e rastreamento web via API REST e MCP |
| **Servidor MCP** | Não | Cada conector exposto como ferramenta nativa de agente, além de servidores MCP próprios com apps OAuth em um clique |
| **Fontes por Notebook** | 50 (gratuito) a 600 (Ultra, US$ 249,99/mês) | Ilimitadas |
| **Número de Notebooks** | 100 (gratuito) a 500 (planos pagos) | Ilimitado |
Expand Down
Loading
Loading