The React dashboard at madescientificai.com — eyes onto everything the backend produces. 12 sections, 8 months of iteration, driven by the team's daily needs.
Made Minimal is the UX layer at madescientificai.com. Built on the Lovable platform, connected to Made's Transfer DB, codebase at MADE-SCI/minimal-science-hub on GitHub.
This isn't a CRM replacement. It's the operator cockpit — the reps don't need to understand the news pipeline or clinical trials API. They open Made Minimal, and the data is there, filtered, scored, and ready to act on.
The dashboard has been iterated through dozens of versions since the first mockup in October 2025. Melody shaped the layout. Lucy's campaign needs drove the campaign tracker. Greg's execution defined the outreach interface. Joe's architecture shaped the data model underneath.
3,973 CGT-gated companies, each a clickable record: company profile, ICP tier, clinical trials, drug candidates, contacts (sorted by department/seniority), LinkedIn URLs, email addresses, campaign history, news mentions, social engagement. The "gold sheet" from the backend, surfaced in a UI.
9 server-side filter dimensions that turn the scored account universe into outreach lists:
Filters: ICP Tier, Development Stage, Modality, Geography, Seniority, Department, Enrichment Status, Campaign Status, Event Participation. Real-time stats bar updates as you filter.
Made Account Scoring — v1.0 handed off May 6, 2026. Multi-signal composite: ICP fit (T-M-C-R model), engagement signals (LinkedIn accepts, email opens, replies), intelligence density (how much we know), campaign history. Scores surface on account records and List Builder filters.
Joe's May 5 front-end. The 38-row messaging matrix — persona × ICP tier × messaging angle — is now editable through the UX. Reps and Lucy can view current assignments, adjust pain points and CTAs, preview effects on message generation.
| Feature | What It Shows |
|---|---|
| Campaign overview | 28 campaigns — status, sender, channel, contact count, response rate |
| Contact timeline | Per-contact: every touchpoint across LinkedIn and email, chronological |
| Executive leaderboards | Sender performance across campaigns |
| Campaign tasks | 519 pending follow-ups visualized per rep |
| Cross-channel merge | Same contact in LinkedIn + email → unified view |
Per-contact interface: select contact → choose sender (each has a voice profile) → select persona and CGT focus → generate via generate-outreach-message v93 → review, edit, queue. The AI references Clay enrichment (clayHeadline, claySummary) and company positioning JSON.
Campaign-level: select list (e.g., ISCT 1,027 contacts) → configure sender/persona/tone → batch generate → review sample → push to HeyReach or EmailBison. This is how ISCT launched: 1,027 contacts, 3 senders, each message personalized.
Articles from the News Pipeline (2× daily, 18 RSS + 5 NewsAPI queries). Per-article relevance scores, entity tagging, market context, bookmarking and filtering. Made sees only made_sci scoped articles.
LinkedIn engagement via Trigify webhooks: who engages with Made's posts, who engages with competitors, warm prospect flagging. Note: PhantomBuster likers/commenters pipeline degraded. Trigify webhooks still working. Data may be partially stale.
AI content generation: LinkedIn drafts using each member's voice profile, content hooks from news/trials data, hook library, pillar alignment, image generation via DALL-E 3.
Opportunities, stages, revenue forecasting. Synced from Salesforce via Joe's 2–3×/daily cron.
14-section built-in guide at /user-guide. Feedback widget on every page writes to user_feedback table — bugs, feature requests, comments without leaving the dashboard.
Email and LinkedIn are different channels, but they reach the same people. The unified contact view shows LinkedIn status, email status, both timelines merged, and "has been contacted via" badges. When a contact accepts a LinkedIn connection AND opens an email, the system flags it as warm.
| Source | Cadence | Health |
|---|---|---|
| HeyReach campaigns | Every 6h + 15-min accepts | Live |
| EmailBison stats | Every 6h | Live |
| Salesforce | 2–3× daily | Live |
| HubSpot contacts | Nightly | Live |
| Monday.com | 3× daily | Live |
| PandaDoc | 3× daily | Live |
| News Intelligence | 2× daily | Live |
| Social Listening | Every 4h | Partially stale |