new-term-radar
신규 AI 용어를 매일 추적, X·Hugging Face·GitHub 등에서 모델·제품·레포 이름을 빠르게 수집
사람·기업 검색, 업무 이메일 찾고, 한 작업공간에서 잠재고객 리스트 작성. 월 $29부터 좌석 차단, 800크레딧 무료 시작
Search people and companies, reveal work email addresses and build prospect lists in one workspace. Seat blocks from $29 a month; start free with 800 credits.
마케팅JavaScript · ShellGitHub @nyxashu25온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기DataPit: B2B sales intelligence platform with faceted search, credit-gated email reveal, outreach sequences and a Chrome extension.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
DataPit is a B2B contact and company data platform in the vein of Apollo.io and Slintel. Teams search people and companies with faceted filters, reveal verified work emails and phone numbers against a credit balance, organize prospects into lists, and run multi-step email sequences. A Chrome extension surfaces the same data on LinkedIn, Sales Navigator, Gmail and CRM pages.
It runs in production at datapit.io. This repository is the full source: an Express API, a BullMQ worker, a React SPA and the Chrome extension.README 전문 보기 ↗DataPit is a B2B contact and company data platform in the vein of Apollo.io and Slintel. Teams search people and companies with faceted filters, reveal verified work emails and phone numbers against a credit balance, organize prospects into lists, and run multi-step email sequences. A Chrome extension surfaces the same data on LinkedIn, Sales Navigator, Gmail and CRM pages.
It runs in production at datapit.io. This repository is the full source: an Express API, a BullMQ worker, a React SPA and the Chrome extension.
Built vs. planned.
docs/FEATURES.mdis the file-by-file record of what is implemented, what is simulated until a provider key is configured, and what is deliberately not built (CRM sync, intent scoring, technographics). Treat it as the source of truth.
Highlights · Architecture · The credit flow · Chrome extension · Tech stack · Quick start · Repository layout · Quality and CI · Security and compliance · Integrations · Documentation
| Area | What it does |
|---|---|
| People and company search | Faceted Elasticsearch queries (title, seniority, department, location, industry, headcount, tech stack, email status), saved searches, bulk actions. Results hydrate from Postgres and contact details stay masked until revealed. |
| Credit-gated reveal | Email and phone reveal that spends credits atomically, with idempotency keys, auto-refund on no result, and a reaper plus reconciliation job that keep Redis and Postgres balances in agreement. |
| Company detail | Firmographics, tech stack and contacts. The first view by a workspace is charged, repeat views are free. |
| Lists | Named lists of contacts and companies with credit-gated CSV export. |
| Sequences | EMAIL and WAIT steps, enroll, pause, resume and unenroll, a 60-second worker tick, per-step funnel analytics, and a suppression list fed by bounce and unsubscribe webhooks. |
| Billing | Stripe Checkout for one-off top-ups and per-seat plan subscriptions. Stripe keys are entered in the admin panel and stored AES-256-GCM encrypted, not in env vars. |
| Accounts and teams | Email/password and Google sign-in, email verification, password reset, seat-limited team invites, and OWNER / ADMIN / MEMBER roles per workspace. |
| Support | Tenant-side ticketing plus a separate /control admin panel with audit log, import approval and promotional broadcasts. |
| Onboarding | A getting-started checklist detected from real activity, with credit rewards, a ⌘K command palette and designed empty states. |
| Observability | Prometheus /metrics, structured logs and OpenTelemetry instrumentation. |
flowchart LR
subgraph clients["Clients"]
SPA["React + Vite SPA"]
Admin["Admin panel (/control)"]
Ext["Chrome extension"]
end
Nginx["nginx"]
API["Express API<br/>/api/v1"]
Worker["BullMQ worker<br/>enrichment, indexing,<br/>sequence engine"]
PG[("PostgreSQL<br/>system of record")]
RD[("Redis<br/>sessions, rate limits,<br/>credit reservations, queues")]
ES[("Elasticsearch<br/>search projection")]
subgraph ext["External services"]
Stripe["Stripe"]
Resend["Resend"]
SendGrid["SendGrid"]
Hunter["Hunter.io"]
Google["Google Identity"]
end
SPA --> Nginx
Admin --> Nginx
Ext -->|API key| Nginx
Nginx --> API
API --> PG
API --> RD
API --> ES
Worker -->|consume jobs| RD
Worker --> PG
Worker --> ES
API -.-> Stripe
API -.-> Resend
API -.-> Hunter
API -.-> Google
Worker -.-> SendGrid
backend/prisma/schema.prisma).docs/08-deployment.mermaid.More diagrams live in docs/: data model, enrichment flow, search flow, user journey, sequence engine and the credit state machine.
Revealing a contact is the product's core money mechanic, so it is built to be safe under concurrency: a balance can never be overspent by parallel requests.
sequenceDiagram
participant C as Client
participant API as Express API
participant R as Redis
participant P as PostgreSQL
C->>API: POST /reveal with Idempotency-Key
API->>R: Reserve credit (Lua script, atomic check and decrement)
alt balance insufficient
API-->>C: 402 Insufficient credits
else credit reserved
API->>API: Find and verify email
alt usable result
API->>R: Clear reservation
API->>P: Transaction, ledger entry -1 plus reveal row
API-->>C: 200 Revealed contact
else no result
API->>R: Release reservation, balance restored
API-->>C: Not found, nothing charged
end
end
Note over R,P: A reaper sweeps expired reservations every 60s.<br/>A reconciliation job checks Redis against Postgres every 15 min<br/>and alerts on drift without auto-correcting.
The invariant, always true: monthlyCreditGrant + SUM(ledger.delta) == available balance + active reservations. A repeated idempotency key replays the cached response instead of charging again. The full state machine is docs/07-credits-state.mermaid.
extension/ is a plain Manifest V3 extension with no build step. It looks people up where sales work happens:
Install and local-development steps are in extension/README.md.
| Layer | Technology |
|---|---|
| API and worker | Node.js 20, Express, Prisma, BullMQ, ioredis, zod, Stripe SDK |
| Frontend | React 18, Vite, Redux Toolkit (RTK Query), React Router, Tailwind CSS, prerendered marketing and content pages |
| Data | PostgreSQL 16, Elasticsearch 8, Redis 7 |
| Extension | Chrome Manifest V3, shadow-DOM UI |
| Quality | Vitest, ESLint, Prettier, Husky and lint-staged |
| Ops | Docker Compose, nginx, pm2, systemd units, Prometheus, OpenTelemetry |
docker compose up --build
# once the api and elasticsearch containers are healthy, in another terminal:
docker compose exec api npm run prisma:migrate # create tables
docker compose exec api npm run seed # sample data and a demo user
| Service | URL |
|---|---|
| Web app | http://localhost:5173 |
| API | http://localhost:4000/api/v1 |
Demo login (local seed data only): [email protected] / demo1234
Prerequisites: Node 20+, PostgreSQL, Redis and Elasticsearch 8 running locally.
# Backend
cd backend
cp .env.example .env # set DATABASE_URL, REDIS_URL, ELASTICSEARCH_URL
npm install
npm run prisma:migrate
npm run seed # 40 companies, contacts and the demo user
npm run dev # API on :4000
npm run worker # background jobs, in a second terminal
# Frontend
cd ../frontend
npm install
npm run dev # Vite on :5173, proxies /api to :4000
Everything runs locally with no third-party accounts: each external integration falls back to a logged, simulated response until you configure a key (see Integrations).
signalbase/
├── backend/
│ ├── prisma/ # schema and migrations
│ └── src/
│ ├── config/ # env, db, redis, elasticsearch, metrics, logger
│ ├── middleware/ # auth, rbac, rate limit, idempotency, credit reservation
│ ├── services/ # search, credits, reveal, sequences, billing, privacy
│ ├── controllers/ # request handlers
│ ├── routes/ # /api/v1 router
│ ├── jobs/ # BullMQ queues, indexer, worker, processors
│ └── validators/ # zod schemas
├── frontend/
│ └── src/ # api slices, store, layouts, components, pages
├── extension/ # Chrome extension (Manifest V3)
├── deploy/ # nginx, systemd, backup and health-check scripts
├── docs/ # diagrams, data model, API spec, feature accounting
├── scripts/
├── docker-compose.yml # postgres, redis, elasticsearch, api, worker, web
├── ARCHITECTURE.md
├── RUNBOOK.md
└── TODO.md
cd backend && npm run lint && npm run format && npm test
cd frontend && npm run lint && npm run format && npm test
.github/workflows/ci.yml runs on every push to main and every pull request:
npm audit, lint, Prettier, migrations, testsnpm audit, lint, Prettier, testshttpOnly refresh cookies with rotation and replay detection, enumeration-safe password reset.Every provider has a real code path and a simulated fallback, so the app runs end to end with zero external accounts.
| Integration | Live when | Otherwise |
|---|---|---|
| Hunter.io email verification | EMAIL_VERIFIER_API_KEY set | Reveal proceeds as unchecked |
| SendGrid sequence sends | ESP_API_KEY and ESP_FROM_EMAIL set | Logs a simulated message id |
| Resend transactional mail | RESEND_API_KEY set | Logs instead of sending |
| Stripe checkout and subscriptions | Keys saved in /control/settings | Checkout returns a simulated URL |
| Google Sign-In | GOOGLE_CLIENT_ID and VITE_GOOGLE_CLIENT_ID set | POST /auth/google returns 503 |
CRM sync, intent scoring, technographics and sequence A/B testing are not built. See docs/FEATURES.md and TODO.md.
| Document | Contents |
|---|---|
ARCHITECTURE.md | Master architecture write-up |
docs/FEATURES.md | What is built, simulated and not built |
docs/DATA-MODEL.md | Entities and relationships |
docs/API-SPEC.md | REST API reference |
docs/UX-ROADMAP.md | In-app UX overhaul plan and status |
docs/EXTENSION-PLAN.md | Chrome extension design |
RUNBOOK.md | Operations, deploys and incident notes |
TODO.md | Open work, by priority |
Each .mermaid file in docs/ renders directly on GitHub.