Changelog
What's New in DeckhandAI
14 PRs merged in two weeks, most of them found by using the board every day rather than planned on a roadmap. Five things worth knowing about.
01 / Evaluate a Job From Just a URL
Paste a job posting URL and the assistant takes it from there. It fetches the page, falls back to a headless browser if the page needs one, extracts the role with AI, and scores the fit against your profile, streaming every step live. Nothing gets written to the board until you confirm the card it produces. The Add Job button now defaults to this flow, with a visible toggle back to the plain manual form for anyone who'd rather type it in by hand.
- •Fetch, Playwright fallback, AI extraction, and fit scoring in one streamed flow
- •Confirm-before-write card: nothing lands on the board without your approval
- •Manual entry stays one toggle away, never removed
02 / The Board, Rebuilt Around the Assistant
The board layout changed to put the assistant where the old scrape button and header actions used to be: a full column, 2/3 board and 1/3 assistant from tablet width up, stacked on mobile. Scraping for new postings moved out of a header button entirely and into a chat prompt, streaming real per-target progress instead of one opaque response. Applied, Prospects, and Passed are now card-only, each with its own sort control, and the AI fit rationale that used to be desktop-table-only now shows on every Prospect card.
- •2/3 board, 1/3 assistant rail, sticky and auto-sized to content
- •"Scrape for new jobs" now runs in chat, streaming both remote and local targets in one request
- •Card-only views for all three sections, with per-section sort and fit filter
03 / AI Role Summaries, Generated Automatically
Every job now gets a one- to two-sentence AI summary the moment it's added, whether it came from the evaluate-URL flow, the chat assistant's add_job tool, or a manual entry. It shows on the board card in place of notes, and beside the company and role on the job detail page. It's editable, with a Regenerate button that calls the model fresh off your current form values. Nothing writes until you hit Save. A one-time backfill script ran against the sample data, generating 138 summaries across the shared demo board.
- •Generated automatically on every add path: evaluate, chat, and manual
- •Editable with on-demand regenerate, never overwritten silently
- •Backfilled across existing boards with a dry-run-first script
04 / Chat Interface Polish
A round of fixes to how the assistant's replies actually render, found while shooting marketing screenshots and dogfooding the board daily. Markdown tables render as real tables instead of raw pipe syntax. Numbered lists no longer restart at one when the model writes a blank line between items, which is normal, valid markdown that the old parser treated as the end of the list. Job listings link to their real detail page instead of the model occasionally inventing a placeholder link. Long-running actions like scraping now append status updates instead of overwriting the same line.
- •Real markdown tables, not raw pipe syntax
- •Numbered lists count correctly through blank-line-separated items
- •Every job listing links to a real page, no placeholder links
- •Status updates accumulate during long-running actions instead of overwriting
05 / A Public Demo You Can Actually Use
The demo used to be read-only. Now it's fully interactive: job CRUD, pending-queue triage, and AI evaluation and generation all write through the normal GitHub-backed path against a public demo data repository. A nightly cron resets the demo repo's data files back to the committed sample data, so the shared, unauthenticated demo doesn't drift. The scraper stays disabled, since it would launch a real Playwright browser against live career pages from a public, shared instance.
- •Full CRUD, triage, and AI generation, no login required
- •Nightly reset keeps the shared demo clean for the next visitor
- •Scraper disabled by design, since it would hit live career pages from a public instance
See it running live
The public demo has every one of these updates, reset nightly so it never drifts.