Generated banner for Citation Management
Generated logo for Citation Management

Citation Management

K-DenseCommunityCreated by K-Dense Inc.

  • Skill
  • Tool integration
  • Science and research
  • MIT
  • Low risk
  • Has scripts

From the author

Comprehensive citation management for academic research. Search OpenAlex, PubMed, and Google Scholar for papers, extract accurate metadata, validate citations, and generate properly formatted BibTeX entries. This skill should be used when you need to find papers, verify citation information, convert DOIs to BibTeX, or ensure reference accuracy in scientific writing.
— the description by K-Dense Inc.

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides a structured approach to managing academic references throughout the research and writing lifecycle. It enables users to search major academic databases, extract and enrich metadata from various identifiers, validate citation accuracy, and generate standardized BibTeX entries. By automating the retrieval and cleaning of bibliographic data, it helps maintain consistent and accurate references for manuscripts and theses.

What it does

  • Searches OpenAlex, PubMed, and Google Scholar for academic papers
  • Extracts metadata from DOIs, PMIDs, arXiv IDs, and URLs
  • Validates citation completeness and verifies DOI accuracy
  • Generates and cleans BibTeX entries for LaTeX integration
  • Deduplicates references merged from multiple sources
  • Enriches incomplete records using automated web searches

When to use it

  • When building a bibliography for a research paper or thesis
  • When converting identifiers like DOIs or PMIDs into BibTeX
  • When verifying the accuracy of existing citations
  • When standardizing citation keys and formatting across a project
  • When searching for literature across multiple academic databases

Advantages

  • Reduces manual data entry for bibliographic records
  • Ensures consistent citation formatting for academic submissions
  • Supports systematic literature discovery across diverse sources
  • Automates the detection of missing fields and duplicate entries
  • Integrates with standard LaTeX workflows

Usage examples

“Find 50 papers on CRISPR gene editing using OpenAlex and save to results.json.”
The agent executes the search script and saves the retrieved metadata into the specified JSON file.
“Convert this DOI 10.1038/s41586-021-03819-2 to a BibTeX entry.”
The agent extracts the metadata and returns a properly formatted BibTeX block.
“Validate my references.bib file and generate a report.”
The agent checks the file for missing fields, malformed years, and unresolved citations, outputting a report.json.
“Clean and deduplicate my references.bib file.”
The agent processes the file to standardize formatting and remove duplicate entries, outputting a clean.bib file.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/k-dense-ai/citation-management-cifo/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip citation-management.zip -d .agents/skills

Documentation by K-Dense Inc.

Citation Management

Overview

Manage citations systematically throughout the research and writing process. This skill provides tools and strategies for searching academic databases (Google Scholar, PubMed), extracting accurate metadata from multiple sources (CrossRef, PubMed, arXiv), validating citation information, and generating properly formatted BibTeX entries.

Critical for maintaining citation accuracy, avoiding reference errors, and ensuring reproducible research. Integrates seamlessly with the literature-review skill for comprehensive research workflows.

When to Use This Skill

Use this skill when:

  • Searching for specific papers on Google Scholar or PubMed

  • Converting DOIs, PMIDs, or arXiv IDs to properly formatted BibTeX

  • Extracting complete metadata for citations (authors, title, journal, year, etc.)

  • Validating existing citations for accuracy

  • Cleaning and formatting BibTeX files

  • Finding highly cited papers in a specific field

  • Verifying that citation information matches the actual publication

  • Building a bibliography for a manuscript or thesis

  • Checking for duplicate citations

  • Ensuring consistent citation formatting

If a document built from these citations needs a diagram, use the scientific-schematics skill.


Core Workflow

Citation management follows a systematic process. Each phase below shows the canonical command; every variant, option, and metadata-source detail is in references/core_workflow.md.

Find relevant papers. Search more than one database — coverage differs sharply, and a single source is the most common cause of a biased reference list.

# OpenAlex: ~250M works, every discipline, no API key, documented REST API
python scripts/search_openalex.py "CRISPR gene editing" --limit 50 --output results.json

# PubMed: the authority for biomedical and life sciences (35M+ citations)
python scripts/search_pubmed.py "Alzheimer's disease treatment" --limit 100 --output alz.json

