Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
cookjohn avatar

Gs Cited By

  • 176 installs
  • 470 repo stars
  • Updated March 13, 2026
  • cookjohn/gs-skills

Follow Google Scholar 'Cited by' links from seed papers to map downstream citations and trace how ideas evolved in the literature.

About

Automates Google Scholar cited-by navigation starting from a seed publication, collecting downstream citing works so Claude agents can expand literature maps, identify seminal follow-on research, and trace how academic ideas propagated across related papers.

  • Traverses Google Scholar cited-by result pages
  • Maps citation networks from seed publications
  • Surfaces follow-on and influential derivative papers
  • Supports systematic literature expansion beyond keyword hits

Gs Cited By by the numbers

  • 176 all-time installs (skills.sh)
  • Ranked #3,085 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/cookjohn/gs-skills --skill gs-cited-by

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs176
repo stars470
Last updatedMarch 13, 2026
Repositorycookjohn/gs-skills

What it does

Follow Google Scholar 'Cited by' links from seed papers to map downstream citations and trace how ideas evolved in the literature.

Files

SKILL.mdMarkdownGitHub ↗

Google Scholar — Cited By (Citation Tracking)

Find all papers that cite a given paper. Uses Google Scholar's cites parameter with the paper's cluster ID (data-cid).

Arguments

$ARGUMENTS can be:

  • A data-cid from a previous search result (e.g., TFS2GgoGiNUJ)
  • A paper title (will search first to find the data-cid)

Steps

Step 1: Resolve data-cid

If $ARGUMENTS is a data-cid (alphanumeric string, no spaces): use it directly.

If $ARGUMENTS is a title or description: first search to find the data-cid: 1. Use gs-search with the title as keywords 2. Match the target paper in results by title similarity 3. Extract its dataCid

Step 2: Navigate to "Cited by" page

Use mcp__chrome-devtools__navigate_page:

  • url: https://scholar.google.com/scholar?cites={DATA_CID}&hl=en&num=10

Replace {DATA_CID} with the resolved cluster ID.

Step 3: Extract citing papers (evaluate_script)

Same extraction script as gs-search:

async () => {
  for (let i = 0; i < 20; i++) {
    if (document.querySelector('#gs_res_ccl') || document.querySelector('#gs_captcha_ccl')) break;
    await new Promise(r => setTimeout(r, 500));
  }

  if (document.querySelector('#gs_captcha_ccl') || document.body.innerText.includes('unusual traffic')) {
    return { error: 'captcha', message: 'Google Scholar requires CAPTCHA verification. Please complete it in your browser, then tell me to continue.' };
  }

  const items = document.querySelectorAll('#gs_res_ccl .gs_r.gs_or.gs_scl');
  const results = Array.from(items).map((item, i) => {
    const titleEl = item.querySelector('.gs_rt a');
    const meta = item.querySelector('.gs_a')?.textContent || '';
    const parts = meta.split(' - ');
    const authors = parts[0]?.trim() || '';
    const journalYear = parts[1]?.trim() || '';
    const citedByEl = item.querySelector('.gs_fl a[href*="cites"]');

    return {
      n: i + 1,
      title: titleEl?.textContent?.trim() || item.querySelector('.gs_rt')?.textContent?.trim() || '',
      href: titleEl?.href || '',
      authors,
      journalYear,
      citedBy: citedByEl?.textContent?.match(/\d+/)?.[0] || '0',
      dataCid: item.getAttribute('data-cid') || '',
      fullTextUrl: (item.querySelector('.gs_ggs a') || item.querySelector('.gs_or_ggsm a'))?.href || '',
      snippet: item.querySelector('.gs_rs')?.textContent?.trim()?.substring(0, 200) || ''
    };
  });

  const totalText = document.querySelector('#gs_ab_md')?.textContent?.trim() || '';
  const currentUrl = window.location.href;
  return { total: totalText, resultCount: results.length, currentUrl, results };
}

Step 4: Report

Papers citing [{original paper title}] (data-cid: {DATA_CID}):
{total}

1. {title}
   Authors: {authors} | {journalYear}
   Cited by: {citedBy}
   Data-CID: {dataCid}

2. ...

Follow-up

  • See more citing papers: use gs-navigate-pages (pagination works on cited-by pages too)
  • Export citing papers: use gs-export with the data-cid(s)
  • Recursive citation tracking: use gs-cited-by on any of the citing papers

Notes

  • This skill uses 2-3 tool calls: optional search + navigate_page + evaluate_script
  • The cites parameter uses the cluster ID (data-cid), NOT a DOI or paper ID
  • Cited-by pages support the same pagination as regular search (start parameter)
  • Citation count on Google Scholar is typically higher than PubMed because it includes non-PubMed sources (books, theses, preprints, etc.)

Related skills

AI & Agent Buildingresearchautomation

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.