JobSnap v1.0.0 - Save first, stop hunting JD later
Introducing stable baseline v1.0.0 for JobSnap: save BDJobs circulars locally (Markdown/JSON/HTML) via CLI or extension, backed by a locked output contract and regression-tested parser.
What v1.0.0 Means for You
Reliability
The output format is now locked and documented. job.json fields and job.md headings won't change without a major version bump. Any JD you save today will work with future versions of JobSnap.
Quality Guaranteed
Every release is now tested against real BDJobs pages. Regressions are caught before release with automated fixture tests.
Two Interfaces, One Parser
CLI and Chrome extension produce identical output. Use whichever fits your workflow—you'll get the same clean Markdown every time.
Highlights
- Stable contract:
job.jsonschema +job.mdheadings are now documented and locked - Dual-path parser: Extracts BDJobs' embedded JSON + falls back to text scraping for resilience
- CLI workflows:
save,reparse,--dry-run, templates, config defaults - Extension: One-click downloads from current tab or pasted URL with filename customization
- Quality gates: Regression suite with fixture validation + schema checks
What's Included
CLI Commands
jobsnap save <url> # Fetch and save a BDJobs circular
jobsnap reparse <job_dir> # Re-parse from raw.html (no re-download)
jobsnap save <url> --dry-run # Preview output without writing files
jobsnap --help # Show full usageOutput Files (Per Job)
jobs/<job_id>/
raw.html ← Original page snapshot
job.json ← Structured data (stable schema)
job.md ← Clean Markdown (stable headings)
jobs/
index.jsonl ← Append-only catalog of all saved jobs
Chrome Extension Features
- Download from current BDJobs tab (one click)
- Download from pasted URL (paste → download)
- Customize filename (check/uncheck Title, Company, Job ID)
- Set defaults in options page
- Same parser as CLI—guaranteed identical output
Breaking Changes
None. v1.0.0 is fully backward compatible with all v0.x releases.
All existing job.json and job.md files from v0.x will work without modification.
Upgrading from v0.x
No breaking changes. v1.0.0 is backward compatible with all v0.x output.
What Changed from v0.7 to v1.0
v0.7 introduced quality gates (fixtures, schema validation). v1.0 builds on that foundation:
- Documentation: Output contract now formally documented in README
- Guarantees: Committed to semantic versioning for output format
- Stability: Parser behavior locked—no surprise changes
- Polish: Final UX improvements and error message refinements
- Distribution: Ready for public use and contributions
Technical changes:
- None. v1.0 is a stability milestone, not a feature release.
Recommended Action
Run jobsnap reparse on old jobs to regenerate with v1.0 parser improvements:
jobsnap reparse jobs/1436685This regenerates job.json and job.md from the saved raw.html without re-downloading.
Who Should Upgrade?
Current v0.x Users
Upgrade immediately. v1.0 adds stability guarantees without breaking changes. Your existing data remains compatible.
New Users
Start with v1.0. It's the first production-ready release with documented contracts and quality gates.
Contributors/Developers
Required. v1.0 is the new baseline. All future PRs will target v1.0+.
The Journey: v0.1 → v1.0
| Version | Focus | Achievement |
|---|---|---|
| v0.1 | Foundation | Core parser, CLI, extension, basic output |
| v0.2 | UX | Skip mode, text cleanup, UI redesign |
| v0.3 | Config | Templates, jobsnap.config.json, defaults |
| v0.4 | Resilience | Better fallback parsing, section detection |
| v0.5 | Distribution | npm install, single-file build, dry-run |
| v0.6 | Diagnostics | Clear CLI error messages, status hints |
| v0.7 | Quality | Fixture regression suite, schema validation |
| v1.0 | Stability | Production-ready contract ✅ |
v1.0 vs v0.x (short)
- Same CLI + extension + dual-path parser as v0.x
- Adds a documented output contract with a stability guarantee
- Locks in quality gates (fixtures + schema checks) as the baseline
Testing
For Users (Smoke Testing)
# Install globally
npm install -g .
# Test save workflow
jobsnap save "https://bdjobs.com/jobs/details/1436685"
# Test reparse workflow
jobsnap reparse jobs/1436685
# Verify output
cat jobs/1436685/job.mdFor Contributors (Full Test Suite)
node --testThis runs:
- Unit tests (core parser logic with fixtures)
- Schema validation (ensures required
job.jsonfields) - Markdown contract tests (validates stable headings)
- Fixture regression (tests against real BDJobs pages, if fixtures present)
What's Next: v2.0 Preview
JobSnap v2.0 will add AI-powered features to help you make better career decisions:
LLM Summary
Automatically extract must-haves vs nice-to-haves from any JD. Know what's critical vs optional.
CV Gap Analysis
Compare your resume against saved JDs. See what skills you have, what you're missing, and what to highlight.
Interview Prep
Generate topic checklists from responsibilities. Know what to study before your interview.
Local Search
Grep-like search across all saved circulars with tagging. Find all jobs requiring "React" or "remote work."
Want to contribute? See CONTRIBUTING.md for how to get involved in v2.0 development.
Known Limitations
- Single job board: Targets
https://bdjobs.com/jobs/details/<job_id>pages only - Manual workflow: No "Applied jobs" automation (you still paste URLs manually)
- No PDF export yet: Markdown only (PDF templates deferred to v2.0+)
- English only: Bangla language support not yet implemented
These are intentional trade-offs to ship a stable v1.0. Multi-platform support, PDF export, and Bangla are planned for future releases.
Documentation
- Full README: README.md
- Output Contract: README.md - Output Contract
- CLI Reference: docs/cli-reference.md
- Extension Guide: README.md - Extension Guide
- FAQ: README.md - FAQ
- Contributing: CONTRIBUTING.md
- License: MIT License
Requirements
- Node.js 18+ (tested with Node 22)
- Chrome browser (for extension)
Installation
From Source (Recommended)
git clone <repo-url>
cd JD_project
npm install
npm install -g .Quick Test
jobsnap save "https://bdjobs.com/jobs/details/1436685"Output Contract (v1.0 Guarantee)
JobSnap v1.0 guarantees this output format. Changes require a major version bump (v2.0+).
job.json Schema (Stable)
Required fields:
job_id,url,saved_at,source,parser_versiontitle,companysummary,requirements,responsibilities_context,company_information
Optional fields:
application_deadline,publishedskills_expertise,compensation_other_benefitsread_before_apply
job.md Headings (Stable)
Top-level sections in this order:
- Summary
- Requirements (Education / Experience / Additional Requirements / Required Skills / Preferred Qualifications)
- Responsibilities & Context
- Skills & Expertise
- Compensation & Other Benefits
- Read Before Apply
- Company Information
- Raw Text (fallback only, when structured parsing fails)
Migration Guide (from v0.x)
No action required. v1.0.0 is backward compatible.
Optional: Reparse old jobs to benefit from v1.0 improvements:
# Reparse a single job
jobsnap reparse jobs/1436685
# Reparse all jobs (bash loop)
for dir in jobs/*/; do
jobsnap reparse "$dir"
doneAcknowledgments
Thanks to everyone who tested early versions and reported issues during the rapid development cycle.
Built to solve a real problem faced during my December 2023 job search in Bangladesh.
Get Started Now
Quick Install
npm install -g .
jobsnap save "https://bdjobs.com/jobs/details/1436685"Full Documentation
See README.md for complete installation, usage, and troubleshooting guides.
Report Issues
Found a bug? Open an issue with:
- JobSnap version (from
package.jsonor release tag) - Node.js version (
node --version) - Steps to reproduce
Contribute
Want to help build v2.0 AI features? See our CONTRIBUTING.md guide.
Star this repo if JobSnap helped you save job circulars! ⭐
Next milestone: v2.0 with AI-powered features (LLM summary, CV gap analysis, interview prep)