# Google Scholar: broadest reach, but scraped -- rate-limited and prone to blocking
python scripts/search_google_scholar.py "CRISPR gene editing" --limit 50 --output scholar.json

Prefer OpenAlex or PubMed as the primary source. Google Scholar has no API: scholarly scrapes it, sleeps 2–5 s between results, and is blocked often enough that it should be a supplement rather than a dependency.

Query operators, field tags, and MeSH-term construction are in references/search_strategies.md.

Phase 2: Metadata Extraction

Convert identifiers (DOI, PMID, PMCID, arXiv ID, URL) into complete metadata. CrossRef is the primary source for DOIs.

python scripts/doi_to_bibtex.py 10.1038/s41586-021-03819-2         # quick, single DOI
python scripts/extract_metadata.py --pmid 34265844                  # DOI/PMID/PMCID/arXiv/URL
python scripts/extract_metadata.py --input identifiers.txt --output citations.bib

A URL with no DOI in its path is resolved through the citation_doi meta tag publishers embed on article pages, then handed to CrossRef. Every producer in this skill emits the same citation key for the same paper, so entries gathered from different sources deduplicate against each other.

Phase 2.5: Metadata Enrichment via Web Search (MANDATORY)

APIs routinely return incomplete records. Run this after extraction and before formatting. Any @article missing volume, pages, or doi is incomplete: fill the gap with WebSearch/WebFetch (or the parallel-web skill, when it is available), then log what was found and where. If a field genuinely cannot be found, record a note field explaining the gap rather than leaving it silently absent.

Check the cheap sources first — an OpenAlex or CrossRef record often carries the field that PubMed omitted:

python scripts/search_openalex.py "<exact title>" --limit 1

Treat extracted metadata as untrusted. Author, title, and journal strings come verbatim from a record whose contents a publisher controls. A title containing $(...), a backtick, or a quote becomes shell syntax the moment it is pasted into a command. Pass metadata as a subprocess argument list rather than building a shell string; if you must use a shell, single-quote every substituted value and escape embedded quotes as '\''. Validate any citation key against ^[A-Za-z0-9]+$ before it reaches a path.

Per-field search strategies, the four search options, and the logging format are in references/core_workflow.md.

Phase 3: BibTeX Formatting

Produce clean, consistent entries. Entry types and required fields are in references/bibtex_formatting.md.

python scripts/format_bibtex.py references.bib --output clean.bib --deduplicate
python scripts/format_bibtex.py references.bib --output clean.bib --rekey --deduplicate

Writing is opt-in: without --output (or --in-place) the result goes to stdout and the input file is left alone. Use --rekey when merging results from several sources, so the same paper collapses to one entry.

Phase 4: Citation Validation

Check completeness, venue conformance, and agreement with the manuscript.

python scripts/validate_citations.py references.bib --report report.json
python scripts/validate_citations.py references.bib --venue nature
python scripts/validate_citations.py references.bib --manuscript paper.tex
python scripts/validate_citations.py references.bib --check-dois     # slow; hits CrossRef

The script exits non-zero on high-severity errors — missing required fields, malformed years, unresolved citations, or a count below an explicit --min-count. Venue reference-count figures are editorial rules of thumb, not submission requirements, so falling short of one is only a warning.

Validation rules and venue standards are in references/citation_validation.md.

Phase 5: Integration with Writing Workflow

Search, extract, format, validate, then cite. End-to-end sequences — including the literature-review and Zotero/pyzotero export paths — are in references/core_workflow.md and references/example_workflows.md.

Reference Files

