erga

erga

Open-source Python package and GitHub Action: fetches a research group’s publications from OpenAlex by ORCID, deduplicates them, keeps the maintainer’s corrections across every refresh, and flags works that likely belong to a same-name stranger.

Status: open source, in beta. erga is a Python package for any static site that presents a curated list of academic publications. It is published on PyPI and as a GitHub Action under the MIT license, and a research lab and a university department already refresh their publications pages with it every week. The output format may still change before version 1.0.

At a glance

DeliveryPython package (PyPI) and GitHub Action, MIT license
SourcesOpenAlex, the open scholarly index, with Crossref for missing venues
In useThe SmartMove lab site (in production) and the department site (in development)
EngineeringStrict typing, tests on four Python versions, byte-exact output tests, releases published from CI with no stored credentials

The problem

A research group’s publications page is usually maintained by hand, and falls out of date, or handed to a third-party embed, and then the data no longer belongs to the group. I first solved this inside the SmartMove lab site with a custom pipeline. A search for comparable tools found none that is actively maintained and combines automatic fetching with corrections that survive every refresh, so I turned the pipeline into a standalone tool, erga, for other research groups to use.

How it works

One configuration file lists the group’s members by ORCID iD. erga fetches their works from OpenAlex, merges the duplicates a paper collects along the way (a preprint and its published version, for instance), fills in missing venues from Crossref, and writes a single publications.json into the site’s repository. The site renders it however it likes, whether it is built with Jekyll, Astro or anything else; erga renders nothing and hosts nothing.

  • Configuration that fits the group: for each member, the file accepts an alternative identifier when the ORCID is missing or wrong, and the institution or institutions their career belongs to. Filling it in is also how the group confirms who each member is.
  • Curation that survives every refresh: manual additions, per-paper corrections and exclusions, and featured selections live in their own files and are re-applied on every automated run.
  • Reviewable changes: every build reports what changed since the previous one, and the GitHub Action can deliver the weekly refresh as a pull request with that report as its description.
  • The data stays the site’s own: a plain, diffable file under version control, with no embedded script and no runtime dependency; the publications are in the page’s HTML from the start.

The identity problem

Fetching is the easy part. The hard part is knowing whose works came back. An ORCID iD does not reliably identify one person on OpenAlex: a mistyped or copied iD turns up on strangers’ profiles and brings their papers with it, and two researchers whose names romanize to the same string can end up on one profile. A publications page built naively shows someone else’s work under a colleague’s name.

erga answers with two checks:

  • Before fetching, verify reports what each configured iD resolves to, and searches for same-name profiles the configuration does not cover.
  • During the build, it flags groups of works that share no co-author and no institution with the rest of a career, which is what a same-name stranger’s works look like. It warns; the maintainer decides.

The second check was chosen between two designs on real data. On the department site, one member’s profile carried five works by a same-name researcher at another university, with fifteen co-authors among them and none in common with the real career. Only one of the two designs caught them, and that one shipped. Its false-alarm rate is measured on random samples of forty live careers, pinned so that every later change is compared against the same data.

Outcome

The SmartMove lab site has built its archive of 200+ papers with erga since August 2026. On the department site, still in development, it is in a pilot phase with 600+ works so far, ahead of covering the whole department. The design record, including the measurements behind the identity checks, is public in the repository, and version 1.0 will declare the output format stable.


© 2026 Thomas Kogias. All rights reserved. · thomas at kogias dot org