Clinical Research Philadelphia
Self-build · ~2 minutes

Add your site to the comparison

Your Claude Code reads your own repo and builds your capability map — and, if you want, your own decks. Nothing to fill in by hand. You review it before anything is shared.

← Back to overview

How it works

1

Run one line

In your platform repo, paste the command below into Claude Code.

2

Review the map

It scans your repo and proposes 20 live / building / no rows. Fix anything wrong.

3

Submit

One command (or email the small file back). Your column appears on the comparison live.

Step 1 — the one line

Run this inside your platform repo, then paste the prompt below when asked:

Terminal · in your repo
claude "Read the prompt I'm about to paste and do exactly what it says: scan THIS repo, build our capability map, show it to me, then stop."

Step 2 — the prompt to paste

Self-contained — the full taxonomy is built in, so there's nothing to download first.

Paste into Claude Code
You are describing our clinical-research operations platform so three sites can compare what we've each built. Work only from evidence in THIS repo (code, configs, scheduled jobs, docs, READMEs). Don't invent capabilities; don't include any secrets, PHI, patient/sponsor/staff names, dollar figures, or study identifiers - capability level only.

The 20 capabilities below are a SHARED REFERENCE VOCABULARY - a common set of words so three different platforms can be lined up side by side. They are NOT a checklist you have to match. Every site solves these differently, skips some that don't fit, and builds things that aren't on the list at all. If you do something differently, say so in the note + data sources; if you've built something that isn't in this list, add it under "extras". Don't bend your reality to fit a row.

The shared vocabulary (20 capabilities, 6 groups):

Getting patients in
- leads_autocollect - Auto-collect leads from website + ads (web-form / ad-platform webhooks landing in a CRM)
- eligibility_match - Auto-check which studies a lead qualifies for (criteria/rules engine at intake)
- recruiter_prioritize - Tell recruiters who to call first + track response speed (call-back queue; speed-to-lead)
- online_booking_reminders - Online booking + automatic visit reminders (self-serve booking; SMS/email reminders)
- winback - Win back no-shows / cancellations / unfinished forms (re-engagement; partial-form rescue)

Running the day
- daily_visit_board - One screen for the day's visits + what's missing (schedule view with readiness flags)
- scheduling_guards - Catch scheduling mistakes before they happen (double-book / wrong-site / wrong-time / same-patient-two-sites checks)

Handling the messages
- auto_patient_comms - Automatic patient texts/emails with safety guardrails (DNC / throttle / dedup / quiet-hours)
- inbound_triage - AI reads + routes incoming faxes and voicemails (LLM classify + route)
- ai_voice - AI voice agent that pre-screens by phone (conversational voice agent)

Getting paid
- revenue_ar - Track revenue / invoices / what's owed (per-study revenue, invoices, AR aging)
- per_study_profit - Profit per study after costs (revenue minus allocated cost; margin per study)
- billing_writeback - Auto-update the billing / finance system (write payment/invoice status back into the EDC or accounting system)
- auto_collections - Automatic collections / dunning (overdue-AR chase, ideally behind a reconciliation gate)

Safe & compliant
- rbac_phi - Role-based access + patient-data protection (RBAC + PHI perimeter)
- data_quality_audit - Daily automatic data-quality checks + audit trail (scheduled cross-system audits + append-only log)
- rule_checks - Every important rule has an automatic test (rule-to-check coverage / lint tripwires)

Automation & platform
- assistant_agents - Assistant agents that flag what needs attention (recommend-not-act, with a human approval step)
- design_system - One shared design system across all screens (component library used everywhere)
- patient_provider_surfaces - A patient website + a referring-doctor portal (public eligibility/booking site; provider portal)

For each capability, from the evidence in the repo, give:
- status - live (built and running in production), building (partial, in progress, OR built but switched off behind a flag - say which in the note), or none (we don't have it). Judge from evidence, not optimism.
- note - <= 14 words: how we actually do it, or why it's absent. If your approach differs from the description above, this is where you say so.
- dataSources - the EXTERNAL vendors / generic system categories that feed this capability: your EDC, ad platforms, telephony, accounting system, e-sign, CRM, data warehouse, etc. Use vendor or category names (e.g. "Meta Ads", "EDC", "VoIP/telephony", "accounting system") - NOT internal table, service, file, or function names. Capability level only. For none, leave it [].
- useCases - short phrases for what it's used for / who it's for (e.g. "recruiters triage callbacks", "finance AR review"). For none, leave it [].

extras - anything you've built that ISN'T in the 20 above. Add one entry per extra capability, same fields (label, status, dataSources, useCases, note). If there's nothing extra, use an empty array. Don't pad it - only real things in the repo.

Emit one file <your-slug>.json in this shape - one entry per capability id, every id present exactly once, plus the extras array. Use the slug your site is listed under on the comparison so your column and logo fill in: West Clinical Research = west, ALSA Research = alsa. (A new/unknown slug just creates a fresh unlabeled column.)

{
  "slug": "your-site-slug",
  "site": "Your Site Name",
  "generated": "YYYY-MM-DD",
  "taxonomyVersion": "2.0",
  "capabilities": {
    "leads_autocollect": {
      "status": "live",
      "note": "Web forms + ad webhooks land directly in our CRM",
      "dataSources": ["website forms", "Meta Ads", "Google Ads", "CRM"],
      "useCases": ["intake capture", "recruiters work new leads"]
    },
    "eligibility_match": {
      "status": "building",
      "note": "Rules engine at intake; criteria still being loaded per study",
      "dataSources": ["EDC", "CRM"],
      "useCases": ["auto-suggest studies for a new lead"]
    },
    "recruiter_prioritize": { "status": "none", "note": "...", "dataSources": [], "useCases": [] }
    // ... one entry for every remaining id, every id present exactly once
  },
  "extras": [
    {
      "label": "A capability we built that is NOT in the shared list",
      "status": "live",
      "dataSources": ["..."],
      "useCases": ["..."],
      "note": "<=14 words on what it is"
    }
    // ... or [] if you have no extras
  ]
}

Show me the file before saving, and flag any capability you weren't sure about so I can correct it. You know our site better than the repo does - fix anything that's wrong.

Optional: once your map is done, ask it to "also build a capabilities.html and architecture.html deck for our site, capability level only" — full instructions are in the downloadable BUILD.md.

Step 3 — submit

The comparison is live — your column fills in within seconds of submitting and refreshes whenever you re-submit. Easiest is to just reply to the email with your <slug>.json attached; or, if Aneesh sent you a submit URL + key, one command puts it on the comparison instantly:

Terminal
curl -sS -X POST "<submit-url>/submit" -H "x-kit-key: <key>" -H "content-type: application/json" --data-binary @your-slug.json

Or download the kit

Same thing as files, if you'd rather hand them to your CLI directly:

BUILD.md the full prompt + deck builder taxonomy.json the 20-capability schema crp.json our filled map (reference) what-we-built.md our plain-English summary
Capability level only — nothing in here is proprietary, and we're not asking for anything proprietary back. Questions? aneesh@phillyresearch.com.