new-term-radar
Daily radar for new AI terms: names of new models, products and repos, caught on X, Hugging Face, GitHub and sitemaps before keyword tools list them.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證vedikasyspreedigital-pixel/Seo-dashboard
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
A standalone replacement for the Make.com "Ranking Report Automation"
scenario. No Make.com involved — this service reads the sheet, calls
DataForSEO, has Claude match the target domain against the full result set,
and writes the outcome back.
Needs Review is intentionally never Error - Retry — a bad Claude response
shouldn't cause the row to re-hit (and re-pay for) DataForSEO for a problem
the API didn't cause.
The empty root api/ and lib/ directories are retained only as placeholders
from the earlier serverless prototype; active backend code is under backend/.檢視完整 README ↗SySpree Digital's internal dashboard for SEO client work:
Frontend: React + Vite on Vercel. Backend: Node 22 + Express + Prisma/Postgres on Railway.
The tools (Semrush, Ubersuggest and WooRank through seotooladda; Ahrefs through Flikover) have no API we can
use, so an office Chrome extension (extension/) does the clicking in a Chrome where someone is signed in.
It polls the backend for jobs, runs each in its own window, and uploads the file — it never types passwords
and stops for a person if a "verify you are human" check appears.
| # | Report | How it's made | File |
|---|---|---|---|
| 1 | Keyword Analysis | Organic keyword exports from Semrush, Ubersuggest and Ahrefs, one search intent per keyword (word patterns, then Gemini). With competitors: Semrush's top 3 organic competitors (auto, or typed by the team) are exported too, and a Competitors sheet puts the client and competitors side by side — position, landing page, traffic, difficulty, intent. | Excel |
| 2 | Semrush Site Audit | New Site Audit project (1,000 pages, run once) → wait for the crawl → Full Report PDF. | |
| 3 | WooRank Audit | Create Review → Refresh → Download PDF (saved through Chrome's print engine). | |
| 4 | Gap & Competitor Analysis | From report 1's competitor data: Missing and Weak keywords; Gemini picks the opportunities worth pursuing and writes the action plan. | Excel |
| 5 | AI SEO Audit | Gemini reads the WooRank and Semrush PDFs and fills the team's audit workbook: dashboard, checks per area, tech stack, action plan. | Excel |
Code: backend/domainIntel/ (reports, jobs, agent queue), backend/api/routes/domainIntel.ts and
agent.ts, frontend/src/pages/DomainIntelligencePage.tsx, extension/.
frontend/ React + Vite app (pages, components, typed API client)
backend/ Express API
api/ routes (auth, clients, runs, reports, baselines, compare, domainIntel, agent, ...)
dataforseo/ DataForSEO client + response mapping
reporting/ report PDFs/Excel, email drafts, ClickUp email sender
baselines/ baseline Excel/PDF parsing (incl. OCR) and comparison
domainIntel/ Domain Intelligence (see above)
worker/ background run processing
prisma/ database schema, migrations, seed (workspaces)
extension/ "SERP Console Agent" Chrome extension (Domain Intelligence)
spikes/clickup-feasibility/ ClickUp login helper (npm run setup-session) -- still used
scripts/ one-off admin utilities (create-user, import-workspace-clients, diagnostics)
test/ backend tests (node:test)
Needs Node 22 (see .nvmrc) and Postgres (any local install or Docker; .env.example assumes port 5433).
npm install
npm --prefix frontend install
cp .env.example .env # then fill in DATABASE_URL etc.
npx prisma migrate deploy
npm run prisma:seed # creates the "seo" and "advanced-seo" workspaces
npx tsx scripts/create-user.mjs [email protected] "a-password" seo advanced-seo
npm run backend # API on http://localhost:3001
npm run frontend # app on http://localhost:5173 (proxies /api to the backend)
Everything external is mock by default — no DataForSEO spend, no ClickUp sends, no tool fetching —
until you set the matching switch in .env (DATAFORSEO_LIVE, CLICKUP_EMAIL_LIVE,
CLICKUP_COMMENTS_LIVE, DOMAIN_INTEL_FETCH_MODE). All settings are described in .env.example.
Tests (need the local Postgres running): npm test
ClickUp is driven with a saved browser login (a Playwright "session file"), made by a person once:
cd spikes/clickup-feasibility && npm install
npm run setup-session # default workspace -> session/clickup-storage-state.json
npm run setup-session:advanced-seo # Advanced SEO workspace's own login
A browser opens: log in to ClickUp (check it's the right account), then press Enter in the terminal. For production, upload the file to the Railway volume (see Deploy, step 4).
On the office computer's Chrome:
chrome://extensions → turn on Developer mode → Load unpacked → pick the extension/ folder.http://localhost:3001 locally) and
the agent token (= DOMAIN_INTEL_AGENT_TOKEN on the server). Optional: "Show me the job window" to watch it work.The extension's popup also has a Record mode (pages + clicks + screenshots, never typed values) used to map new tool flows.
railway.json sets the build/start/healthcheck; nixpacks.toml adds the Linux libraries Chromium needs
(without it Playwright's browser can't start on Railway). The rest is set up once in Railway:
Project + Postgres — new project from this repo; add the Postgres plugin.
Volume — on the backend service add a Volume mounted at /var/data (uploads, reports and ClickUp
session files live there; without it they're lost on every redeploy).
Variables (service → Variables; mark secrets as secret):
| Variable | Value |
|---|---|
NODE_ENV | production |
DATABASE_URL | ${{Postgres.DATABASE_URL}} |
PORT | leave unset (Railway sets it) |
UPLOADS_DIR | /var/data/uploads |
REPORTS_DIR | /var/data/uploads/reports |
CLICKUP_SESSION_PATH | /var/data/uploads/clickup-storage-state.json |
CLICKUP_SESSION_PATH_ADVANCED_SEO | /var/data/uploads/clickup-storage-state-advanced-seo.json |
CORS_ORIGINS | the Vercel app URL (comma-separated if several) |
DATAFORSEO_LOGIN / DATAFORSEO_PASSWORD | DataForSEO credentials (secret) |
DATAFORSEO_LIVE, CLICKUP_EMAIL_LIVE, CLICKUP_COMMENTS_LIVE | false until deliberately going live |
DOMAIN_INTEL_FETCH_MODE | agent |
DOMAIN_INTEL_AGENT_TOKEN | a long random string (secret) — same value in the extension's Settings |
GEMINI_API_KEY | Google AI Studio key (secret) |
ClickUp session files — after npm run setup-session locally, copy them onto the volume:
railway login && railway link
railway ssh keys add # first time only
cat spikes/clickup-feasibility/session/clickup-storage-state.json | railway ssh --service <backend-service> "cat > /var/data/uploads/clickup-storage-state.json"
cat spikes/clickup-feasibility/session/clickup-storage-state-advanced-seo.json | railway ssh --service <backend-service> "cat > /var/data/uploads/clickup-storage-state-advanced-seo.json"
railway ssh --service <backend-service> "ls -la /var/data/uploads/"
Before deploying, check no ranking run is still processing (a deploy restarts the server).
The Vercel project builds the frontend/ folder (frontend/vercel.json sends every route to the app).
Set VITE_API_BASE_URL to the Railway backend URL (https://<something>.up.railway.app) in the Vercel
project's environment variables; it's baked in at build time, so redeploy after changing it.
reports/, uploads/) and .env are git-ignored — never commit them; reports contain client data.main.Log in to the right ClickUp account for each workspace — a wrong account makes every send fail with "You need access to this task".