Skip to content

Repository files navigation

Guild AI Job Application Automation

Guild is a local-first AI job application automation toolkit. It helps you find roles, score fit, generate tailored CV and cover-letter packets, track applications, and autofill forms while keeping runtime data on your machine.

Guild is designed for people who want leverage without losing control: AI can rank roles and prepare materials, but the final review and Submit click stay with you.

What Guild Does

  • Scrapes supported job boards and company career pages into a local SQLite database.
  • Deduplicates postings and applies configurable keyword, location, seniority, and company filters.
  • Scores surviving roles with a pluggable AI driver. The default driver uses codex exec --json.
  • Generates a tailored LaTeX CV and cover letter from your structured CV facts.
  • Serves a local Next.js dashboard for inbox triage, packet review, apply queue, tracker, settings, and health checks.
  • Provides a Chrome MV3 extension that receives a packet from the web app, autofills known fields, attaches PDFs, and highlights fields that still need manual input.
  • Stores local runtime data under GUILD_HOME (default: ~/.guild).

Guild does not auto-submit applications. It intentionally stops before the final submit action.

Status

Guild is early open-source software. The core local pipeline, dashboard, CV/cover generation, AI adapter, and extension handoff exist. Job-board and ATS selectors are expected to need maintenance because hiring sites change often.

Repository Layout

apps/web          Next.js local dashboard
apps/extension    Chrome MV3 autofill extension
apps/cli          CLI commands for setup, AI smoke tests, cron, scraping, packets
packages/db       Prisma + SQLite schema/client
packages/config   zod-validated YAML config loaders
packages/scoring  prefiltering, prompts, score validation
packages/cv-engine structured CV schema, tailoring validators, LaTeX rendering
packages/cover-letter cover-letter generation and rendering
packages/scrapers board, ATS, company, dedupe, and dispatch logic
packages/shared   local paths, logger, shared types
config/           starter profile, filters, AI config, company seed lists
docs/             architecture, configuration, safety, and development docs

Requirements

  • macOS for the launchd cron helper. Most packages are plain Node/TypeScript, but cron and browser-profile assumptions are macOS-first.
  • Node.js 22 LTS.
  • pnpm 9.12.0 via Corepack.
  • Tectonic for LaTeX-to-PDF rendering.
  • Google Chrome for the extension/browser profile workflow.
  • Codex CLI if using the default AI driver.
brew install tectonic
corepack enable
corepack prepare pnpm@9.12.0 --activate
pnpm install

First Run

Initialize local CV files and templates:

pnpm guild init

This creates:

~/.guild/data/cv/cv.yaml
~/.guild/data/cv/templates/cv.tex.eta
~/.guild/data/cv/templates/cover.tex.eta

Customize the starter files:

  • Edit config/profile.yaml for your name, target roles, locations, compensation thresholds, language level, work authorization, and earliest start date.
  • Edit config/filters.yaml for roles you want, roles you want to block, location rules, and blocked companies.
  • Edit config/ai.yaml for the AI driver, model, concurrency, budget, timeout, and retry settings.
  • Edit ~/.guild/data/cv/cv.yaml with your real CV facts. Keep claims factual; validators are designed to prevent AI from inventing new bullets.

Then prepare the database:

pnpm --filter @guild/db run migrate:deploy

Start the local dashboard:

pnpm --filter @guild/web dev

Open http://localhost:3000.

Useful Commands

pnpm guild init                         # create starter local CV/template files
pnpm guild ai:test                      # smoke-test configured AI driver
pnpm guild cv:render-master             # render ~/.guild/data/cv/cv.yaml to PDF
pnpm guild demo:full apps/cli/fixtures/sample-job.json
pnpm guild chrome:setup                 # launch dedicated Chrome profile for logged-in boards
pnpm guild seed:companies de            # detect ATS metadata for config/companies.de.txt
pnpm guild pipeline:daily               # scrape, dedupe, prefilter, score
pnpm guild install:cron                 # install daily macOS launchd run
pnpm guild uninstall:cron

Chrome Extension

Build the extension:

pnpm --filter @guild/extension build

Load it in Chrome:

  1. Open chrome://extensions.
  2. Enable Developer mode.
  3. Click "Load unpacked".
  4. Select apps/extension/dist.

From the Apply Queue in the web app, use "Open & Autofill" to send a one-use packet token to the target application page. The extension fills known fields, attaches packet files when possible, and highlights anything that needs manual input.

Custom Private Config

You can keep personal config outside the Git checkout:

mkdir -p ~/.guild-config
cp config/profile.yaml ~/.guild-config/profile.yaml
cp config/filters.yaml ~/.guild-config/filters.yaml
cp config/ai.yaml ~/.guild-config/ai.yaml
export GUILD_CONFIG_DIR="$HOME/.guild-config"

You can also move runtime data:

export GUILD_HOME="$HOME/.guild-dev"

See docs/configuration.md for every supported environment variable and YAML field.

Safety Model

Guild is local-first and human-reviewed:

  • Runtime database, generated PDFs, raw scraped HTML, Chrome profile, AI logs, and learned selectors stay under GUILD_HOME.
  • Every AI response that crosses a trust boundary is schema-validated.
  • Job descriptions are treated as untrusted prompt input.
  • CV tailoring can reorder, drop, and lightly rephrase existing bullets, but validators reject invented bullet IDs and large factual changes.
  • The extension never clicks final submit for you.

See docs/scraping-and-safety.md.

Development

pnpm test
pnpm typecheck
pnpm build

Tests live next to source as *.test.ts. The repo uses TypeScript strict mode, zod validation, Prisma, Vitest, Next.js, and pnpm workspaces.

Contributions are welcome. Start with CONTRIBUTING.md and docs/development.md.

License

MIT. See LICENSE.

About

Guild: local-first AI job application automation for scraping roles, scoring fit, generating tailored CV/cover packets, tracking applications, and autofilling forms with human review.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages