### Install Project Dependencies with uv
Source: https://github.com/simplifyjobs/summer2026-internships/blob/dev/CONTRIBUTING.md
Installs project dependencies using the `uv` package manager. This command should be run from the repository root.
```bash
uv sync
```
--------------------------------
### GitHub Actions Workflow Integration
Source: https://github.com/simplifyjobs/summer2026-internships/blob/dev/CONTRIBUTING.md
Examples of how the CLI is integrated into GitHub Actions workflows. These snippets demonstrate running the CLI commands within a CI/CD pipeline for processing contributions and updating README files.
```yaml
- name: Process contribution
run: uv run main.py contribution process $GITHUB_EVENT_PATH
- name: Update READMEs
run: uv run main.py readme update
```
--------------------------------
### Update README Files with CLI
Source: https://github.com/simplifyjobs/summer2026-internships/blob/dev/CONTRIBUTING.md
Executes the Python script to update all README files based on the current `listings.json`. This command is part of the CLI tool and requires dependencies to be installed.
```bash
uv run python main.py readme update
```
--------------------------------
### Interactively Fix Issues in Listings
Source: https://github.com/simplifyjobs/summer2026-internships/blob/dev/CONTRIBUTING.md
Allows interactive fixing of issues within the `listings.json` file. Users can preview changes with `--dry-run`, target specific issue types like `--type empty` or `--type duplicate`, or automatically accept fixes with `--auto`. The command guides users through resolving empty fields, duplicate entries, and blocked companies.
```bash
uv run python main.py listings fix
uv run python main.py listings fix --dry-run
uv run python main.py listings fix --type empty
uv run python main.py listings fix --type duplicate
uv run python main.py listings fix --auto
uv run python main.py listings fix --auto --dry-run
```
--------------------------------
### Get Sponsorship Indicator
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
Retrieves a sponsorship indicator emoji based on the listing's sponsorship status. Assumes a function `get_sponsorship` is available.
```python
listing = {"sponsorship": "Does Not Offer Sponsorship"}
sponsorship = get_sponsorship(listing)
# Output: " 🛂"
```
--------------------------------
### Show Listing Statistics with CLI
Source: https://github.com/simplifyjobs/summer2026-internships/blob/dev/CONTRIBUTING.md
Displays statistics about the internship listings. The `--json` flag can be used to output the statistics in JSON format.
```bash
uv run python main.py listings stats
uv run python main.py listings stats --json
```
--------------------------------
### View Listing Statistics with Python CLI
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
This command displays comprehensive statistics about the internship database. It includes counts of total, active, inactive, visible, and hidden listings, as well as a breakdown by category and a list of the top 10 companies. The command requires the 'uv' and 'python' executables.
```bash
uv run python main.py listings stats
```
--------------------------------
### Generate Application Link HTML
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
Generates HTML for application and source links based on listing details. Assumes a function `get_link` is available.
```python
listing = {"active": True, "url": "https://example.com/apply", "source": "Simplify", "id": "abc123"}
link_html = get_link(listing)
# Output:

```
--------------------------------
### Search and Filter Internship Listings with CLI
Source: https://github.com/simplifyjobs/summer2026-internships/blob/dev/CONTRIBUTING.md
Searches and filters internship listings based on various criteria such as company name, category, location, and active status. The `--limit` option can be used to restrict the number of results.
```bash
uv run python main.py listings search --company "Google"
uv run python main.py listings search --category "Software" --active
uv run python main.py listings search --location "Remote" --limit 50
```
--------------------------------
### View Recent Changes to Listings (Python)
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
Shows changes made to the internship listings database. This can be done by comparing against the last git commit, a specific date, or a specific git commit hash. Requires `uv` and `python`.
```bash
# Show changes from the last commit
uv run python main.py listings diff
# Show changes since a specific date
uv run python main.py listings diff --since "2025-01-01"
# Show changes since a specific git commit
uv run python main.py listings diff --commit abc123def
```
--------------------------------
### Generate Markdown Tables from Listings
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
Creates Markdown and HTML tables from internship listings for documentation purposes. Functions like `create_md_table` and `create_category_table` format the data, including links, locations, and sponsorship details. These are useful for generating README files or other display formats.
```python
from list_updater.formatter import create_md_table, get_link, get_locations, get_sponsorship
from list_updater.category import create_category_table
# Create a table for a list of listings
listings = [
{
"company_name": "Google",
"company_url": "https://simplify.jobs/c/Google",
"title": "Software Engineering Intern",
"locations": ["Mountain View, CA", "New York, NY"],
"url": "https://careers.google.com/jobs/123",
"active": True,
"source": "Simplify",
"id": "abc123",
"date_posted": 1705363200,
"sponsorship": "Offers Sponsorship",
"terms": ["Summer 2026"]
}
]
# Generate HTML table
table_html = create_md_table(listings, off_season=False)
print(table_html)
# Output:
# Create a complete category section with header and table
category_section = create_category_table(
listings,
category_name="Software Engineering",
off_season=False,
active_only=True,
inactive_only=False
)
```
--------------------------------
### Show Changes in Job Listings
Source: https://github.com/simplifyjobs/summer2026-internships/blob/dev/CONTRIBUTING.md
Displays differences in job listings since a specified date or commit hash. This command helps track modifications to the listings data. It can take an optional `--since` argument for a date or a `--commit` argument for a specific commit.
```bash
uv run python main.py listings diff
uv run python main.py listings diff --since "2025-01-01"
uv run python main.py listings diff --commit abc123
```
--------------------------------
### Interactive Fix Mode for Listings (Python)
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
Allows for interactive review and fixing of issues within the internship listings database. Supports dry runs, fixing specific issue types (empty, duplicate, blocked), and auto-accepting fixes. Requires `uv` and `python`.
```bash
# Start interactive fix session
uv run python main.py listings fix
# Preview fixes without saving (dry run)
uv run python main.py listings fix --dry-run
# Only fix specific issue types
uv run python main.py listings fix --type empty # Fix empty titles/categories
uv run python main.py listings fix --type duplicate # Fix duplicate URLs/IDs
uv run python main.py listings fix --type blocked # Fix blocked companies
# Auto-accept all recommended fixes
uv run python main.py listings fix --auto
# Preview auto-fixes without saving
uv run python main.py listings fix --auto --dry-run
```
--------------------------------
### GitHub Actions: Update READMEs Workflow (YAML)
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
A GitHub Actions workflow that automatically regenerates README files whenever the `listings.json` file changes. This ensures documentation stays up-to-date with the latest internship data.
```yaml
# .github/workflows/update_readmes.yml
name: Update READMEs
on:
push:
branches:
- main
paths:
- "listings.json"
jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v4
- name: Update READMEs
run: uv run python main.py update-readmes
- name: Commit and push changes
run: |
git config user.name "GitHub Actions"
git config user.email "action@github.com"
git add README.md README-Inactive.md README-Off-Season.md
git commit -m "docs: Update READMEs with latest listings"
git push
```
--------------------------------
### Process Community Contributions with Python CLI
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
This command processes approved GitHub Issues (new_internship or edit_internship) to update the listings.json database. It takes the GitHub event path as an argument. The command requires the 'uv' and 'python' executables.
```bash
uv run python main.py contribution process $GITHUB_EVENT_PATH
```
--------------------------------
### Sort and Organize Internship Listings
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
Provides functions to sort internship listings and mark stale (inactive) ones. `sort_listings` organizes entries by activity status and date posted, ensuring a consistent display order. `mark_stale_listings` updates the status of older listings based on predefined age thresholds, differentiating between Simplify and non-Simplify sources.
```python
from list_updater.listings import sort_listings, mark_stale_listings
listings = get_listings_from_json()
# Sort listings (active first, then by date posted descending)
sorted_listings = sort_listings(listings)
# Mark old listings as inactive based on age thresholds
# Non-Simplify listings: inactive after 2 months
# Simplify listings: inactive after 2 months
updated_listings = mark_stale_listings(listings)
```
--------------------------------
### Search and Filter Internship Listings (Python)
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
Searches and filters internship listings based on various criteria such as company name, job title, location, and category. Supports filtering by active or inactive status and limiting the number of results. Requires `uv` and `python`.
```bash
# Search by company name
uv run python main.py listings search --company "Google"
# Search by job title
uv run python main.py listings search --title "machine learning"
# Search by location
uv run python main.py listings search --location "Remote"
# Filter by category
uv run python main.py listings search --category "Software"
# Show only active listings
uv run python main.py listings search --company "Meta" --active
# Show only inactive listings
uv run python main.py listings search --inactive --limit 50
# Combine multiple filters
uv run python main.py listings search --category "Data Science" --location "San Francisco" --active --limit 10
```
--------------------------------
### Internship Listing JSON Schema
Source: https://github.com/simplifyjobs/summer2026-internships/blob/dev/CONTRIBUTING.md
Defines the structure for internship entries in the `listings.json` file. Each entry includes details like company name, locations, title, dates, URL, and visibility status.
```json
{
"company_name": "Capital One",
"locations": ["McLean, VA", "Plano, TX"],
"title": "Product Development Intern",
"date_posted": 1690430400,
"terms": ["Summer 2024"],
"active": true,
"url": "https://example.com/job/123",
"is_visible": true,
"source": "Simplify",
"company_url": "",
"date_updated": 1690430400,
"id": "98b2d671-3f03-430e-b18c-e5ddb8ce5035"
}
```
--------------------------------
### Embed Tables in README Files (Python)
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
Programmatically updates README files with generated internship tables. Uses functions from `list_updater.readme_generator` and `list_updater.listings`.
```python
from list_updater.readme_generator import embed_table, check_and_insert_warning
from list_updater.listings import get_listings_from_json, filter_summer, filter_off_season
listings = get_listings_from_json()
# Generate main README with active Summer 2026 listings
summer_2026 = filter_summer(listings, "2026", earliest_date=1748761200)
embed_table(summer_2026, "README.md", active_only=True)
# Generate inactive listings READMEembed_table(summer_2026, "README-Inactive.md", inactive_only=True)
# Generate off-season README
off_season = filter_off_season(listings)
embed_table(off_season, "README-Off-Season.md", off_season=True)
# Check file size and insert warning if needed (for GitHub's 500KB preview limit)
content = open("README.md").read()
content_with_warning = check_and_insert_warning(content, repo_name="Summer2026-Internships")
```
--------------------------------
### Load Internship Listings from JSON
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
Loads and parses internship listings from a JSON file. It supports loading from a default path or a custom specified path. The function returns a list of dictionaries, where each dictionary represents an internship listing with a defined structure.
```python
from list_updater.listings import get_listings_from_json
# Load all listings from the default path
listings = get_listings_from_json()
# Output: Received 12000 listings from listings.json
# Load from a custom path
listings = get_listings_from_json("/path/to/custom/listings.json")
# Each listing is a dictionary with this structure:
# {
# "company_name": "Google",
# "company_url": "https://simplify.jobs/c/Google",
# "title": "Software Engineering Intern",
# "date_posted": 1705363200, # Unix timestamp
# "date_updated": 1705363200,
# "url": "https://careers.google.com/jobs/123",
# "terms": ["Summer 2026"],
# "locations": ["Mountain View, CA", "Remote"],
# "active": True,
# "is_visible": True,
# "source": "Simplify",
# "id": "98b2d671-3f03-430e-b18c-e5ddb8ce5035",
# "sponsorship": "Offers Sponsorship",
# "category": "Software Engineering",
# "degrees": ["Bachelor's"]
# }
```
--------------------------------
### Bulk Mark Listings as Inactive with Python CLI
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
This command processes bulk_mark_inactive issues to mark multiple listings as closed at once. It requires the GitHub event path containing the issue details. The command requires the 'uv' and 'python' executables.
```bash
uv run python main.py listings mark-inactive $GITHUB_EVENT_PATH
```
--------------------------------
### GitHub Actions Integration Utilities (Python)
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
Provides utilities for setting output variables and handling errors within GitHub Actions workflows. Uses functions from `list_updater.github`.
```python
from list_updater.github import set_output, fail
# Set output variables for GitHub Actions
set_output("commit_message", "added listing: Software Engineer Intern at Google")
set_output("commit_email", "contributor@example.com")
set_output("commit_username", "contributor123")
# Handle multiline output (automatically uses heredoc format)
summary = """## Summary
- Added 5 new listings
- Updated 3 listings
- Marked 2 as inactive"""
set_output("summary_comment", summary)
# Exit with error and set error message
if not listings:
fail("No listings found in database")
# Sets error_message output and exits with code 1
```
--------------------------------
### Linting Project Code
Source: https://github.com/simplifyjobs/summer2026-internships/blob/dev/CONTRIBUTING.md
Commands to check and format the project's Python code using Ruff. `ruff check` identifies code style issues and potential errors, while `ruff format` automatically reformats the code to adhere to consistent style guidelines.
```bash
uv run ruff check .
uv run ruff format .
```
--------------------------------
### Access Constants for Listings (Python)
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
Accesses predefined constants related to the internship listings schema, categories, and FAANG+ companies. Uses constants from `list_updater.constants`.
```python
from list_updater.constants import LISTING_SCHEMA_PROPS, CATEGORIES, FAANG_PLUS
# Required schema properties for each listing
print(LISTING_SCHEMA_PROPS)
# Output: ['source', 'company_name', 'id', 'title', 'active', 'date_updated',
# 'is_visible', 'date_posted', 'url', 'locations', 'company_url',
# 'terms', 'sponsorship']
# Available job categories
print(CATEGORIES)
# Output: {
# 'Software': {'name': 'Software Engineering', 'emoji': '💻'},
# 'Product': {'name': 'Product Management', 'emoji': '📱'},
# 'AI/ML/Data': {'name': 'Data Science, AI & Machine Learning', 'emoji': '🤖'},
# 'Quant': {'name': 'Quantitative Finance', 'emoji': '📈'},
# 'Hardware': {'name': 'Hardware Engineering', 'emoji': '🔧'}
# }
# FAANG+ companies (marked with fire emoji)
print("google" in FAANG_PLUS) # True
print("microsoft" in FAANG_PLUS) # True
print("random-startup" in FAANG_PLUS) # False
```
--------------------------------
### Mark Listings Inactive with CLI
Source: https://github.com/simplifyjobs/summer2026-internships/blob/dev/CONTRIBUTING.md
Marks multiple internship listings as inactive using a specified event file. This command is useful for bulk updates and requires the `uv` environment.
```bash
uv run python main.py listings mark-inactive
```
--------------------------------
### Validate listings.json Schema and Data with CLI
Source: https://github.com/simplifyjobs/summer2026-internships/blob/dev/CONTRIBUTING.md
Validates the `listings.json` file against its schema and checks data integrity. The `--fix` flag attempts to automatically correct validation errors.
```bash
uv run python main.py listings validate
uv run python main.py listings validate --fix
```
--------------------------------
### Format Location String
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
Formats a list of locations into an HTML string with line breaks. Assumes a function `get_locations` is available.
```python
listing = {"locations": ["San Francisco, CA", "New York, NY", "Remote"]}
location_html = get_locations(listing)
# Output: "San Francisco, CA
New York, NY
Remote"
```
--------------------------------
### Generate Internship Statistics (Python)
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
Generates statistical insights from internship listings. This command outputs a JSON object containing total listings, active/inactive counts, visible/hidden counts, and a breakdown by category, along with top companies. It requires the `uv` and `python` environment.
```bash
uv run python main.py listings stats --json
```
--------------------------------
### Validate Internship Listings Data (Python)
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
Validates the `listings.json` file for schema violations, duplicates, and data integrity issues. It reports errors and warnings, and can optionally attempt automatic fixes. Requires `uv` and `python`.
```bash
# Validate listings.json
uv run python main.py listings validate
# Attempt automatic fixes where possible
uv run python main.py listings validate --fix
```
--------------------------------
### Remove Individual Listings with Python CLI
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
This command allows for the removal or hiding of individual internship listings. Listings can be identified by URL or ID. Options include marking as inactive, hiding from READMEs, or permanent deletion with confirmation. The command requires the 'uv' and 'python' executables.
```bash
uv run python main.py listings remove --url "https://example.com/job/123"
```
```bash
uv run python main.py listings remove --id "98b2d671-3f03-430e-b18c-e5ddb8ce5035" --hide
```
```bash
uv run python main.py listings remove --url "https://example.com/job/123" --permanent --confirm
```
--------------------------------
### Process Approved Contribution Issue with CLI
Source: https://github.com/simplifyjobs/summer2026-internships/blob/dev/CONTRIBUTING.md
Processes an approved contribution issue by extracting data from the event file and updating `listings.json`. This is used by the 'Contribution Approved' GitHub Action.
```bash
uv run python main.py contribution process
```
--------------------------------
### Listings JSON Schema Definition
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
Defines the structure of the internship listings data stored in JSON format. Includes fields like company name, URL, title, dates, locations, and sponsorship status.
```json
{
"company_name": "Google",
"company_url": "https://simplify.jobs/c/Google",
"title": "Software Engineering Intern, Summer 2026",
"date_posted": 1705363200,
"date_updated": 1705450000,
"url": "https://careers.google.com/jobs/results/123456",
"terms": ["Summer 2026"],
"locations": ["Mountain View, CA", "New York, NY", "Remote"],
"active": true,
"is_visible": true,
"source": "Simplify",
"id": "98b2d671-3f03-430e-b18c-e5ddb8ce5035",
"sponsorship": "Offers Sponsorship",
"category": "Software Engineering",
"degrees": ["Bachelor's"]
}
```
--------------------------------
### GitHub Actions: Contribution Approved Workflow (YAML)
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
A GitHub Actions workflow that triggers when an issue is labeled 'approved'. It checks out code, processes contributions using Python, and commits changes.
```yaml
# .github/workflows/contribution_approved.yml
name: Contribution Approved
on:
issues:
types: [labeled]
jobs:
process:
if: github.event.label.name == 'approved'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v4
- name: Process contribution
run: uv run python main.py contribution process $GITHUB_EVENT_PATH
- name: Commit changes
run: |
git config user.name "${{ steps.process.outputs.commit_username }}"
git config user.email "${{ steps.process.outputs.commit_email }}"
git add .github/scripts/listings.json
git commit -m "${{ steps.process.outputs.commit_message }}"
git push
```
--------------------------------
### Type Checking Project Code
Source: https://github.com/simplifyjobs/summer2026-internships/blob/dev/CONTRIBUTING.md
Performs static type checking on the project's Python code using Mypy. This command helps catch type-related errors before runtime, ensuring code robustness and maintainability.
```bash
uv run mypy .
```
--------------------------------
### Filter Internship Listings by Season and Status
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
Filters internship listings to isolate specific seasons (Summer, Off-season) and active/inactive statuses. It requires a list of listings as input and returns a subset based on the specified criteria. The functions `filter_summer` and `filter_off_season` use date parameters for precise filtering.
```python
from list_updater.listings import filter_summer, filter_off_season, filter_active
listings = get_listings_from_json()
# Filter for Summer 2026 internships (posted after a specific date)
earliest_date = 1748761200 # June 1, 2025 timestamp
summer_2026 = filter_summer(listings, year="2026", earliest_date=earliest_date)
print(f"Found {len(summer_2026)} Summer 2026 internships")
# Filter for off-season internships (Fall, Winter, Spring)
off_season = filter_off_season(listings)
print(f"Found {len(off_season)} off-season internships")
# Filter for only active (open) listings
active_listings = filter_active(listings)
print(f"Found {len(active_listings)} active internships")
```
--------------------------------
### Classify Job Categories
Source: https://context7.com/simplifyjobs/summer2026-internships/llms.txt
Automatically assigns job categories based on keywords found in the job title. It includes a function to classify individual jobs and a utility to ensure all listings in a dataset have valid categories, filtering out irrelevant roles. The classification logic is based on predefined rules and keywords.
```python
from list_updater.category import classify_job_category, ensure_categories
# Classify a single job
job = {
"title": "Machine Learning Engineering Intern",
"company_name": "AI Startup"
}
category = classify_job_category(job)
print(category) # Output: "Data Science, AI & Machine Learning"
# More classification examples
jobs = [
{"title": "Software Development Intern"}, # → "Software Engineering"
{"title": "Product Manager Intern"}, # → "Product Management"
{"title": "Quantitative Trading Intern"}, # → "Quantitative Finance"
{"title": "FPGA Design Intern"}, # → "Hardware Engineering"
{"title": "Backend Developer"}, # → "Software Engineering"
{"title": "Data Analyst Intern"}, # → "Data Science, AI & Machine Learning"
{"title": "IT Help Desk Intern"}, # → None (filtered out)
]
for job in jobs:
result = classify_job_category(job)
print(f"{job['title']}: {result}")
# Ensure all listings in a list have valid categories
listings = get_listings_from_json()
categorized = ensure_categories(listings, verbose=True)
# Output: Filtered out 45 excluded roles (IT support, help desk, etc.)
```
=== COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.