Destroy your startup idea before the market does.
Project description
IdeaKiller
Your startup idea destroyed in 60 seconds.
IdeaKiller runs your business idea through 7 adversarial lenses and returns a Survival Score (0–100) with evidence-backed findings. Built for founders who want brutal honesty before they burn runway.
Features
- 7 adversarial lenses — market timing, unit economics, competition, customer acquisition, team risk, regulatory exposure, and technology feasibility
- Weighted geometric mean scoring — a fatal flaw in any single lens tanks the overall score, as it should
- Local-first LLM — uses Ollama by default; falls back to Anthropic API automatically
- Three interfaces — CLI for scripts, REST API for integrations, Gradio UI for humans
- Structured JSON output — machine-readable results for downstream tooling
- Docker-ready — single-command deployment with health checks included
Survival Score
Score = exp(Σ weight_i × ln(survival_probability_i)) × 100
| Score | Verdict |
|---|---|
| 0–20 | DEAD ON ARRIVAL |
| 21–40 | CRITICAL |
| 41–60 | HIGH RISK |
| 61–80 | VIABLE |
| 81–100 | STRONG |
Lens Weights
| Lens | Weight | What it hunts |
|---|---|---|
| Market Timing | 20% | Too early? Too late? Macro headwinds? |
| Unit Economics | 20% | CAC/LTV death traps, margin collapse |
| Competition | 15% | Incumbent moats, funded clones |
| Customer Acquisition | 15% | Reachable customers, GTM viability |
| Team Risk | 10% | Skills gap, key-person risk |
| Regulatory | 10% | FDA, HIPAA, financial regs, IP landmines |
| Technology | 10% | Unproven tech, feasibility gaps |
Quick Start
Install:
pip install -e .
Configure LLM backend (pick one):
# Option A — local inference via Ollama (recommended)
ollama pull llama3.2
# Option B — Anthropic API
export ANTHROPIC_API_KEY=sk-ant-...
Run:
# Plain-text analysis
ideakiller analyze "Uber for dog walking with AI routing"
# JSON output
ideakiller analyze --output json "Blockchain supply chain for farms"
# REST API server → http://localhost:8000
ideakiller serve
# Gradio web UI → http://localhost:7860
ideakiller ui
REST API:
curl -X POST http://localhost:8000/analyze \
-H "Content-Type: application/json" \
-d '{"idea": "AI therapist for Gen Z", "context": "mobile-first, US market"}'
Docker:
docker build -t ideakiller .
docker run -p 8000:8000 -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY ideakiller
Architecture
ideakiller/
├── llm.py # LLMClient — Ollama-first, Anthropic fallback
├── analyzer.py # IdeaAnalyzer — 7-lens prompt engine, JSON extraction
├── scorer.py # IdeaScorer — weighted geometric mean, verdict mapping
├── cli.py # Click CLI — analyze / serve / ui commands
├── api.py # FastAPI — POST /analyze, GET /health
└── app.py # Gradio UI — form inputs, markdown output, examples
Request flow:
User input
→ IdeaAnalyzer (7 × LLM calls, structured JSON per lens)
→ IdeaScorer (geometric mean → 0-100 score → verdict)
→ Output (CLI text | JSON | HTTP response | Gradio markdown)
LLM strategy: LLMClient probes Ollama at localhost:11434 on first call. If unavailable, it lazy-imports the Anthropic SDK and uses ANTHROPIC_API_KEY. No configuration required beyond setting the env var.
Development
pip install -e ".[dev]"
pytest -v
ruff check src/ tests/
bandit -r src/ -ll
Contributing
See CONTRIBUTING.md for guidelines on issues, pull requests, and coding standards.
License
Built by TechKnowMad Labs
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ideakiller-0.1.0.tar.gz.
File metadata
- Download URL: ideakiller-0.1.0.tar.gz
- Upload date:
- Size: 26.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b5bbb83c516b4d02214c6c691119bb4378fccca4bdf87556d6693a3222c86abe
|
|
| MD5 |
ddbc3223895915e472b53cd32f604bcc
|
|
| BLAKE2b-256 |
47dd8806138cadadb136ed93353194d1b94b5f0723f3ad3cdf3ab076b023eb11
|
File details
Details for the file ideakiller-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ideakiller-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aab1d896dcf470ed625ade8ee8b5ed1ea6b9c01e864bbcc87b00c75633a4a274
|
|
| MD5 |
4bce2975b62cc01dabdd8bca2006d961
|
|
| BLAKE2b-256 |
061c0a03da07292d9fb2e9d4886573b0d187b8c650b27987dc5817d76b9c65d0
|