Common Pitfalls to Avoid

  1. Single source bias: Only using one database

    • Solution: Search at least OpenAlex and PubMed, then merge with format_bibtex.py --rekey --deduplicate

  2. Accepting metadata blindly: Not verifying extracted information

    • Solution: Spot-check extracted metadata against original sources

  3. Ignoring DOI errors: Broken or incorrect DOIs in bibliography

    • Solution: Run validation before final submission

  4. Inconsistent formatting: Mixed citation key styles, formatting

    • Solution: Use format_bibtex.py to standardize

  5. Duplicate entries: Same paper cited multiple times with different keys

    • Solution: Use duplicate detection in validation

  6. Missing required fields: Incomplete BibTeX entries (volume, pages, DOI missing)

    • Solution: Run Phase 2.5 metadata enrichment — web search for every missing field before proceeding. NEVER leave an @article entry without volume, pages, and DOI.

  7. Outdated preprints: Citing preprint when published version exists

    • Solution: Check if preprints have been published, update to journal version

  8. Special character issues: Broken LaTeX compilation due to characters

    • Solution: Use proper escaping or Unicode in BibTeX

  9. No validation before submission: Submitting with citation errors

    • Solution: Always run validation as final check

  10. Manual BibTeX entry: Typing entries by hand

    • Solution: Always extract from metadata sources using scripts

Integration with Other Skills

Literature Review Skill

Citation Management provides the technical infrastructure for Literature Review:

  • Literature Review: Multi-database systematic search and synthesis

  • Citation Management: Metadata extraction and validation

Combined workflow:

  1. Use literature-review for systematic search methodology

  2. Use citation-management to extract and validate citations

  3. Use literature-review to synthesize findings

  4. Use citation-management to ensure bibliography accuracy

Scientific Writing Skill

Citation Management ensures accurate references for Scientific Writing:

  • Export validated BibTeX for use in LaTeX manuscripts

  • Verify citations match publication standards

  • Format references according to journal requirements

Venue Templates Skill

Citation Management works with Venue Templates for submission-ready manuscripts:

  • Different venues require different citation styles

  • Generate properly formatted references

  • Validate citations meet venue requirements

Resources

Bundled Resources

References (in references/):

  • google_scholar_search.md: Complete Google Scholar search guide

  • pubmed_search.md: PubMed and E-utilities API documentation

  • metadata_extraction.md: Metadata sources and field requirements

  • citation_validation.md: Validation criteria and quality checks

  • bibtex_formatting.md: BibTeX entry types and formatting rules

Scripts (in scripts/):

  • search_openalex.py: OpenAlex search client (no API key)

  • search_pubmed.py: PubMed E-utilities API client

  • search_google_scholar.py: Google Scholar search automation

  • extract_metadata.py: Universal metadata extractor

  • validate_citations.py: Citation validation and verification

  • format_bibtex.py: BibTeX formatter and cleaner

  • doi_to_bibtex.py: Quick DOI to BibTeX converter

  • _common.py: shared BibTeX parser, renderer, and citation-key scheme

Assets (in assets/):

  • bibtex_template.bib: Example BibTeX entries for all types

  • citation_checklist.md: Quality assurance checklist

External Resources

Search Engines:

Metadata APIs:

Tools and Validators:

Citation Styles:

Dependencies

Required Python Packages
uv pip install requests  # HTTP access to CrossRef, PubMed, OpenAlex, arXiv

BibTeX parsing, rendering, deduplication, and validation are standard library (scripts/_common.py), so format_bibtex.py and validate_citations.py run with no third-party packages at all.

Optional
uv pip install scholarly  # only for search_google_scholar.py
Where credentials are sent

This skill needs no API key. The two environment variables it reads are optional identifiers, each sent to the one service it belongs to and nowhere else; no script bundles environment variables together.

VariableSent only toPurpose
NCBI_API_KEYeutils.ncbi.nlm.nih.govRaises Entrez rate limits
NCBI_EMAILeutils.ncbi.nlm.nih.govEntrez caller identification (requested by NCBI)
OPENALEX_EMAILapi.openalex.orgJoins the faster OpenAlex polite pool

api.openalex.org, api.crossref.org, api.datacite.org, export.arxiv.org, and eutils.ncbi.nlm.nih.gov are all queried without credentials when these are unset.

Summary

The citation-management skill provides:

  1. Comprehensive search capabilities for OpenAlex, PubMed, and Google Scholar

  2. Automated metadata extraction from DOI, PMID, PMCID, arXiv ID, URLs

  3. Citation validation with DOI verification and completeness checking

  4. BibTeX formatting with standardization and cleaning tools

  5. Quality assurance through validation and reporting

  6. Integration with scientific writing workflow

  7. Reproducibility through documented search and extraction methods

