scheduled arxiv paper crawling with category filtering
Automatically fetches the latest research papers from arXiv on a daily schedule using GitHub Actions, filtering by user-specified categories (e.g., cs.AI, cs.LG, cs.CL). The system queries arXiv's API with category-based search queries, extracts metadata (paper ID, title, authors, abstract, publication date), and stores raw results in JSONL format. Implements retry logic and rate-limiting to respect arXiv's API constraints while ensuring reliable daily collection.
Unique: Integrates GitHub Actions as the orchestration layer for daily scheduling, eliminating need for external cron infrastructure. Stores raw and enhanced data in JSONL format with category-based organization, enabling efficient incremental processing and archival.
vs alternatives: Cheaper than cloud-based paper aggregators (free GitHub Actions tier) and more flexible than static RSS feeds because it enables programmatic filtering and downstream AI enhancement in the same pipeline.
llm-powered structured paper summarization with multi-field extraction
Processes raw arXiv paper abstracts through an LLM (OpenAI GPT-4/3.5 or compatible API) to generate structured summaries with discrete fields: TLDR (one-liner), motivation, methodology, results, and conclusion. Uses prompt engineering with few-shot examples to ensure consistent JSON output structure. Implements batching and error handling to manage API costs and handle rate limits, storing enhanced results in JSONL format with original metadata preserved.
Unique: Uses multi-field prompt engineering to extract discrete summary components (TLDR, motivation, method, result, conclusion) in a single LLM call, then validates JSON structure before storage. Supports language-specific summarization through prompt templates, enabling multilingual output from English abstracts.
vs alternatives: More cost-effective than running separate LLM calls per summary field and more flexible than rule-based summarization because it adapts to paper domain and writing style through few-shot prompting.
arxiv metadata extraction and normalization
Parses arXiv API responses to extract and normalize paper metadata including arxiv_id, title, authors (as list), abstract, categories, published_date, and pdf_url. Handles variations in arXiv's response format (e.g., multiple author formats, category encoding) and normalizes data into consistent JSONL schema. Implements validation to ensure all required fields are present and correctly formatted, discarding malformed records. Preserves original metadata without modification, enabling downstream processing to add enhancements while maintaining data integrity.
Unique: Implements field-level normalization and validation, ensuring consistent JSONL schema across all papers regardless of arXiv API response variations. Preserves original metadata without modification, enabling clean separation between raw data and enhancements.
vs alternatives: More robust than simple JSON parsing because it handles arXiv API variations and validates data quality, and more maintainable than regex-based extraction because it uses structured API responses.
multilingual summary generation with language-specific prompting
Generates paper summaries in multiple languages (primarily Chinese and English) by using language-specific prompt templates that instruct the LLM to produce output in the target language. The system maintains separate JSONL files per language (e.g., data/2025-06-09_AI_enhanced_Chinese.jsonl) and uses configurable language codes to control output. Implements language selection via repository variables, allowing users to customize which languages are generated without code changes.
Unique: Implements language selection through repository variables rather than hardcoding, enabling non-technical users to customize output languages via GitHub UI. Generates separate output files per language, preserving original metadata while producing language-specific summaries in parallel.
vs alternatives: More efficient than post-processing translation because it generates summaries directly in target language (avoiding translation artifacts), and more flexible than single-language systems because users can enable/disable languages without code changes.
jsonl to markdown conversion with category-based organization and collapsible sections
Transforms JSONL files (raw and AI-enhanced) into human-readable markdown files organized by arXiv categories, with each paper rendered as a collapsible HTML details element. The conversion process reads JSONL records, groups papers by category, applies a markdown template (template.md) to format each paper's metadata and summary, and generates a single markdown file per day with a table of contents. Uses HTML details/summary tags for collapsible sections, enabling readers to expand papers of interest without scrolling through full content.
Unique: Uses HTML details/summary tags embedded in markdown to create collapsible sections, enabling interactive browsing without JavaScript. Groups papers by arXiv category automatically, generating a category-based table of contents that reflects the day's research landscape.
vs alternatives: Simpler than building a custom web interface because it generates static markdown compatible with GitHub Pages, and more interactive than plain text because collapsible sections reduce cognitive load when scanning large paper collections.
github actions-based daily orchestration with configurable scheduling
Implements the entire pipeline (crawl → enhance → convert) as a GitHub Actions workflow (.github/workflows/run.yml) triggered on a daily schedule using cron syntax. The workflow runs in a containerized environment, executes shell scripts (run.sh) to invoke Python/Node.js processing steps, and commits results back to the repository. Configuration is managed through GitHub repository secrets (API keys) and variables (categories, languages, models), enabling users to customize behavior without forking or modifying code.
Unique: Leverages GitHub Actions as the orchestration layer, eliminating need for external cron services or cloud infrastructure. Configuration is entirely declarative through repository secrets/variables, enabling non-technical users to customize the pipeline via GitHub UI without touching code.
vs alternatives: Cheaper than cloud-based automation (free GitHub Actions tier) and more reliable than self-hosted cron because GitHub guarantees execution and provides built-in logging. More flexible than static RSS feeds because it enables programmatic filtering and AI enhancement in the same pipeline.
configurable arxiv category filtering with multi-category support
Allows users to specify which arXiv categories to crawl through repository variables (e.g., ARXIV_CATEGORIES='cs.AI,cs.LG,cs.CL'). The system parses the category list and constructs arXiv API queries that fetch papers from all specified categories in a single daily run. Supports both single-category and multi-category configurations, enabling users to create custom paper collections without code changes. Categories are stored as comma-separated strings in repository variables, making them easily editable via GitHub UI.
Unique: Implements category filtering as a repository variable rather than hardcoding, enabling non-technical users to customize categories via GitHub UI. Supports multi-category queries in a single API call, reducing latency compared to sequential per-category requests.
vs alternatives: More flexible than static category subscriptions because users can change categories daily without code changes, and more efficient than keyword-based filtering because arXiv's category taxonomy is well-structured and reliable.
incremental data archival with date-based file organization
Automatically organizes all crawled and enhanced papers into date-stamped files (data/YYYY-MM-DD.jsonl, data/YYYY-MM-DD_AI_enhanced_LANGUAGE.jsonl, data/YYYY-MM-DD.md) committed to the repository. Each day's run creates a new set of files, creating a historical archive of papers and summaries. The system preserves all previous days' data, enabling users to browse historical digests and track how paper topics evolve over time. Files are committed to git with descriptive messages, maintaining full version history.
Unique: Leverages git as the archival mechanism, providing version control and historical tracking without external storage. Date-based file naming creates a natural timeline of research papers, enabling users to browse papers by date and track research trends over time.
vs alternatives: Simpler than external database archival because it uses git's built-in versioning, and more accessible than cloud storage because all data is in the repository and viewable via GitHub UI.
+3 more capabilities