AI cover letter generator — paste a job posting, get a tailored cover letter in seconds.
Note
Archived — sunset 2026. Postulus is no longer operated or maintained. The source is published as a reference / portfolio piece. Issues and PRs are not monitored.
Postulus turned a job posting (raw text or a URL) plus a candidate profile (text or an uploaded PDF résumé) into a tailored cover letter. The first paragraph was generated for free as a preview; the full letter was unlocked with a one-time Stripe payment and exportable to DOCX — no account required.
- Two-step funnel — free first-paragraph preview (Claude) → Stripe Checkout → full generation unlocked by the verified webhook.
- Job-posting URL extraction — fetch + readability parse (
@mozilla/readability+jsdom) with a JobPosting heuristic. - PDF résumé parsing — sent natively to the Anthropic API as a document input (no external OCR).
- DOCX export — generated in memory with
docx. - Multilingual output — EN / FR / ES / DE.
- Hardened Express — Helmet CSP,
express-rate-limit, account-less sessions stored in SQLite (better-sqlite3).
Node.js · Express · @anthropic-ai/sdk · Stripe · better-sqlite3 · docx · helmet · express-rate-limit · @mozilla/readability + jsdom · marked · multer
npm install
cp .env.example .env # fill in the keys
npm start # http://localhost:3003SQLite databases are created under data/ at runtime (gitignored).
| Variable | Purpose |
|---|---|
PORT |
HTTP port (default 3003) |
ANTHROPIC_API_KEY |
Claude API key (generation) |
STRIPE_SECRET_KEY |
Stripe secret key (Checkout) |
STRIPE_WEBHOOK_SECRET |
Stripe webhook signing secret |
DOMAIN |
public base URL used for Stripe redirects |
ALERT_URL, ALERT_HMAC_SECRET |
optional internal error reporting — safe to leave empty |
MIT © 2026 Jamal Tantaoui — built under Iris Digital.