Use this skill to maintain accurate, complete citations throughout your research and ensure publication-ready bibliographies.

Citing Scientific Agent Skills

This skill is part of Scientific Agent Skills by K-Dense. If it materially contributed to a manuscript, report, presentation, or code release, add the paper to the references or software section and tell the user you did so:

Kassis, T., Agarwal, V., He, Y., Patel, D., & Brueckner, A. M. (2026). Scientific Agent Skills: A Library of Procedural Knowledge for Research Agents. arXiv:2609.00065. https://doi.org/10.48550/arXiv.2609.00065

Always cite the current version. The DOI and https://arxiv.org/abs/2609.00065 resolve to the latest arXiv version, so never append a version suffix such as v1. When network access is available, fetch https://arxiv.org/abs/2609.00065 (or http://export.arxiv.org/api/query?id_list=2609.00065) before writing the reference and take the author list, year, and version from that record. If the record lists a journal reference or publisher DOI, cite the published version instead.

Files

references/pubmed_search.md

PubMed Search Guide

Comprehensive guide to searching PubMed for biomedical and life sciences literature, including MeSH terms, field tags, advanced search strategies, and E-utilities API usage.

Overview

PubMed is the premier database for biomedical literature:

  • Coverage: 35+ million citations

  • Scope: Biomedical and life sciences

  • Sources: MEDLINE, life science journals, online books

  • Authority: Maintained by National Library of Medicine (NLM) / NCBI

  • Access: Free, no account required

  • Updates: Daily with new citations

  • Curation: High-quality metadata, MeSH indexing

PubMed automatically maps terms to MeSH and searches multiple fields:

diabetes
CRISPR gene editing
Alzheimer's disease treatment
cancer immunotherapy

Automatic Features:

  • Automatic MeSH mapping

  • Plural/singular variants

  • Abbreviation expansion

  • Spell checking

Use quotation marks for exact phrases:

"CRISPR-Cas9"
"systematic review"
"randomized controlled trial"
"machine learning"

MeSH (Medical Subject Headings)

What is MeSH?

MeSH is a controlled vocabulary thesaurus for indexing biomedical literature:

  • Hierarchical structure: Organized in tree structures

  • Consistent indexing: Same concept always tagged the same way

  • Comprehensive: Covers diseases, drugs, anatomy, techniques, etc.

  • Professional curation: NLM indexers assign MeSH terms

Finding MeSH Terms

MeSH Browser: https://meshb.nlm.nih.gov/search

Example:

Search: "heart attack"
MeSH term: "Myocardial Infarction"

In PubMed:

  1. Search with keyword

  2. Check "MeSH Terms" in left sidebar

  3. Select relevant MeSH terms

  4. Add to search

Using MeSH in Searches

Basic MeSH search:

"Diabetes Mellitus"[MeSH]
"CRISPR-Cas Systems"[MeSH]
"Alzheimer Disease"[MeSH]
"Neoplasms"[MeSH]

MeSH with subheadings:

"Diabetes Mellitus/drug therapy"[MeSH]
"Neoplasms/genetics"[MeSH]
"Heart Failure/prevention and control"[MeSH]

Common subheadings:

  • /drug therapy: Drug treatment

  • /diagnosis: Diagnostic aspects

  • /genetics: Genetic aspects

  • /epidemiology: Occurrence and distribution

  • /prevention and control: Prevention methods

  • /etiology: Causes

  • /surgery: Surgical treatment

  • /metabolism: Metabolic aspects

MeSH Explosion

By default, MeSH searches include narrower terms (explosion):

"Neoplasms"[MeSH]
# Includes: Breast Neoplasms, Lung Neoplasms, etc.

Disable explosion (exact term only):

"Neoplasms"[MeSH:NoExp]
MeSH Major Topic

Search only where MeSH term is a major focus:

"Diabetes Mellitus"[MeSH Major Topic]
# Only papers where diabetes is main topic

Field Tags

Field tags specify which part of the record to search.

Common Field Tags

Title and Abstract:

cancer[Title]                    # In title only
treatment[Title/Abstract]        # In title or abstract
"machine learning"[Title/Abstract]

Author:

"Smith J"[Author]
"Doudna JA"[Author]
"Collins FS"[Author]

Author - Full Name:

"Smith, John"[Full Author Name]

Journal:

"Nature"[Journal]
"Science"[Journal]
"New England Journal of Medicine"[Journal]
"Nat Commun"[Journal]           # Abbreviated form

Publication Date:

2023[Publication Date]
2020:2024[Publication Date]      # Date range
2023/01/01:2023/12/31[Publication Date]

Date Created:

2023[Date - Create]              # When added to PubMed

Publication Type:

"Review"[Publication Type]
"Clinical Trial"[Publication Type]
"Meta-Analysis"[Publication Type]
"Randomized Controlled Trial"[Publication Type]

Language:

English[Language]
French[Language]

DOI:

10.1038/nature12345[DOI]

PMID (PubMed ID):

12345678[PMID]

Article ID:

PMC1234567[PMC]                  # PubMed Central ID
Less Common But Useful Tags
humans[MeSH Terms]               # Only human studies
animals[MeSH Terms]              # Only animal studies
"United States"[Place of Publication]
nih[Grant Number]                # NIH-funded research
"Female"[Sex]                    # Female subjects
"Aged, 80 and over"[Age]        # Elderly subjects

Boolean Operators

Combine search terms with Boolean logic.

AND

Both terms must be present (default behavior):

diabetes AND treatment
"CRISPR-Cas9" AND "gene editing"
cancer AND immunotherapy AND "clinical trial"[Publication Type]
OR

Either term must be present:

"heart attack" OR "myocardial infarction"
diabetes OR "diabetes mellitus"
CRISPR OR Cas9 OR "gene editing"

Use case: Synonyms and related terms

NOT

Exclude terms:

cancer NOT review
diabetes NOT animal
"machine learning" NOT "deep learning"

Caution: May exclude relevant papers that mention both terms.

Combining Operators

Use parentheses for complex logic:

(diabetes OR "diabetes mellitus") AND (treatment OR therapy)

("CRISPR" OR "gene editing") AND ("therapeutic" OR "therapy") 
  AND 2020:2024[Publication Date]

(cancer OR neoplasm) AND (immunotherapy OR "immune checkpoint inhibitor") 
  AND ("clinical trial"[Publication Type] OR "randomized controlled trial"[Publication Type])

Advanced Search Builder

Access: https://pubmed.ncbi.nlm.nih.gov/advanced/

Features:

  • Visual query builder

  • Add multiple query boxes

  • Select field tags from dropdowns

  • Combine with AND/OR/NOT

  • Preview results

  • Shows final query string

  • Save queries

Workflow:

  1. Add search terms in separate boxes

  2. Select field tags

  3. Choose Boolean operators

  4. Preview results

  5. Refine as needed

  6. Copy final query string

  7. Use in scripts or save

Example built query:

#1: "Diabetes Mellitus, Type 2"[MeSH]
#2: "Metformin"[MeSH]
#3: "Clinical Trial"[Publication Type]
#4: 2020:2024[Publication Date]
#5: #1 AND #2 AND #3 AND #4

Filters and Limits

Article Types
"Review"[Publication Type]
"Systematic Review"[Publication Type]
"Meta-Analysis"[Publication Type]
"Clinical Trial"[Publication Type]
"Randomized Controlled Trial"[Publication Type]
"Case Reports"[Publication Type]
"Comparative Study"[Publication Type]
Species
humans[MeSH Terms]
mice[MeSH Terms]
rats[MeSH Terms]
Sex
"Female"[MeSH Terms]
"Male"[MeSH Terms]
Age Groups
"Infant"[MeSH Terms]
"Child"[MeSH Terms]
"Adolescent"[MeSH Terms]
"Adult"[MeSH Terms]
"Aged"[MeSH Terms]
"Aged, 80 and over"[MeSH Terms]
Text Availability
free full text[Filter]           # Free full-text available
Journal Categories
"Journal Article"[Publication Type]

E-utilities API

NCBI provides programmatic access via E-utilities (Entrez Programming Utilities).

