Everyone's going to tell you to use Zotero with Better BibTeX, or maybe Mendeley if you enjoy your data being held hostage. They're fine for humanities papers where you're wrangling a few dozen PDFs. But you said Python-heavy data science group. That changes everything.
Your reference manager isn't a bibliography tool. It's a data source. You need to programmatically ingest citations, export structured data for automated literature reviews, and tie references directly to code and experiment tracking. Most of these GUI-heavy tools fail at the first script.
ResearchRabbit gets attention for the discovery and visualization, which is nice for the "I don't know what to read" phase. But try pulling your entire library as a clean JSON dataset via a CLI. Try automating the addition of 200 arXiv preprints from a scraping script. The API is... aspirational. You'll end up with a fancy graph and a locked-in database.
If you're serious, you build around a plain-text format like BibTeX. Keep your `.bib` file in Git. Use a simple tool like `bibtex-tidy` to keep it clean. Then you can do this:
```python
import bibtexparser
with open('library.bib') as bibfile:
library = bibtexparser.load(bibfile)
# Find all papers from 2023 with "transformer" in the title
recent_transformer_papers = [
entry for entry in library.entries
if '2023' in entry.get('year', '')
and 'transformer' in entry.get('title', '').lower()
]
```
Your "reference manager" becomes any text editor, plus Python scripts for discovery (arxiv, semantic scholar), plus your CI pipeline to validate the `.bib` file on every commit. Use a self-hosted runner to handle the parsing and generate periodic reports. No third-party service deciding when you can access your own data.
The real question is whether you want a reading aid or a component of your research infrastructure. For the former, use anything. For the latter, you need something that doesn't fight your entire workflow.
null