medical-conference-search

Search medical conference and presentation databases. Use this skill whenever the user asks about medical conferences, academic conferences, session abstracts, posters, oral presentations, or conference-presented drug/trial data. Three scripts are available: search_conferences.py (find conferences), search_presentations.py (find abstracts/presentations), and search_chained.py (find conferences then auto-inject into presentation search). Trigger words include: conference, symposium, congress, ASCO, ESMO, AHA, ACC, session, abstract, poster, oral presentation, data presented at, efficacy data, safety data, congress abstract.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "medical-conference-search" with this command: npx skills add bombert/medical-conference

Conference Search Skill

This skill searches a conference and presentation database using three independent scripts. Choose the script that fits the task — each can be used standalone, or combined in sequence.


Scripts Overview

ScriptWhen to use
scripts/search_conferences.pyFind conferences by name, date, location, or therapeutic area
scripts/search_presentations.pyFind abstracts/presentations when you already know the conference name or series
scripts/search_chained.pyDiscover the conference first, then auto-inject its name into a presentation search

Script 1 — Search Conferences Only

Use when the user asks about which conferences exist, when/where they are held, or wants to browse conferences by area or organization.

python scripts/search_conferences.py --params '<JSON>'
python scripts/search_conferences.py --params-file query.json
python scripts/search_conferences.py --params '<JSON>' --raw
python scripts/search_conferences.py --params '<JSON>' --output results.json

Query fields

FieldTypeDescriptionExample
conference_namestrFull or partial conference name"ASCO Annual Meeting 2024"
conference_start_datestrStart date (YYYY-MM-DD)"2024-06-01"
conference_end_datestrEnd date (YYYY-MM-DD)"2024-06-05"
conference_locationstrCity, country, or venue"Chicago"
series_namestrConference series name"ASCO"
series_organizationstrOrganizing body"American Society of Clinical Oncology"
from_nintPagination offset0
sizeintResults per page50

Examples

# Find all ASCO conferences
python scripts/search_conferences.py --params '{"series_name": "ASCO"}'

# Conferences in Chicago in 2024
python scripts/search_conferences.py --params '{"conference_location": "Chicago", "conference_start_date": "2024-01-01", "conference_end_date": "2024-12-31"}'

# ESMO conferences, raw JSON
python scripts/search_conferences.py --params '{"series_name": "ESMO"}' --raw

Result fields

conference_name, conference_abbreviation, conference_website, conference_description, conference_start_date, conference_end_date, conference_location, series_id, series_name, series_abbreviation, series_website, series_organization


Script 2 — Search Presentations Only