Overview

Base URL: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/

Main Tools:

  • ESearch: Search and retrieve PMIDs

  • EFetch: Retrieve full records

  • ESummary: Retrieve document summaries

  • ELink: Find related articles

  • EInfo: Database statistics

No API key required, but recommended for:

  • Higher rate limits (10/sec vs 3/sec)

  • Better performance

  • Identify your project

Get API key: https://www.ncbi.nlm.nih.gov/account/

ESearch - Search PubMed

Retrieve PMIDs for a query.

Endpoint: /esearch.fcgi

Parameters:

  • db: Database (pubmed)

  • term: Search query

  • retmax: Maximum results (default 20, max 10000)

  • retstart: Starting position (for pagination)

  • sort: Sort order (relevance, pub_date, author)

  • api_key: Your API key (optional but recommended)

Example URL:

https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?
  db=pubmed&
  term=diabetes+AND+treatment&
  retmax=100&
  retmode=json&
  api_key=YOUR_API_KEY

Response:

{
  "esearchresult": {
    "count": "250000",
    "retmax": "100",
    "idlist": ["12345678", "12345679", ...]
  }
}
EFetch - Retrieve Records

Get full metadata for PMIDs.

Endpoint: /efetch.fcgi

Parameters:

  • db: Database (pubmed)

  • id: Comma-separated PMIDs

  • retmode: Format (xml, json, text)

  • rettype: Type (abstract, medline, full)

  • api_key: Your API key

Example URL:

https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?
  db=pubmed&
  id=12345678,12345679&
  retmode=xml&
  api_key=YOUR_API_KEY

Response: XML with complete metadata including:

  • Title

  • Authors (with affiliations)

  • Abstract

  • Journal

  • Publication date

  • DOI

  • PMID, PMCID

  • MeSH terms

  • Keywords

ESummary - Get Summaries

Lighter-weight alternative to EFetch.

Example:

https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?
  db=pubmed&
  id=12345678&
  retmode=json&
  api_key=YOUR_API_KEY

Returns: Key metadata without full abstract and details.

Find related articles or links to other databases.

Example:

https://eutils.ncbi.nlm.nih.gov/entrez/eutils/elink.fcgi?
  dbfrom=pubmed&
  db=pubmed&
  id=12345678&
  linkname=pubmed_pubmed_citedin

Link types:

  • pubmed_pubmed: Related articles

  • pubmed_pubmed_citedin: Papers citing this article

  • pubmed_pmc: PMC full-text versions

  • pubmed_protein: Related protein records

Rate Limiting

Without API key:

  • 3 requests per second

  • Block if exceeded

With API key:

  • 10 requests per second

  • Better for programmatic access

Best practice:

import time
time.sleep(0.34)  # ~3 requests/second
# or
time.sleep(0.11)  # ~10 requests/second with API key
API Key Usage

Get API key:

  1. Create NCBI account: https://www.ncbi.nlm.nih.gov/account/

  2. Settings → API Key Management

  3. Create new API key

  4. Copy key

Use in requests:

&api_key=YOUR_API_KEY_HERE

Store securely:

# In environment variable
export NCBI_API_KEY="your_key_here"

# In script
import os
api_key = os.getenv('NCBI_API_KEY')

Search Strategies

For systematic reviews and meta-analyses:

# 1. Identify key concepts
Concept 1: Diabetes
Concept 2: Treatment
Concept 3: Outcomes

# 2. Find MeSH terms and synonyms
Concept 1: "Diabetes Mellitus"[MeSH] OR diabetes OR diabetic
Concept 2: "Drug Therapy"[MeSH] OR treatment OR therapy OR medication
Concept 3: "Treatment Outcome"[MeSH] OR outcome OR efficacy OR effectiveness

# 3. Combine with AND
("Diabetes Mellitus"[MeSH] OR diabetes OR diabetic) 
  AND ("Drug Therapy"[MeSH] OR treatment OR therapy OR medication)
  AND ("Treatment Outcome"[MeSH] OR outcome OR efficacy OR effectiveness)

