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

Ieee Parse Results

  • 4 installs
  • 31 repo stars
  • Updated March 14, 2026
  • cookjohn/ieee-skills

Re-parses the currently open IEEE Xplore search results page to extract structured data without navigating.

About

An internal skill that extracts structured result data from an already-open IEEE Xplore search page. Other skills use it to re-parse results after sorting or filtering.

  • Extracts from .List-results-items result items on the current page
  • Runs without navigation, used internally by other IEEE skills

Ieee Parse Results by the numbers

  • 4 all-time installs (skills.sh)
  • Ranked #1,780 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
  • Data as of Jul 29, 2026 (Skillselion catalog sync)
npx skills add https://github.com/cookjohn/ieee-skills --skill ieee-parse-results

Add your badge

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

Listed on Skillselion
Installs4
repo stars31
Last updatedMarch 14, 2026
Repositorycookjohn/ieee-skills

What it does

Re-parses the currently open IEEE Xplore search results page to extract structured data without navigating.

Files

SKILL.mdMarkdownGitHub ↗

Parse Current IEEE Xplore Results Page

Extract structured data from an already-open IEEE Xplore search results page without navigating.

When to use

  • After the user has manually navigated to a search results page
  • When re-parsing results after sorting or filtering changes
  • Called internally by other skills

Steps

Step 1: Extract results from current page

Use evaluate_script (no navigation needed):

async () => {
  // Verify we are on a search results page
  if (!window.location.pathname.includes('/search')) {
    return { error: 'Not on an IEEE Xplore search results page.' };
  }

  // Wait for results if still loading
  for (let i = 0; i < 20; i++) {
    if (document.querySelectorAll('.List-results-items .result-item').length > 0) break;
    await new Promise(r => setTimeout(r, 500));
  }

  const items = document.querySelectorAll('.List-results-items .result-item');
  if (items.length === 0) {
    return { error: 'No results found on the current page. The page may still be loading.' };
  }

  const papers = [];
  for (let i = 0; i < items.length; i++) {
    const item = items[i];
    const titleLink = item.querySelector('h3 a[href*="/document/"]');
    const authors = [...item.querySelectorAll('.author a[href*="/author/"]')].map(a => a.textContent.trim());
    const pubLink = item.querySelector('.description a[href*="/xpl/"]');
    const publisherInfo = item.querySelector('.publisher-info-container');
    const infoText = publisherInfo?.textContent?.trim() || '';
    const yearMatch = infoText.match(/Year:\s*(\d{4})/);
    const docNumber = titleLink?.href?.match(/\/document\/(\d+)/)?.[1] || '';
    const itemText = item.textContent || '';
    const citedByMatch = itemText.match(/Cited by:.*?(\d+)/);
    const citedBy = citedByMatch ? citedByMatch[1] : '';
    const hasCheckbox = !!item.querySelector('input[type="checkbox"]');

    papers.push({
      rank: i + 1,
      title: titleLink?.textContent?.trim()?.replace(/<[^>]+>/g, '') || '',
      arnumber: docNumber,
      authors,
      publication: pubLink?.textContent?.trim() || '',
      year: yearMatch ? yearMatch[1] : '',
      info: infoText,
      citedBy,
      hasCheckbox,
    });
  }

  const resultCount = document.querySelector('.Dashboard-header span')?.textContent?.trim() || '';
  const currentUrl = window.location.href;
  const urlParams = Object.fromEntries(new URL(currentUrl).searchParams);

  return { papers, resultCount, currentUrl, urlParams };
}

Step 2: Return structured data

Return the extracted data. The arnumber field is the primary key for all subsequent operations (detail, download, export).

Notes

  • This skill uses only 1 tool call (evaluate_script).
  • It does NOT navigate — it reads the current page as-is.
  • If results are empty, the page may still be loading; the built-in wait loop handles this.

Related skills

This week in AI coding

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

unsubscribe anytime.