Use when the user asks about specific drugs, diseases, targets, authors, or institutions and already knows (or doesn't need to filter by) an exact conference. The series_name field is sufficient for most queries.

python scripts/search_presentations.py --params '<JSON>'
python scripts/search_presentations.py --params-file query.json
python scripts/search_presentations.py --params '<JSON>' --raw
python scripts/search_presentations.py --params '<JSON>' --output results.json

Query fields

FieldTypeDescriptionExample
authorsList[str]Presenter / author name(s)["John Smith"]
institutionsList[str]Author institution(s)["MD Anderson"]
drugsList[str]Drug name(s)["pembrolizumab"]
diseasesList[str]Disease / indication(s)["lung cancer", "NSCLC"]
targetsList[str]Biological target(s)["PD-1", "VEGF"]
conference_namestrExact conference name"2024 ASCO Annual Meeting"
series_namestrConference series name"ESMO"
from_nintPagination offset0
sizeintResults per page10

Examples

# Pembrolizumab lung cancer abstracts at ESMO
python scripts/search_presentations.py --params '{"drugs": ["pembrolizumab"], "diseases": ["lung cancer"], "series_name": "ESMO"}'

# KRAS G12C data from MD Anderson researchers
python scripts/search_presentations.py --params '{"targets": ["KRAS G12C"], "institutions": ["MD Anderson"]}'

# All presentations at a specific conference (exact name required)
python scripts/search_presentations.py --params '{"conference_name": "2024 ASCO Annual Meeting", "diseases": ["NSCLC"]}'

# Save to file
python scripts/search_presentations.py --params '{"drugs": ["nivolumab"]}' --output results.json

Result fields

session_title, presentation_title, presentation_website, main_author, main_author_institution, authors, institutions, abstract, design, efficacy, safety, summary, drugs, diseases, targets, series_name, conference_name


Script 3 — Chained Search (Conference → Presentation)

Use when you need to find the exact conference first, then search its presentations. The top-matching conference_name from Step 1 is automatically injected into Step 2 — no manual copy-paste needed.

python scripts/search_chained.py \
    --conference-params '<JSON>' \
    --presentation-params '<JSON>'

# With file inputs
python scripts/search_chained.py \
    --conference-params-file conf.json \
    --presentation-params-file pres.json

# Raw JSON + save to file
python scripts/search_chained.py \
    --conference-params '<JSON>' \
    --presentation-params '<JSON>' \
    --raw --output results.json

Examples

# PD-1 data at ASCO 2024 (auto-resolves conference name)
python scripts/search_chained.py \
    --conference-params '{"series_name": "ASCO", "conference_start_date": "2024-01-01", "conference_end_date": "2024-12-31"}' \
    --presentation-params '{"targets": ["PD-1"]}'

# Roche bispecific antibodies at ASH conferences
python scripts/search_chained.py \
    --conference-params '{"series_name": "ASH"}' \
    --presentation-params '{"drugs": ["bispecific antibody"], "institutions": ["Roche"]}'

Choosing the Right Script

User asks about conferences / dates / locations
  → search_conferences.py

User asks about drug / disease / abstract data, knows the series (e.g. "at ESMO")
  → search_presentations.py  (use series_name field)

User asks about drug / disease / abstract data, knows the year but not exact conference name
  → search_chained.py  (resolves conference_name automatically)

Fallback Search Strategies

When an initial query returns zero or poor results, try these strategies in order:

Strategy 1 — Conference Name / Series Variant Expansion

Conference abbreviations and full names are often stored inconsistently. Try common variants before giving up.

# Try abbreviation first, then full name
python scripts/search_conferences.py --params '{"series_name": "ASCO"}'
python scripts/search_conferences.py --params '{"series_name": "American Society of Clinical Oncology"}'

# Try alternate known abbreviations
# ESMO → "European Society for Medical Oncology"
# AHA  → "American Heart Association"
# ACC  → "American College of Cardiology"

For presentations, switch from conference_name (exact match) to series_name (fuzzy):

# Exact match — fails if name is slightly off
--params '{"conference_name": "2024 ASCO Annual Meeting", ...}'

# Safer fallback — use series instead
--params '{"series_name": "ASCO", ...}'

Strategy 2 — Switch to Chained Search

If search_presentations.py returns nothing with a manually typed conference_name, the name is likely mismatched. Let search_chained.py resolve it automatically.

# Instead of (may fail on exact name mismatch):
python scripts/search_presentations.py \
  --params '{"conference_name": "ASCO 2024", "drugs": ["pembrolizumab"]}'

# Use chained (auto-resolves correct conference_name):
python scripts/search_chained.py \
  --conference-params '{"series_name": "ASCO", "conference_start_date": "2024-01-01", "conference_end_date": "2024-12-31"}' \
  --presentation-params '{"drugs": ["pembrolizumab"]}'

Strategy 3 — Drug / Disease Term Expansion

Drug names and disease terms in abstracts may use brand names, INNs, aliases, or abbreviations. Expand the drugs or diseases list to cover variants.

# Expand drug name variants
--params '{"drugs": ["SHR-A1904", "SHR A1904", "A1904"], "series_name": "ASCO"}'

# Expand disease terms (specific → broad)
--params '{"diseases": ["NSCLC", "non-small cell lung cancer", "lung cancer"], "series_name": "ESMO"}'

# Try target if drug name fails entirely
--params '{"targets": ["CLDN18.2", "Nectin-4"], "series_name": "ASCO"}'

Strategy 4 — Institution-First Search

When drug name and disease matching both fail, anchor on the presenting institution or author and filter results locally.

# Broad institutional pull
python scripts/search_presentations.py \
  --params '{"institutions": ["Jiangsu Hengrui", "Hengrui Medicine"], "series_name": "ASCO", "size": 100}'

# Then filter locally by drug name pattern or disease keyword

Strategy 5 — Relax Filters Incrementally

Drop constraints one at a time in this order:

  1. Remove conference_name → use series_name only
  2. Remove date range constraints
  3. Broaden diseases (e.g. "NSCLC""lung cancer""cancer")
  4. Remove series_name to search across all conferences
  5. Search by targets alone if drug name is unknown

Decision Tree

Query returns results?
├── Yes → present results
└── No (presentations) →
      Strategy 1: switch conference_name → series_name
      └── Still no → Strategy 2: switch to search_chained.py
                     └── Still no → Strategy 3: expand drugs / diseases / targets terms
                                    └── Still no → Strategy 4: institution anchor + local filter
                                                   └── Still no → Strategy 5: relax filters incrementally

No (conferences) →
      Strategy 1: try series abbreviation ↔ full name swap
      └── Still no → try different series_name or remove location filter

Any step hits HTTP 429?
└── Pause entire chain 30s → resume from current strategy
    (sleep ≥5s between every request to avoid triggering 429)

Conversion Examples

User: "What PD-1 drug data was presented at ASCO 2024?"

python scripts/search_chained.py \
  --conference-params '{"series_name": "ASCO", "conference_start_date": "2024-01-01", "conference_end_date": "2024-12-31"}' \
  --presentation-params '{"targets": ["PD-1"]}'

User: "Pembrolizumab lung cancer abstracts from ESMO"

python scripts/search_presentations.py \
  --params '{"drugs": ["pembrolizumab"], "diseases": ["lung cancer"], "series_name": "ESMO"}'

User: "Oncology conferences in Chicago 2024"

python scripts/search_conferences.py \
  --params '{"conference_location": "Chicago", "conference_start_date": "2024-01-01", "conference_end_date": "2024-12-31"}'

User: "KRAS G12C presentations by MD Anderson researchers"

python scripts/search_presentations.py \
  --params '{"targets": ["KRAS G12C"], "institutions": ["MD Anderson"]}'

User: "Roche bispecific antibody data at ASH conferences"

python scripts/search_chained.py \
  --conference-params '{"series_name": "ASH"}' \
  --presentation-params '{"drugs": ["bispecific antibody"], "institutions": ["Roche"]}'

Tips

  • If no results are returned, try relaxing filters (e.g. use series_name instead of conference_name, or broaden the disease term).
  • conference_name in search_presentations.py must be an exact match — use search_chained.py or run search_conferences.py first to get the correct name.
  • All List[str] fields accept multiple values: ["NSCLC", "lung cancer"].

Dependencies

  • Python 3.8+
  • requests library (pip install requests)
  • Environment variable NOAH_API_TOKEN — register at noah.bio to obtain your API key.

Security & Packaging Notes

  • This skill only calls NoahAI official HTTPS endpoints under https://www.noah.bio/api/ and does not contact third-party services.
  • It requires exactly one environment variable: NOAH_API_TOKEN. Store it in the environment or a local .env file, and never place it inline in commands, chats, or packaged files.
  • The token is scoped to read medical public details only and cannot access private user records.
  • The skill does not intentionally persist request parameters locally. Any server-side retention is determined by the NoahAI API service and its operational logging policies.
  • It does not request persistent or system-level privileges and does not modify system configuration.
  • The skill is source-file based (Python scripts only) and does not require runtime installs, package downloads, or external bootstrap steps.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Research

Philosophical Three Questions

A structured decision framework for embodied navigation using Goal Tree, Current State Tree, and Future Tree analysis. Use when: making navigation decisions...

Registry SourceRecently Updated
Research

FN Portrait Toolkit

Financial report footnote extraction and analysis tool for Chinese A-share listed companies. Use when: (1) User wants to extract financial note data from ann...

Registry SourceRecently Updated
Research

SEO AGI (Multi-Agent SEO: Research → Gap Analysis → Write → Validate → Ship)

Write SEO pages that rank in Google AND get cited by LLMs (ChatGPT, Perplexity, Claude). Use when creating airport parking pages, local service pages, listic...

Registry SourceRecently Updated
Research

Knowledge Gaps

Track questions Hans failed to answer and flag missing knowledge

Registry SourceRecently Updated