swelist
A CLI tool for job seekers to track tech internships and new-grad positions. Data is sourced from the Summer2025-Internships and New-Grad-Positions repositories.
Features
- Track both internships and new-grad positions
- Filter job postings by time (last day, week, or month)
- Filter job postings by locations
- View company name, job title, location, and application link
- Real-time data from GitHub repositories
- Local SQLite application tracker (
swelist tracker) - AI-powered interview prep via
swelist jobgpt
Installation
pip install swelist
Usage
Command Line
Basic usage:
# Show internship positions from last 24 hours (default)
swelist
# Show new-grad positions from last 24 hours
swelist --role newgrad
# Show internship positions from last week
swelist --role internship --timeframe lastweek
# Show internship positions for Toronto
swelist --role internship --location Toronto
# Show new-grad positions for last month for Boston and New York
swelist --role newgrad --timeframe lastmonth --location "Boston, New York"
Options
--role: Choose betweeninternship(default) ornewgradpositions--timeframe: Filter postings by time period:lastday(default),lastweek, orlastmonth--location: Filter locations by giving single location:Canadaor multiple locations"Boston, Toronto, New York"
Application Tracker
Track job applications locally with SQLite — no account required:
# Initialize (once)
swelist tracker init
# Add applications
swelist tracker add "Amazon — SDE, AWS" --status "In progress" --job-id 10414382 --applied-on 2026-05-17
# Update status
swelist tracker update "Amazon — SDE, AWS" --status "Rejected"
# View all
swelist tracker list
swelist tracker list --status "In progress" --company amazon
# Export
swelist tracker export --format json
swelist tracker export --format csv
Agent Integration
swelist can be integrated into AI automation workflows to parse job postings and convert them to structured JSON:
import subprocess
import json
# Get job postings
output = subprocess.run(['swelist', '--role', 'internship'], capture_output=True, text=True)
# Parse into structured JSON
jobs = []
current_job = {}
for line in output.stdout.splitlines():
if line.startswith("Company:"):
current_job = {"company": line.split(":", 1)[1].strip()}
elif line.startswith("Title:"):
current_job["title"] = line.split(":", 1)[1].strip()
elif line.startswith("Location:"):
current_job["location"] = line.split(":", 1)[1].strip()
elif line.startswith("Link:"):
current_job["link"] = line.split(":", 1)[1].strip()
jobs.append(current_job)
print(json.dumps(jobs, indent=2))
This enables use cases like:
- Automated daily job tracking agents
- Integration with AI writing assistants for application workflows
- Real-time job aggregation pipelines
Example Output
Welcome to swelist.com
Last updated: Sun Feb 23 13:03:45 2025
Found 1227 tech internships from 2025Summer-Internships
Found 103 new-grad tech jobs from New-Grad-Positions
Sign-up below to receive updates when new internships/jobs are added
Found 15 postings in the last day:
Company: Example Tech
Title: Software Engineering Intern
Location: New York, NY
Link: https://example.com/apply
...
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License
Metadata
Release files for swelist 0.1.10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| swelist-0.1.10.tar.gz | 23.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| swelist-0.1.10-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.2 kB
Release files / swelist-0.1.10.tar.gz
| Download URL | swelist-0.1.10.tar.gz |
|---|---|
| Size | 23.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6488da2f82c5b2b589e3b6f95611b6df1bfb0568bc9918e4975f24718ea8e03a
|
|
BLAKE2b-256 checksum How to use checksums |
ae48d1e41c0bc4aa10a89dfbd2127b47149c2fadeb20dbba4ed1752f8a83927f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 12, 2026.
Transparency logRelease files / swelist-0.1.10-py3-none-any.whl
| Download URL | swelist-0.1.10-py3-none-any.whl |
|---|---|
| Size | 16.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ffc11d0bf40d47451a24ad6cf34f62b469b211dddf15e8232a99021b9e3fd5e2
|
|
BLAKE2b-256 checksum How to use checksums |
db370688de15d2531ac818e89cc93bf6119b0e251347a1687873d0fe581e843d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 12, 2026.
Transparency log