diff --git a/README.md b/README.md
index 7b68b19..abbc106 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
JobSnap
Save BDJobs circulars before they disappear.
-
+
@@ -24,9 +24,10 @@
`JobSnap` fixes this:
-- ๐ป **CLI:** `jobsnap save `
-- ๐ **Extension:** One-click from your browser
+- ๐ป **CLI:** `jobsnap save `, `jobsnap list`, `jobsnap export`
+- ๐ **Extension:** One-click download (Markdown or PDF)
+

## What JobSnap Does
@@ -136,9 +137,11 @@ jobsnap save "https://bdjobs.com/jobs/details/1436687" --skip
| ----------------------- | ------------------------------------------------------------------- |
| ๐ **Offline-First** | Your data stays on your disk. No cloud dependencies. |
| ๐ค **AI-Ready** | Clean Markdown works seamlessly with ChatGPT, Claude, etc. |
+| ๐ **List & Filter** | View, sort, and filter saved jobs by deadline, company, or tags. |
+| ๐ **PDF Export** | Export jobs to professional PDFs or HTML with one command. |
| ๐ **Future-Proof** | Re-parse old snapshots if BDJobs changes their format. |
| โก **Dual-Path Parser** | Extracts embedded JSON + text fallback for resilience. |
-| ๐ **Stable Contract** | v1.0 guarantees consistent output format across updates. |
+| ๐ฏ **Smart Dates** | Unambiguous date format (Jan 08, 2026) prevents confusion. |
| ๐จ **Flexible Output** | Customize filenames with templates: `{title}_{company}_{job_id}.md` |
| ๐งช **Tested** | Unit tests, schema validation, fixture regression suite. |
| ๐ **Two Interfaces** | CLI for power users, Chrome extension for one-click saves. |
@@ -166,11 +169,13 @@ jobsnap save "https://bdjobs.com/jobs/details/1436687" --skip
## CLI Commands
-| Command | Description |
-| ----------------------- | --------------------------------- |
-| `jobsnap save ` | Fetch and save a BDJobs circular |
-| `jobsnap reparse ` | Re-parse from existing `raw.html` |
-| `jobsnap --help` | Show usage information |
+| Command | Description |
+| -------------------------- | ---------------------------------------------- |
+| `jobsnap save ` | Fetch and save a BDJobs circular |
+| `jobsnap list` | List all saved jobs with filtering/sorting |
+| `jobsnap export ` | Export job to PDF or HTML |
+| `jobsnap reparse ` | Re-parse from existing `raw.html` |
+| `jobsnap --help` | Show usage information |
### Common Options
@@ -342,25 +347,32 @@ npm test
## Roadmap
-### v1.0 (Current) โ
+### v1.0 โ
- Stable output contract
- Dual-path parser with fallback
- CLI + Chrome extension
- Regression test suite
-### v2.0 (Finger crossed!)
+### v2.0 (Current) โ
+
+- ๐ **List command** - View, sort, and filter saved jobs
+- ๐ **PDF/HTML export** - Export jobs to PDF or HTML with professional styling
+- ๐จ **Enhanced extension** - PDF download with native Chrome support
+- ๐
**Date standardization** - Unambiguous date format (MMM DD, YYYY)
+
+### v3.0 (Planned)
- ๐ค **LLM-powered JD summaries** - Extract must-haves vs nice-to-haves
- ๐ **CV gap analysis** - Compare resume against saved JDs
- ๐ **Interview prep** - Auto-generate topic checklists
-- ๐ **Local search** - Grep-like search with tagging
+- ๐ท๏ธ **Tagging system** - Tag and categorize saved jobs
-### v3.0+ (Future)
+### v4.0+ (Future)
- ๐ **Multi-platform** - LinkedIn, Glassdoor, etc.
-- ๐ **PDF export** - Customizable templates
- ๐ง๐ฉ **Bangla support** - Local job board compatibility
+- ๐ **Advanced search** - Full-text search across all saved jobs
---
diff --git a/assets/jobsnap-demo-v2.svg b/assets/jobsnap-demo-v2.svg
new file mode 100644
index 0000000..24e688f
--- /dev/null
+++ b/assets/jobsnap-demo-v2.svg
@@ -0,0 +1,108 @@
+
diff --git a/assets/jobsnap-demo.gif b/assets/jobsnap-demo.gif
index 1c0bfbb..b19ae0d 100644
Binary files a/assets/jobsnap-demo.gif and b/assets/jobsnap-demo.gif differ
diff --git a/assets/jobsnap-demo.png b/assets/jobsnap-demo.png
index de0545f..53c0ad3 100644
Binary files a/assets/jobsnap-demo.png and b/assets/jobsnap-demo.png differ
diff --git a/core/version.js b/core/version.js
index 4ef7ea7..9e12b9f 100644
--- a/core/version.js
+++ b/core/version.js
@@ -1 +1 @@
-export const PARSER_VERSION = '1.0.0';
+export const PARSER_VERSION = '2.0.0';
diff --git a/docs/cli-reference.md b/docs/cli-reference.md
index cd21da7..f04e803 100644
--- a/docs/cli-reference.md
+++ b/docs/cli-reference.md
@@ -95,6 +95,158 @@ jobs/index.jsonl
---
+### `list`
+
+List all saved jobs with sorting, filtering, and grouping options.
+
+**Usage:**
+
+```bash
+jobsnap list [options]
+```
+
+**Options:**
+
+- `--sort ` - Sort by: `deadline` (default), `company`, `title`, `saved`
+- `--active` - Show only active jobs (deadline not passed)
+- `--expired` - Show only expired jobs (deadline passed)
+- `--tag ` - Filter by tag (e.g., `--tag backend`)
+- `--group-by ` - Group by: `company` or `deadline`
+
+**Examples:**
+
+List all jobs sorted by deadline (default):
+
+```bash
+jobsnap list
+```
+
+Show only active jobs:
+
+```bash
+jobsnap list --active
+```
+
+Sort by company alphabetically:
+
+```bash
+jobsnap list --sort company
+```
+
+Filter by tag:
+
+```bash
+jobsnap list --tag remote
+```
+
+Group by company:
+
+```bash
+jobsnap list --group-by company
+```
+
+Show expired jobs sorted by company:
+
+```bash
+jobsnap list --expired --sort company
+```
+
+**What it does:**
+
+1. Reads `jobs/index.jsonl`
+2. Parses and validates all job entries
+3. Applies filters (active/expired/tag)
+4. Sorts by specified field
+5. Groups if requested
+6. Displays formatted output with color-coded deadlines
+
+**Output format:**
+
+```
+โโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโ
+โ Job ID โ Title โ Company โ Deadline โ
+โโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโค
+โ 1445561 โ Graphic Designer โ Eden Study โ 23d left โ
+โ 1436685 โ Senior Engineer โ ABC Tech โ 15d left โ
+โโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโ
+```
+
+**Deadline color coding:**
+
+- ๐ด Red: Expired
+- ๐ก Yellow: 3 days or less
+- ๐ข Green: 4-7 days
+- โช Gray: More than 7 days
+
+---
+
+### `export`
+
+Export a saved job to PDF or HTML format.
+
+**Usage:**
+
+```bash
+jobsnap export [options]
+```
+
+**Arguments:**
+
+- `` - Path to job directory (e.g., `jobs/1436685`)
+
+**Options:**
+
+- `--format ` - Export format: `pdf` (default) or `html`
+
+**Examples:**
+
+Export to PDF (default):
+
+```bash
+jobsnap export jobs/1436685
+```
+
+Export to HTML:
+
+```bash
+jobsnap export jobs/1436685 --format html
+```
+
+**What it does:**
+
+1. Reads `job.json` and `job.md` from the specified directory
+2. Generates styled HTML with professional layout
+3. For PDF: Uses Puppeteer (headless Chrome) to render vector PDF
+4. For HTML: Saves standalone HTML file
+5. Updates `index.jsonl` with `has_pdf: true` metadata
+
+**Output:**
+
+```
+jobs/1436685/
+ raw.html
+ job.json
+ job.md
+ job.pdf โ New PDF file (~200KB)
+ # or
+ job.html โ New HTML file
+```
+
+**PDF Features:**
+
+- Vector-based (crisp quality, small file size ~200KB)
+- Professional styling with metadata header
+- Consistent branding and layout
+- Print-optimized margins and page breaks
+- Unambiguous date format (Jan 08, 2026)
+
+**Requirements:**
+
+- Puppeteer is automatically installed with JobSnap
+- No additional setup needed
+
+---
+
### `reparse`
Re-parse an existing `raw.html` snapshot without re-downloading.
diff --git a/extension/core/version.js b/extension/core/version.js
index 4ef7ea7..9e12b9f 100644
--- a/extension/core/version.js
+++ b/extension/core/version.js
@@ -1 +1 @@
-export const PARSER_VERSION = '1.0.0';
+export const PARSER_VERSION = '2.0.0';
diff --git a/extension/manifest.json b/extension/manifest.json
index af85454..4c9a71a 100644
--- a/extension/manifest.json
+++ b/extension/manifest.json
@@ -1,8 +1,8 @@
{
"manifest_version": 3,
"name": "JobSnap",
- "version": "1.0.0",
- "description": "Download BDJobs job circulars as Markdown",
+ "version": "2.0.0",
+ "description": "Download BDJobs job circulars as Markdown or PDF",
"permissions": ["activeTab", "downloads", "scripting", "storage", "tabs"],
"host_permissions": ["https://bdjobs.com/*", "https://*.bdjobs.com/*"],
"background": {
diff --git a/package.json b/package.json
index 7f52a44..2e756e6 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "jobsnap",
- "version": "1.0.0",
+ "version": "2.0.0",
"description": "Save BDJobs job circulars as clean, LLM-friendly Markdown",
"type": "module",
"private": false,