Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Citations Summoner

A browser-based bibliometric tool for surfacing the most-cited papers published in any academic journal within a user-defined time window, powered by the OpenAlex open scholarly metadata API.

Select a journal, set a year range and work type, and the tool returns up to 100 papers ranked by citation count — with FWCI, open-access status, authorship, and cascading topic filters, all client-side.

Live demo: https://teowaits.github.io/citations-summoner/


Features

Feature Detail
Journal autocomplete Resolves journal names to OpenAlex Source IDs; debounced search with ISSN display
Year range Configurable from/to year (1990 – present)
Work type filter All · Research Articles (type:article) · Reviews (type:review)
Top 100 most-cited papers Single API page, sorted by cited_by_count descending
Period totals Total research articles and reviews published in the selected period (parallel API calls)
Sort Citation count · FWCI · Year — all client-side, no re-fetch
Topic / subfield filters Cascading Subfield → Topic pickers built from topics[0] of results; client-side filtering
Title-phrase filter Fetch-time OpenAlex title.search (stemmed); multi-phrase OR/AND; quick-add presets; total-match count
FWCI Field-Weighted Citation Impact displayed per paper; null shown as
Open access badge OA status disaggregated (gold/diamond/hybrid vs green vs bronze/closed)
Retracted badge Amber RETRACTED badge; column hidden when no retractions in results
Corresponding author ★ prefix on corresponding authors; collapsed display for large author lists
CSV export (papers) Visible (filtered) rows; title cell encodes full search parameters; UTF-8 BOM for Excel
CSV export (authors) Deduped author list with OpenAlex A… IDs for Published With Us Yet?

Running Locally

No build step. No dependencies. Open index.html directly (classic <script src> files under src/ — no bundler):

git clone https://github.com/teowaits/citations-summoner.git
cd citations-summoner
cp src/config.example.js src/config.local.js   # optional — see API key below
open index.html        # macOS
# or: xdg-open index.html   (Linux)
# or: start index.html       (Windows)

The app works without config.local.js (mailto-only, same as before). A missing local config file may log a 404 in the console; that is harmless.

OpenAlex API key (recommended)

OpenAlex meters usage. Without a key you are on the testing tier (~$0.10/day). A free key at openalex.org/settings/api raises the budget to $1/day. Paste it into src/config.local.js (gitignored):

var OPENALEX_API_KEY = 'your_actual_key_here';

All OpenAlex calls pick up api_key= via the shared apiFetch wrapper.

Request type Examples Cost per call
List + filter Top papers, type counts, topic lenses over fetched rows $0.0001
Search Journal autocomplete, title.search phrase filter $0.001

Title-phrase search is a search-tier call (10× a list/filter call). Phrase-match count uses the same filter without sort=.

Preset title phrases

Edit PRESET_TITLE_PHRASES in src/config.js (duplicated from Gem Finder's src/constants.js — keep both in sync when changing either):

const PRESET_TITLE_PHRASES = [
  'closed loop',
  { label: 'XC regularizers', phrase: 'Physical exact conditions as regularizers…' },
];

How It Works

  1. Journal resolution — journal names are resolved to OpenAlex Source IDs via the /sources search endpoint with filter=type:journal.
  2. Works fetch — up to 100 works are retrieved from /works sorted by cited_by_count:desc, filtered by source, year range, optional work type, and optional title.search phrases (OR pipe-joined or AND as separate clauses). Citation ranking is computed within the phrase-matched subset when a title filter is active.
  3. Period totals — two lightweight /works?per_page=1 calls (one for type:article, one for type:review) run concurrently with the main fetch to surface total publication counts for the period.
  4. Phrase-match count — when title phrases are set, a third per_page=1 call reads meta.count so the UI can show “12 total matches” vs “Top 100 of 340 total matches”.
  5. Topic index — a subfield → topic index is built in-memory from the topics[0] field of each returned work (client-side lens over the fetched page — unlike title phrases).
  6. Client-side operations — subfield/topic filtering, sorting, and CSV export operate on the fetched data with no re-fetch.

API patterns

  • select= field filtering to minimise response payload
  • &mailto= polite crawling identifier on every request
  • Retry with exponential backoff on 429 and 5xx responses
  • Concurrent Promise.all for the type-count pair to avoid serial latency

Practical limits

The tool fetches a single page of 100 results. Journals with fewer than 100 publications in the selected period return all available papers. Cursor pagination is intentionally not implemented — the goal is a fast, focused overview, not exhaustive enumeration.


Data & Acknowledgements

All scholarly metadata is provided by OpenAlex — a fully open, free index of global research output maintained by OurResearch. OpenAlex data is released under the CC0 1.0 Universal public domain dedication.

Priem, J., Piwowar, H., & Orr, R. (2022). OpenAlex: A fully-open index of the world's research. arXiv. https://doi.org/10.48550/arXiv.2205.01833


Editorial pipeline: Published With Us Yet?

  1. Run Citations Summoner on a competitor or source journal to surface highly cited papers in a period.
  2. Click Export authors CSV — one row per author (corresponding authors when flagged; otherwise the last author on the list), deduped across visible papers.
  3. Upload that file in Published With Us Yet? to see which authors have (or have not) already published in your target journal.

The author export uses headers compatible with Published With Us Yet? (Rank, Name, OpenAlex ID, optional Institution, Note). The paper export remains separate (Work OpenAlex ID for papers, not authors).


Part of the teowaits Bibliometric Tooling Family

Tool What it does
Journal Overlap Finder Authorship overlap between two sets of journals
Citations Summoner Most-cited papers for any journal and time window
Published With Us Yet? Check whether author IDs already published in your journal
Journal Profile Analyser (coming soon)
Gem Finder (coming soon)

Created By

teowaits

This tool was built with the assistance of Claude Sonnet 4.6 by Anthropic, following OpenAlex API best practices:

  • Two-step journal resolution (search → Source ID) rather than filtering by name
  • select= field filtering to minimise response payload
  • Concurrent parallel API calls to avoid serial request latency
  • Client-side topic indexing and filtering to avoid redundant API calls
  • Retry with exponential backoff on 429 / 5xx errors
  • &mailto= identifier on all requests for polite crawling

Changelog

Version Date Changes
1.2.0 2026-07-27 Title-phrase fetch-time filter (OR/AND, presets, phrase-match count); OpenAlex API key via config.local.js; split into classic src/*.js scripts; OA status disaggregation; optional Crossref type check
1.1.0 2026-05-21 Author CSV export for Published With Us Yet?; paper CSV column renamed to Work OpenAlex ID; ASCII * for corresponding authors in paper CSV; UTF-8 BOM on exports
1.0.0 2026-05-20 Initial release — journal autocomplete, year range and work type filters, top 100 most-cited papers, FWCI, OA and retraction badges, period article/review totals, cascading subfield/topic filters, corresponding-author display, CSV export with search parameters

License

MIT

About

Browser-based tool for surfacing the most-cited papers in any journal and time window, powered by OpenAlex

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages