
Caldova Careers - the sample app for the GitHub Copilot CLI workshop
概览
The careers site for , an AI-native pharmaceutical company. Browse open roles and submit an application with your name and email — no account required. This is the sample application for the workshop. It's a deliberately small, realistic app: job postings are Markdown content, and the only database-backed feature is the apply flow. Caldova is a fictional company created for demonstration and training purposes. The roles, locations, and applications in this app are not real. This project is a teaching sample for a GitHub Copilot CLI workshop. It is provided as-is for learning and demonstration purposes and is not intended, hardened, or supported for production use.
README
以下为原文 README 节选,完整内容请查看原文。
Caldova Careers
The careers site for Caldova, an AI-native pharmaceutical company. Browse open roles and submit an application with your name and email — no account required.
This is the sample application for the GitHub Copilot CLI workshop. It’s a deliberately small, realistic app: job postings are Markdown content, and the only database-backed feature is the apply flow.
[!NOTE] Caldova is a fictional company created for demonstration and training purposes. The roles, locations, and applications in this app are not real.
[!WARNING] This project is a teaching sample for a GitHub Copilot CLI workshop. It is provided as-is for learning and demonstration purposes and is not intended, hardened, or supported for production use.
Tech stack
- Astro — static output by default, with a single on-demand route for the apply endpoint (via the
@astrojs/nodeadapter) - Tailwind CSS v4 — styling, themed with the Caldova brand palette
- Astro Content Collections — job postings are Markdown + frontmatter in
src/content/jobs/(validated by a Zod schema) - Drizzle ORM + libSQL (SQLite) — the
applicationstable only - Vitest — unit tests for pure logic and an integration test for the apply insert
- Playwright — end-to-end tests (runs against the built Node server)
Getting started
GitHub Codespaces
Create a repository from this template, then select Code > Codespaces > Create codespace on main. The devcontainer uses Node.js 24 and includes the GitHub CLI. During setup it installs project dependencies and Playwright Chromium, then applies the local database migrations. Wait for setup to finish, run npm run dev, and open forwarded port 4321 in your browser.
Local development
npm install
npm run dev
predev runs db:setup (applies the applications migration) before starting the dev server at .
Data model
- Job postings are files, not database rows: one Markdown file per role in
src/content/jobs/, with frontmatter (title,department,location,type,remote,postedDate,summary) and a Markdown body. The schema lives insrc/content.config.ts. - Applications are the only relational data: the
applicationstable (db/schema.ts) stores each submission — a logicaljobIdreference, the applicant’snameandemail, and optionalnote/links. There is no authentication; the applicant supplies their details directly on the form.
Project structure
src/content/jobs/— job postings (Markdown + frontmatter)src/content.config.ts— content collection schemasrc/lib/jobs.ts— pure helpers overJob[](sorting, formatting)src/lib/applications.ts— application validation schema + insert helpersrc/lib/db.ts— Drizzle/libSQL client for theapplicationstable
推荐工具
换一个关键词,或者移除筛选条件。
安装
npx skillfish add github-samples/caldova-careers