Skip to content

v1.0.0

Latest

Choose a tag to compare

@Ahnaf19 Ahnaf19 released this 01 Jan 08:15
· 22 commits to main since this release

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.json schema + job.md headings 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 usage

Output 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/1436685

This 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.md

For Contributors (Full Test Suite)

node --test

This runs:

  • Unit tests (core parser logic with fixtures)
  • Schema validation (ensures required job.json fields)
  • 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


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_version
  • title, company
  • summary, requirements, responsibilities_context, company_information

Optional fields:

  • application_deadline, published
  • skills_expertise, compensation_other_benefits
  • read_before_apply

job.md Headings (Stable)

Top-level sections in this order:

  1. Summary
  2. Requirements (Education / Experience / Additional Requirements / Required Skills / Preferred Qualifications)
  3. Responsibilities & Context
  4. Skills & Expertise
  5. Compensation & Other Benefits
  6. Read Before Apply
  7. Company Information
  8. 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"
done

Acknowledgments

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.json or 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)