# 4. Add filters
AND 2015:2024[Publication Date]
AND ("Clinical Trial"[Publication Type] OR "Randomized Controlled Trial"[Publication Type])
AND English[Language]
AND humans[MeSH Terms]
Finding Clinical Trials
# Specific disease + clinical trials
"Alzheimer Disease"[MeSH] 
  AND ("Clinical Trial"[Publication Type] 
       OR "Randomized Controlled Trial"[Publication Type])
  AND 2020:2024[Publication Date]

# Specific drug trials
"Metformin"[MeSH] 
  AND "Diabetes Mellitus, Type 2"[MeSH]
  AND "Randomized Controlled Trial"[Publication Type]
Finding Reviews
# Systematic reviews on topic
"CRISPR-Cas Systems"[MeSH] 
  AND ("Systematic Review"[Publication Type] OR "Meta-Analysis"[Publication Type])

# Reviews in high-impact journals
cancer immunotherapy 
  AND "Review"[Publication Type]
  AND ("Nature"[Journal] OR "Science"[Journal] OR "Cell"[Journal])
Finding Recent Papers
# Papers from last year
"machine learning"[Title/Abstract] 
  AND "drug discovery"[Title/Abstract]
  AND 2024[Publication Date]

# Recent papers in specific journal
"CRISPR"[Title/Abstract] 
  AND "Nature"[Journal]
  AND 2023:2024[Publication Date]
Author Tracking
# Specific author's recent work
"Doudna JA"[Author] AND 2020:2024[Publication Date]

# Author + topic
"Church GM"[Author] AND "synthetic biology"[Title/Abstract]
High-Quality Evidence
# Meta-analyses and systematic reviews
(diabetes OR "diabetes mellitus") 
  AND (treatment OR therapy)
  AND ("Meta-Analysis"[Publication Type] OR "Systematic Review"[Publication Type])

# RCTs only
cancer immunotherapy 
  AND "Randomized Controlled Trial"[Publication Type]
  AND 2020:2024[Publication Date]

Script Integration

search_pubmed.py Usage

Basic search:

python scripts/search_pubmed.py "diabetes treatment"

With MeSH terms:

python scripts/search_pubmed.py \
  --query '"Diabetes Mellitus"[MeSH] AND "Drug Therapy"[MeSH]'

Date range filter:

python scripts/search_pubmed.py "CRISPR" \
  --date-start 2020-01-01 \
  --date-end 2024-12-31 \
  --limit 200

Publication type filter:

python scripts/search_pubmed.py "cancer immunotherapy" \
  --publication-types "Clinical Trial,Randomized Controlled Trial" \
  --limit 100

Export to BibTeX:

python scripts/search_pubmed.py "Alzheimer's disease" \
  --limit 100 \
  --format bibtex \
  --output alzheimers.bib

Complex query from file:

# Save complex query in query.txt
cat > query.txt << 'EOF'
("Diabetes Mellitus, Type 2"[MeSH] OR "diabetes"[Title/Abstract])
AND ("Metformin"[MeSH] OR "metformin"[Title/Abstract])
AND "Randomized Controlled Trial"[Publication Type]
AND 2015:2024[Publication Date]
AND English[Language]
EOF

# Run search
python scripts/search_pubmed.py --query-file query.txt --limit 500
Batch Searches
# Search multiple topics
TOPICS=("diabetes treatment" "cancer immunotherapy" "CRISPR gene editing")

for topic in "${TOPICS[@]}"; do
  python scripts/search_pubmed.py "$topic" \
    --limit 100 \
    --output "${topic// /_}.json"
  sleep 1
done
Extract Metadata
# Search returns PMIDs
python scripts/search_pubmed.py "topic" --output results.json

# Extract full metadata
python scripts/extract_metadata.py \
  --input results.json \
  --output references.bib

Tips and Best Practices

