Niches Project
german market niche finder → site builder → auto deploy
Scan 1.4 million .de domains to find profitable tool niches, verify with AI, deep-research the best ones, then build modern German replacement sites and deploy them on Vercel. Reference: arbeitszeitrechner.eu
1.4M
Domains in DB
6
Scripts Built
4
Stages
3/4
Stages Done
Stage 1 — Domain Discovery & Verification
DONE
Step 1 — HTTP Check
check_domains.py
Async HTTP checker scans domains from the 1.4M database. Marks live domains, deletes parked and dead ones.
- Async batch processing with
--limitarg - Classifies: live / parked / dead
- Removes dead domains from DB
- Output: live domains in
analysistable
Step 2 — AI Verification
codex_verify.py
Curls each live domain, sends HTML to Gemini CLI for structured analysis. Extracts JSON classification.
curldomain, get HTML (12s timeout)gemini -p "prompt"with Google Search grounding- Extracts: fetch_status, is_tool, category, subcategory
- Also: traffic_potential, monetization_potential, monetization_model
- Stores in
codex_analysistable
Verified tool domains flow down
Stage 2 — Domain Scoring & Selection
DONE
Step 3 — Profit Scoring & Picking
pick_domain.py
Queries DB (analysis JOIN codex_analysis), excludes already-researched domains. Computes profit score and presents interactive table.
- Formula:
(traffic * mono * 10) + (confidence * 10) + (risk * 3) - Scaled to 0-100, color coded (green 70+, yellow 45+, red below)
- Shows Rich table with top N domains
- Interactive: pick by number to launch research
- Also supports
--auto(pick #1) and--top N
traffic_pts: high=3 med=2 low=1
mono_pts: high=3 med=2 low=1
risk_pts: low=3 med=2 high=1
Top-scored domain selected
Stage 3 — Deep Research Pipeline
DONE
Full Research Pipeline
research_domain.py
End-to-end research for a single picked domain. Browses the site, analyzes with AI,
finds German competitors via Serper.dev, browses competitors, does visual analysis with Codex,
and stores everything in the database.
Step 1
Browse Target
agent-browser
Step 2a
AI Analysis
gemini -p
Step 2b
German SERP
serper.dev
Step 3
Browse Competitors
agent-browser x3
Step 4
Visual Analysis
codex exec -i
- Step 1:
browse.full(url)returns snapshot text + screenshot PNG - Step 2a: Gemini CLI generates keywords, analyzes the niche
- Step 2b:
Serper.devPOST with gl=de, hl=de for real German top 10 - Step 3: Browse top 3 competitors, get their snapshots + screenshots
- Step 4:
codex exec -i img1.png -i img2.png -visual comparison - Step 5: Store in
domain_research+domain_planstables
Researched domain ready to build
Stage 4 — Site Generation & Deployment
TODO
Step 5 — Generate PRD
generate_prd.py
Generate per-domain SITE_PRD.md from the research data. This becomes the blueprint for the AI site builder.
- Pull research from
domain_research - Pull plans from
domain_plans - Output: detailed SITE_PRD.md per domain
Step 6 — AI Build
build_site.py
AI builds the actual site (HTML/CSS/JS) from the PRD. Creates a modern, fast, SEO-optimized German tool site.
- Read SITE_PRD.md as blueprint
- Generate all HTML, CSS, JS files
- German language, SEO meta tags
- Responsive, ad-ready layout
Step 7 — Deploy
deploy_site.py
Full deployment pipeline: init git, create GitHub repo under niches-de org, deploy to Vercel, attach custom domain.
git init+gh repo create niches-de/slugvercel --yes --prodvercel domains add domain.de- Push to main triggers auto-deploy
Step 8 — Mark Built
mark_built.py
Update the database to mark the domain as built and deployed. Closes the loop.
- Update
analysis.site_status= built - Record deploy URL, repo URL
- Domain excluded from future picks
Database Flow
graph LR
A["analysis
1.4M domains"] -->|"check_domains.py
HTTP filter"| B["analysis
live domains"]
B -->|"codex_verify.py
Gemini CLI"| C["codex_analysis
verified tools"]
C -->|"pick_domain.py
profit score"| D["Selected
domain"]
D -->|"research_domain.py
full pipeline"| E["domain_research
+ domain_plans"]
E -->|"generate_prd.py"| F["SITE_PRD.md"]
F -->|"build_site.py"| G["HTML/CSS/JS"]
G -->|"deploy_site.py"| H["Live on
Vercel"]
H -->|"mark_built.py"| I["DB updated
site_status=built"]
classDef done fill:#0d3d38,stroke:#34d399,color:#34d399
classDef todo fill:#3d2a0d,stroke:#fbbf24,color:#fbbf24
classDef db fill:#1a1040,stroke:#a78bfa,color:#a78bfa
class A,B db
class C,D,E done
class F,G,H,I todo
Infrastructure & Tools
Database
MySQL on Remote Server
169.197.82.165
SSH tunnel + pymysql
AI - Analysis
Gemini CLI
gemini -p "prompt"
Google Search grounding
AI - Vision
Codex CLI
codex exec -i img.png -
Screenshot analysis
SERP Data
Serper.dev API
POST gl=de, hl=de
Real German Google top 10
Browser
Agent Browser
browse.full(url)
Returns text + PNG path
Hosting
Vercel
Static sites, free tier
Git-connected auto-deploy
Source Control
GitHub
niches-de org
1 repo per site
Rank Tracking
SpySERP
Post-launch only
Track own rankings