Install
openclaw skills install wos-zotero-hunterSearch Web of Science for academic literature through institutional access, filter by journal, impact factor, or date, and automatically import results into Zotero. Use when the user wants to find and import scholarly papers from WoS into Zotero — they will describe a topic, quality criteria (IF, journal names, citation count), desired paper count, and a Zotero collection name.
openclaw skills install wos-zotero-hunterSearch Web of Science through the user's institutional access, filter results by quality criteria, and import papers to a new Zotero collection with full metadata.
Before first use, confirm the user has:
pip install pyzoteroThe Zotero credentials are typically found in ~/.config/zotcli/config.ini or can be provided by the user.
Ask the user for these parameters. All are required unless marked optional:
| Parameter | Example |
|---|---|
| Keywords / topic | "perovskite solar cell stability" |
| Journal or IF filter | "IF>15" or "Nature, Science, Joule" |
| Paper count | 5 |
| Zotero collection name | "perovskite_stability" |
| Date range (optional) | "2020-2025" |
Use browser automation with the user's profile (to preserve institutional login session):
Navigate to WoS through institution. The user's library portal typically has a direct WoS link. Navigate there first (the user may need to guide this step the first time).
Perform topic search:
Apply quality filters in this order:
Sort by Citations (highest first) if needed.
Extract paper metadata. From the search result page, extract for each of the top N papers:
WoS result pages show papers in a consistent format: title link, author list with ";" separators, date, journal button, volume/issue/pages. Extract these from the page snapshot.
Use scripts/import_to_zotero.py to import papers:
echo '[
{"title": "...", "authors": "Smith, J; Doe, K", "year": "2023", "journal": "Nature"},
...
]' | python3 scripts/import_to_zotero.py \
--zotero-key <API_KEY> \
--zotero-id <USER_ID> \
--collection "collection-name"
The script will:
Paper JSON format accepted by the script:
[
{
"title": "Paper title",
"doi": "10.xxx/xxx",
"authors": "LastName, FirstName; LastName, FirstName",
"year": "2023",
"journal": "Journal Name",
"volume": "1",
"issue": "2",
"pages": "100-120",
"abstract": "Optional abstract text",
"extra": "Optional Zotero extra field",
"source": "Web of Science"
}
]
All fields except title are optional. When DOI is provided, the script auto-resolves missing metadata via Crossref.
After import, list the papers with title, journal, year, and DOI. Remind the user to check the Zotero collection.
Test paper extraction without importing:
cat papers.json | python3 scripts/import_to_zotero.py \
--zotero-key KEY --zotero-id ID \
--collection "test" --dry-run
This skill operates entirely within the user's local environment:
api.crossref.org — public, free scholarly metadata API (no authentication)api.zotero.org — user's own Zotero library via their API keyapi.zotero.org. It is never written to disk or transmitted elsewhere.--dry-run to preview what will be imported before any data is written to Zotero.scripts/import_to_zotero.py — review it before running if desired.The browser automation and network capabilities flagged by automated scanners are the core, documented features of this skill and serve no other purpose.
--dry-run first to verify extracted papers before importing