Search Construction
  1. Start with MeSH terms:

    • Use MeSH Browser to find correct terms

    • More precise than keyword search

    • Captures all papers on topic regardless of terminology

  2. Include text word variants:

    # Better coverage
    ("Diabetes Mellitus"[MeSH] OR diabetes OR diabetic)
  3. Use field tags appropriately:

    • [MeSH] for standardized concepts

    • [Title/Abstract] for specific terms

    • [Author] for known authors

    • [Journal] for specific venues

  4. Build incrementally:

    # Step 1: Basic search
    diabetes
    
    # Step 2: Add specificity
    "Diabetes Mellitus, Type 2"[MeSH]
    
    # Step 3: Add treatment
    "Diabetes Mellitus, Type 2"[MeSH] AND "Metformin"[MeSH]
    
    # Step 4: Add study type
    "Diabetes Mellitus, Type 2"[MeSH] AND "Metformin"[MeSH] 
      AND "Clinical Trial"[Publication Type]
    
    # Step 5: Add date range
    ... AND 2020:2024[Publication Date]
Optimizing Results
  1. Too many results: Add filters

    • Restrict publication type

    • Narrow date range

    • Add more specific MeSH terms

    • Use Major Topic: [MeSH Major Topic]

  2. Too few results: Broaden search

    • Remove restrictive filters

    • Use OR for synonyms

    • Expand date range

    • Use MeSH explosion (default)

  3. Irrelevant results: Refine terms

    • Use more specific MeSH terms

    • Add exclusions with NOT

    • Use Title field instead of all fields

    • Add MeSH subheadings

Quality Control
  1. Document search strategy:

    • Save exact query string

    • Record search date

    • Note number of results

    • Save filters used

  2. Export systematically:

    • Use consistent file naming

    • Export to JSON for flexibility

    • Convert to BibTeX as needed

    • Keep original search results

  3. Validate retrieved citations:

    python scripts/validate_citations.py pubmed_results.bib
Staying Current
  1. Set up search alerts:

    • PubMed → Save search

    • Receive email updates

    • Daily, weekly, or monthly

  2. Track specific journals:

    "Nature"[Journal] AND CRISPR[Title]
  3. Follow key authors:

    "Church GM"[Author]

Common Issues and Solutions

Issue: MeSH Term Not Found

Solution:

  • Check spelling

  • Use MeSH Browser

  • Try related terms

  • Use text word search as fallback

Issue: Zero Results

Solution:

  • Remove filters

  • Check query syntax

  • Use OR for broader search

  • Try synonyms

Issue: Poor Quality Results

Solution:

  • Add publication type filters

  • Restrict to recent years

  • Use MeSH Major Topic

  • Filter by journal quality

Issue: Duplicates from Different Sources

Solution:

python scripts/format_bibtex.py results.bib \
  --deduplicate \
  --output clean.bib
Issue: API Rate Limiting

Solution:

  • Get API key (increases limit to 10/sec)

  • Add delays in scripts

  • Process in batches

  • Use off-peak hours

Summary

PubMed provides authoritative biomedical literature search:

✓ Curated content: MeSH indexing, quality control
✓ Precise search: Field tags, MeSH terms, filters
✓ Programmatic access: E-utilities API
✓ Free access: No subscription required
✓ Comprehensive: 35M+ citations, daily updates

Key strategies:

  • Use MeSH terms for precise searching

  • Combine with text words for comprehensive coverage

  • Apply appropriate field tags

  • Filter by publication type and date

  • Use E-utilities API for automation

  • Document search strategy for reproducibility

For broader coverage across disciplines, complement with Google Scholar.

Requirements and compatibility

Written for: Claude Code

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Declares allowed tools, Names Claude Code tools, Needs network access, Needs an API key, Needs Python

The author says: Requires Python 3.9+ with requests. Google Scholar search additionally needs scholarly. Needs network access to api.openalex.org, api.crossref.org, eutils.ncbi.nlm.nih.gov, export.arxiv.org, and api.datacite.org.

Security

What our scanner noticed· Low risk

  • Instructions that use the network
  • Scripts that your agent may run

This skill includes scripts that your agent may run. Read them before you use it.

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
K-Dense Inc.
Publisher
K-Dense (Community)
Source
K-Dense-AI/claude-scientific-writer · skills/citation-management · commit 529b9f7
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced
Also distributed in
K-Dense-AI/claude-scientific-writer

AutoGineer is not affiliated with or endorsed by K-Dense Inc. or K-Dense.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download citation-management.zip