Skip to content
FIM / blog

Vibe Coding a Clinical Decision Support Bot with FutureX

A hands-on walkthrough of vibe coding a clinical decision support bot with FutureX, turning ScienceDaily headlines about GLP-1 and gene therapy into structured alerts.

FT
FIM Team

5 min read

Vibe coding flips the relationship between developer and compiler. Instead of writing every line of implementation, you describe the behavior you want in natural language and let FIM's coding agent, FutureX, turn that description into working software. This post walks through a real project: a clinical decision support bot that scrapes ScienceDaily's health section, parses headlines about drug classes from GLP-1 receptor agonists to gene therapies, and emits structured alerts for clinicians and researchers. The entire system was built and refined through natural language programming, with no hand-written boilerplate required.

Why Clinicians Need Structured Medical News#

A busy clinician might skim a handful of journals, but nobody can monitor every press release and research summary. Headlines arrive at high velocity and low signal-to-noise. When a new GLP-1 trial reports weight-loss outcomes, or a gene therapy shows efficacy in a rare disease, the information is buried in academic phrasing that takes time to interpret.

A clinical decision support bot changes that. It ingests a feed, classifies each item by drug class, mechanism, and evidence type, and produces a normalized alert: what changed, who it affects, and what action might follow. The challenge is that the interpretation rules are subtle. You want the bot to flag a phase 3 GLP-1 result but ignore an unrelated company press release. You want gene therapy news tagged with the vector and delivery method.

Vibe coding is a natural fit here because the hard part is domain logic, not plumbing. Scraping, scheduling, and formatting are solved problems. The interpretation layer is something you would rather describe in English than encode in a brittle if-else tree.

Diagram of FutureX converting a natural language specification into a scraping, parsing, and alerting pipeline

Bootstrapping with Natural Language Programming#

The first prompt to FutureX was deliberately broad: "Create a Python script that fetches the health section of ScienceDaily, extracts headlines, and saves them to a JSON file." FutureX produced a working scraper within seconds, using requests and BeautifulSoup, and included polite rate limiting and error handling.

The second prompt added structure: "Parse each headline into fields for drug class, condition, study phase, and population, with a confidence score." At this point FutureX modified the pipeline to introduce a parsing module built from extraction rules with a fallback for ambiguous headlines.

Natural language programming is iterative. Rather than describing the entire system up front, each prompt refines the previous behavior. This mirrors how you would brief a junior engineer, except the loop takes seconds rather than days.

Parsing Headlines into Structured Alerts#

The core of the bot is the parse step. A headline like "Semaglutide reduces cardiovascular events in overweight adults" needs to become a structured record:

  • Drug class: GLP-1 receptor agonist
  • Condition: cardiovascular disease
  • Population: overweight adults
  • Evidence: cohort study
  • Signal: positive

FutureX implemented this with a two-stage parser. The first stage matched known drug names and classes. The second stage handled the rest with a lightweight entity extraction model that the agent fine-tuned on a few hundred labeled headlines.

This is where vibe coding pays off. The labeling instructions were communicated in plain English: "Flag any headline mentioning GLP-1, semaglutide, liraglutide, or tirzepatide as GLP-1 class. For gene therapy, detect AAV, lentiviral, CRISPR, and base editing terms."

Alert Levels#

The agent also designed an alert schema that we tuned through conversation. Every alert carries a severity level:

  1. Informational — new mechanism or animal study
  2. Watch — phase 2 results or subgroup analysis
  3. Action — phase 3 results or regulatory submission

This hierarchy lets a researcher subscribe to everything while a clinician only receives Action-level alerts.

Mockup of the alert output showing structured fields for a GLP-1 headline and a gene therapy headline

From GLP-1 to Gene Therapy: Building the Alert Rules#

The bot shines when the topic shifts. GLP-1 receptor agonists are a high-volume area, with new headlines weekly about weight loss, cardiovascular outcomes, and metabolic side effects. Gene therapy news is sparser but higher stakes, often involving FDA designations or trial holds.

FutureX handled both by separating topic rules from the alerting engine. Each topic gets a configuration block:

Python
TOPICS = {
    'glp1': {
        'terms': ['glp-1', 'semaglutide', 'liraglutide', 'tirzepatide'],
        'alert_terms': ['phase 3', 'fda approved', 'cardiovascular'],
        'min_severity': 'watch',
    },
    'gene_therapy': {
        'terms': ['aav', 'lentiviral', 'crispr', 'base editing', 'car-t'],
        'alert_terms': ['trial hold', 'fda', 'overall survival'],
        'min_severity': 'action',
    },
}

These blocks were not written by hand. They came from a simple instruction: "Add a new topic for gene therapy with stricter thresholds." FutureX generated the config, regenerated the parsing rules, and ran the test suite against a sample of headlines.

What the Agentic Pipeline Looks Like#

The final system is a small agentic pipeline. A scheduler fetches ScienceDaily every six hours. The parser normalizes each headline. The classifier assigns severity. An alert generator composes a summary email and posts to a Slack channel.

One subtle behavior required several rounds of prompting: deduplication. ScienceDaily often syndicates the same study across multiple sections. FutureX added a fingerprinting step that hashes normalized headline text, so a re-published item does not trigger a duplicate alert.

Architecture diagram showing the scheduler, scraper, parser, classifier, and alert delivery stages of the bot

Guardrails for a Clinical Decision Support Bot#

A clinical decision support bot needs boundaries. FutureX does not provide medical advice, and every alert is framed as a research update rather than a recommendation. Those guardrails were specified explicitly during vibe coding.

When FutureX generated the alert email template, it added a disclaimer and a link to the original article. When asked to "suggest clinical actions," the generated code refused to go further: alert text is limited to factual statements about the study.

This is an important lesson for vibe coding in regulated territory. The agent will happily implement what you ask, so your natural language spec must include constraints.

Conclusion#

This project shows that vibe coding is not just for prototypes. With FutureX on FIM, a non-coder can build a functional clinical decision support bot that monitors medical news, normalizes it into structured alerts, and distinguishes a phase 3 GLP-1 result from a rumor. Natural language programming makes the system modifiable in minutes: add a topic, tune a threshold, or change the alert format without reading the whole codebase.

The takeaway is that the quality of the spec determines the quality of the system. FutureX amplifies intent; it does not invent it. Describe the domain rules, the guardrails, and the failure modes, and the agent turns them into a pipeline that a clinician could plausibly use on Monday morning.

Share this article