Skip to main content
Brian Schwartz
DeckhandAIOpen Source · MIT · Self-hosted

Your job search.
Your data. Your AI.

DeckhandAI is an open-source, self-hosted job search tracker with built-in career page scraping, AI-powered application generation, and no vendor lock-in.

The Problem

ATS filters before humans see you

Most applications are screened by algorithm before a recruiter looks. Your resume needs to match the job description's exact language, which means tailoring every application from scratch, every time.

Pay-to-play job boards

The major boards bury organic results behind sponsored listings. The companies worth targeting often post directly to their own career pages, not to Indeed or LinkedIn. You miss them unless you check manually.

Tracking across everything is chaos

Spreadsheets can't tell you why you applied, which resume version you sent, or what the AI thought of the fit. By week three of an active search, you're guessing.

What It Does

Career Page Scraping

Playwright monitors your target company career pages on a schedule. New roles go to a review queue. You approve before anything hits the board. No noise, no duplicates.

AI Fit Scoring

Every role is scored against your candidate profile: strong, good, caution, or weak, with written rationale. Inline on the board so you know where to spend your time.

Document Generation

Cover letters, tailoring notes, and resume rewrites generated against the live job description. Exports as ATS-safe DOCX built programmatically: proper bullets, tab stops, configurable typography.

Board Management by Chat

An 8-tool assistant lets you manage the board in plain English. Add a job, move it between stages, flag a ghost posting, search for remote roles. Tool status streams in real time.

Any AI Provider

Anthropic, OpenAI, Google Gemini, Grok, Ollama, or any OpenAI-compatible endpoint. Bring your own API key. Nothing is locked to a vendor.

No Database Required

Data lives in a flat JSON file in a private GitHub repository you own. No connection string, no infrastructure cost. Every write is a commit. Version history is automatic.

In Action

Setup

Clone. Configure. Deploy. Under 10 minutes.

1

Clone & configure

Run node scripts/setup.mjs. It walks you through your GitHub token, data repo, and candidate profile. Three environment variables.

2

Add scrape targets

Point the scraper at the company career pages you care about. Per-target options handle static HTML, SPAs, iframes, cookie banners, and pagination.

3

Deploy to Your Site

One click from the README. First launch runs a 4-step onboarding wizard. Under 10 minutes total. Vercel is free, but may have limited capabilities depending on your plan.

Technical

FrameworkNext.js 16 (App Router)
LanguageTypeScript
StylingTailwind CSS v4
ScrapingPlaywright
Exportsdocx (programmatic DOCX)
Authiron-session (signed cookies)
DataGitHub Contents API
AIAny OpenAI-compatible endpoint
HostingVercel (one-click deploy)
LicenseMIT

AI provider compatibility

A unified client resolves to any provider from a single config field. Tool calling uses separate code paths for Anthropic and OpenAI message formats. Both feed the same executor. Tested with Anthropic Claude, OpenAI GPT-4o, Google Gemini, and Ollama (local).

AnthropicOpenAIGoogle GeminiGrok (xAI)OllamaCustom endpoint

Self-host your own instance

MIT license. No subscription, no SaaS, no data you don't own. Everything runs in your Vercel account with your GitHub data.