Weekly Hugging Face adoption tracker in Google Sheets
Every Monday, log downloads and likes for every model and dataset your organization publishes into a spreadsheet, so you can chart growth over time.
Every Monday at 6am, snapshot the adoption numbers for every model and dataset my organization publishes on Hugging Face into a Google Sheets tracker, so we can watch growth over time. Run this on a weekly cron trigger. It is fully deterministic: two list calls, a fixed field mapping, and one append, with no judgement needed at any step.
Start with the Hugging Face List Models operation, setting the author filter to our organization namespace and requesting full metadata, so that download counts, like counts, and last modified dates come back on every record. Then run List Datasets with the same author filter and the same full metadata request. Together those two calls give me every repo we own.
Both list endpoints are cursor paginated. Pass a limit and then follow the Link response header's rel=next URL until it is absent, so an organization with more repos than fit on a single page is still captured in full. Do not assume one page is enough.
For every repo returned across both calls, build one row containing the run date, the repo id, the repo type (model or dataset), the download count, the like count, and the last modified date. Write those rows into the tracker tab using the Google Sheets Append Values operation, appending beneath whatever is already there so each week's snapshot stacks under the previous one and the tab becomes a time series.
Two rules keep the tab usable. First, keep the column order identical on every single run, because the charts and pivot tables built on this tab depend on that order staying stable. Second, when a repo reports no downloads for the week, write a zero rather than skipping the repo or leaving the cell blank, so every repo has an unbroken weekly series.
A weekly sweep like this sits comfortably inside Hugging Face rate limits, which are counted in five minute windows. If we later publish Spaces, the same list call shape exists for them, and they can be added as a third repo type using the identical row format.
Additional information
What does this prompt do?
- Runs every Monday morning and collects every model and dataset published under your organization's Hugging Face name.
- Records each one's download count, like count, and last updated date for that week.
- Adds one row per repository per run to a Google Sheets tab, so the tab grows into a week by week history.
- Writes a zero rather than skipping anything that reported no downloads, so your charts never end up with gaps.
What do I need to use this?
- A Hugging Face account with an access token, plus the organization name your models and datasets are published under.
- A Google account that can edit the spreadsheet you want to write into.
- A spreadsheet with a tab set aside for the tracker, ideally with a header row already in place.
How can I customize it?
- Change the schedule. The same setup works just as well for a daily or monthly snapshot.
- Track a personal Hugging Face account instead of an organization, or point it at a different namespace entirely.
- Add extra columns such as license or tags, or include Spaces alongside models and datasets as a third row type.
FAQs
Does this work for a personal Hugging Face account, or only an organization?
Will new models and datasets get picked up automatically?
What happens to a repository that got no downloads that week?
Does each run overwrite last week's numbers?
What if we publish hundreds of models and datasets?
Why not just use the download chart on Hugging Face?
Related templates
Every weekday at 7am, your active courses are checked for missing work, silent logins, and slipping grades, with a ranked list sent to your advising channel.
Every Monday at 8am, see exactly which assignments have work waiting, sorted worst first, posted to Slack and logged to a spreadsheet.
Every weekday morning your advising team gets a ranked list of students slipping behind in each course, plus a tracking log that shows whether outreach worked.
Every Monday at 8am, count last week's tickets and SLA results, add one row to a tracking sheet, and post the headlines to Slack.
Every weekday, each person gets one private nudge listing only their own undocumented card spend, plus an aging report for finance.
Every Monday, find the people who never turned on two-factor or never accepted their invite, message them in Slack, and track both numbers.
Stop guessing whether anyone is using what you publish.
Set this up once and every Monday your spreadsheet gains a fresh snapshot, quietly building the adoption history your team needs.