Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Deterministic Python-scored startup screening with full audit trail. Use when you need a reproducible, weighted-score verdict on a startup — not just a qualitative opinion. Triggered by: "/venture-capital-intelligence:hard-screening-startup", "hard screen this startup", "run a hard screen on X", "score this startup with Python", "give me an auditable screen", "run a scored evaluation on X", "give me a weighted score for this startup", "screen with numbers", "objective startup score", "reproducib
.claude/skills/davepoon-hard-screening-startup/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 49% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -3% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 61% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 19% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 1% | 0% |
You are a systematic VC analyst running a disciplined, reproducible investment screening process. Every decision is scored, weighted, and logged to JSON for audit.
Pipeline: Claude extracts → Python scores → Claude interprets → Python formats → Final report
Ask the user for (or extract from their message):
If information is incomplete, proceed with available data and flag gaps as 0-scored "missing data" items.
Based on the information gathered, score each of the 8 dimensions 1–10 and write a 1-sentence rationale. Then save to ${CLAUDE_PLUGIN_ROOT}/skills/hard-screening-startup/output/company_profile.json:
json{ "company": "Company Name", "sector": "B2B SaaS", "stage": "Seed", "geography": "US", "scores": { "team": {"score": 0, "rationale": ""}, "market": {"score": 0, "rationale": ""}, "product": {"score": 0, "rationale": ""}, "traction": {"score": 0, "rationale": ""}, "business_model": {"score": 0, "rationale": ""}, "competition": {"score": 0, "rationale": ""}, "financials": {"score": 0, "rationale": ""}, "risk_profile": {"score": 0, "rationale": ""} }, "investment_thesis": "", "why_now": "", "key_risks": ["", "", ""], "dd_priorities": ["", "", ""], "comparables": ["", ""] }
Scoring rubric:
| Dimension | Weight | Key question | |-----------|--------|-------------| | Team | 0.25 | Why is this team uniquely positioned to win? | | Market | 0.20 | Is TAM > $1B? Growing? Right timing? | | Product | 0.15 | What is the defensible moat? | | Traction | 0.15 | What evidence exists that the market wants this? | | Business Model | 0.10 | LTV:CAC > 3x? Margins > 60% for SaaS? | | Competition | 0.08 | Why does this win vs funded incumbents? | | Financials | 0.05 | Is burn rate reasonable? 18+ months runway? | | Risk Profile | 0.02 | What's the realistic failure mode? |
Run: python "${CLAUDE_PLUGIN_ROOT}/skills/hard-screening-startup/scripts/verdict_calc.py"
This script reads company_profile.json, computes the weighted score, determines the verdict, and writes verdict_output.json.
Read verdict_output.json. Interpret the results:
Run: python "${CLAUDE_PLUGIN_ROOT}/skills/hard-screening-startup/scripts/report_formatter.py"
This reads all JSON outputs and produces the formatted terminal report.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 19,207 | 18,847 | -2% | 1 | 1 | 0% | 3,348 | 5,003 | +49% | 0 | 0 | — |
case-08 | pass→pass | 18,646 | 4,489 | -76% | 1 | 1 | 0% | 3,283 | 1,763 | -46% | 0 | 0 | — |
case-02 | fail→fail | 27,210 | 18,752 | -31% | 1 | 1 | 0% | 4,401 | 4,791 | +9% | 0 | 0 | — |
case-03 | fail→fail | 23,108 | 25,945 | +12% | 1 | 1 | 0% | 3,926 | 5,802 | +48% | 0 | 0 | — |
case-04 | fail→fail | 13,920 | 17,381 | +25% | 1 | 1 | 0% | 2,259 | 4,067 | +80% | 0 | 0 | — |
case-05 | fail→pass | 18,144 | 11,089 | -39% | 1 | 1 | 0% | 3,190 | 3,096 | -3% | 0 | 0 | — |
case-06 | pass→pass | 18,311 | 23,440 | +28% | 1 | 1 | 0% | 2,643 | 5,428 | +105% | 0 | 0 | — |
case-07 | pass→pass | 11,779 | 20,698 | +76% | 1 | 1 | 0% | 1,805 | 5,036 | +179% | 0 | 0 | — |
case-09 | fail→pass | 13,421 | 13,870 | +3% | 1 | 1 | 0% | 2,131 | 3,441 | +61% | 0 | 0 | — |
case-10 | fail→fail | 15,304 | 8,006 | -48% | 1 | 1 | 0% | 2,697 | 2,430 | -10% | 0 | 0 | — |
case-11 | pass→pass | 15,475 | 7,993 | -48% | 1 | 1 | 0% | 2,824 | 2,511 | -11% | 0 | 0 | — |
case-12 | pass→pass | 14,703 | 11,554 | -21% | 1 | 1 | 0% | 2,379 | 2,823 | +19% | 0 | 0 | — |
case-13 | pass→pass | 15,567 | 17,530 | +13% | 1 | 1 | 0% | 2,715 | 4,114 | +52% | 0 | 0 | — |
case-14 | fail→pass | 9,756 | 5,514 | -43% | 1 | 1 | 0% | 1,567 | 1,864 | +19% | 0 | 0 | — |
case-15 | fail→pass | 12,046 | 6,336 | -47% | 1 | 1 | 0% | 2,149 | 2,160 | +1% | 0 | 0 | — |
case-16 | fail→pass | 11,986 | 3,280 | -73% | 1 | 1 | 0% | 1,963 | 1,567 | -20% | 0 | 0 | — |
case-17 | pass→pass | 19,153 | 16,155 | -16% | 1 | 1 | 0% | 2,823 | 3,778 | +34% | 0 | 0 | — |
case-18 | pass→pass | 15,654 | 5,559 | -64% | 1 | 1 | 0% | 2,396 | 1,927 | -20% | 0 | 0 | — |
case-19 | pass→pass | 18,155 | 7,998 | -56% | 1 | 1 | 0% | 2,913 | 2,382 | -18% | 0 | 0 | — |
case-20 | pass→pass | 10,717 | 15,870 | +48% | 1 | 1 | 0% | 1,899 | 3,929 | +107% | 0 | 0 | — |
case-21 | pass→pass | 17,041 | 18,682 | +10% | 1 | 1 | 0% | 4,036 | 5,469 | +36% | 0 | 0 | — |
case-22 | pass→pass | 21,546 | 22,744 | +6% | 1 | 1 | 0% | 5,154 | 5,835 | +13% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +27 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.