swelist is an open-source CLI for tech job seekers — real-time job listings, a local SQLite application tracker, and AI-powered interview prep. No account required.
$
pip install swelist
$
swelist run --role newgrad --location "San Francisco, Remote"
Found 22 postings in TimeFilter.lastweek
Everything you need
swelist covers the full lifecycle — from discovering open roles to tracking every application and preparing for each interview.
Real-time internship and new-grad listings from SimplifyJobs. Filter by role, timeframe, and location. Stateless, no auth needed.
Local SQLite application tracker. Add, update, query, list, and export your applications. No cloud account — your data stays local.
AI-powered interview prep. Generate STAR answers, "why this company" responses, and career Q&A — powered by OpenAI GPT-4o.
swelist run
Pull real-time tech internship and new-grad postings straight from curated GitHub repositories. Filter by role type, recency, and any number of locations — no login, no API key.
--role — internship or newgrad
--timeframe — lastday, lastweek, lastmonth
--location — single or comma-separated cities / state codes
Plain-text output — pipe directly to AI agents or scripts
$ swelist run --role newgrad --timeframe lastweek --location "San Francisco, Remote"
Welcome to swelist.com
Found 1284 tech internships · 892 new-grad jobs
Found 22 postings for 'San Francisco, Remote'
Company: Amazon
Title: Software Development Engineer Intern
Locations: ['Seattle, WA', 'Remote']
Link: https://amazon.jobs/...
Company: Stripe
Title: Software Engineer, Intern
Locations: ['Remote']
Link: https://stripe.com/jobs/...
swelist tracker
A local SQLite tracker that lives on your machine. No subscriptions, no cloud sync — just fast, private application management from the command line.
Create the local SQLite database. Safe to re-run — idempotent.
Record a new application with status, job ID, and applied date. Skips silently if it already exists.
Change the status or notes of any application. Validates against the four allowed statuses.
JSON lookup by exact name — perfect for agent-driven deduplication. Exit 1 when not found.
Rich table view with color-coded statuses. Filter by status or company name partial match.
Dump all applications to CSV or JSON for spreadsheets, dashboards, or agent pipelines.
$ swelist tracker init
Tracker initialized at ~/.offerplus/applications.db
$ swelist tracker add "OpenAI — Software Engineer" --status "In progress" --applied-on 2026-05-11
Added: OpenAI — Software Engineer → In progress
$ swelist tracker update "OpenAI — Software Engineer" --status "Rejected"
Updated: OpenAI — Software Engineer → Rejected
$ swelist tracker list --status "In progress"
┌─────────────────────────────────┬──────────────┬────────────┐
│ Application │ Status │ Applied │
├─────────────────────────────────┼──────────────┼────────────┤
│ Netflix — SWE 4 - Ads Eng. │ In progress │ 2026-04-28 │
│ Anthropic — Research Platform │ In progress │ 2026-04-25 │
└─────────────────────────────────┴──────────────┴────────────┘
STEP 0 Read profile.md → tracker_backend = sqlite
DB_PATH = ~/.offerplus/applications.db
STEP 1 Search Gmail for application emails
→ Found 36 threads
STEP 2 Parse threads → applications[]
Amazon — SDE, AWS → In progress
Red Hat — SWE → Rejected
STEP 3 Dedup via swelist tracker get
STEP 4 swelist tracker add / update
✔ Synced 36 application(s) [backend: sqlite]
Claude Code Skills
swelist ships two Claude Code skills, published on ClawHub. Install them once and your AI agent can sync Gmail job emails directly into your local tracker — or Notion.
application-manager
Syncs Gmail application emails → SQLite or Notion. Reads profile.md for your config automatically.
swelist
Full agent contract for swelist CLI — job listings, tracker CRUD, and jobgpt — so agents invoke it correctly.
swelist jobgpt
Three AI-powered subcommands — powered by GPT-4o — to help you prepare compelling answers and career advice, right from your terminal.
jobgpt ask "How do I negotiate salary?"
Ask any career or job-search question and get a direct, expert answer.
jobgpt why-company "Stripe" --background "5 years backend, payments focus"
Generate a compelling "why this company" answer tailored to your background.
jobgpt behavioral "Tell me about a time you dealt with conflict" --resume ./resume.txt
Get a polished STAR-format answer grounded in your actual experience.
╭─ STAR Answer ──────────────────────────────╮
│
│ Situation: During my internship at Acme,
│ our team disagreed on the API design for a
│ new service — REST vs GraphQL.
│
│ Task: As the engineer writing the initial
│ spec, I needed to drive us to a decision.
│
│ Action: I drafted a one-page trade-off doc
│ and scheduled a 30-minute sync.
│
│ Result: Consensus in 20 minutes. Shipped
│ on time, zero breaking changes in 6 months.
│
╰────────────────────────────────────────────╯
No account. No config file. Just install and run.
Install
Find jobs
Track applications
$ swelist tracker init
$ swelist tracker add "Stripe — Backend Engineer" --status "In progress"
$ swelist tracker list
Prep for interviews (requires OPENAI_API_KEY)
~/.offerplus/applications.db. Nothing leaves your machine. You can also use Notion as an alternative backend via the application-manager Claude Code skill.OPENAI_API_KEY. Install the ai extra: pip install swelist[ai]. The swelist run and tracker subcommands are completely free with no API key needed.clawhub skill install job-application-manager.Free, open source, and built for developers. One install, three superpowers.