Skip to content

Deployment

This checkout uses Cloudflare Workers for ats.jilva.dev. The original upstream application also supports other SvelteKit adapters.

The checked-in wrangler.jsonc uses the ats-screener Worker, the Cloudflare adapter’s generated entry point, an ASSETS binding, and nodejs_compat. Preserve the existing Worker secrets and domain configuration when deploying. The full build also builds and copies the documentation site.

  1. Run pnpm validate (typecheck, lint, formatting, unit tests, and the full build).
  2. Run pnpm exec wrangler deploy --dry-run to check the generated Worker package.
  3. Deploy using pnpm deploy. For provider acceptance before promotion, use pnpm exec wrangler versions upload and test its preview URL, then promote that exact version with pnpm exec wrangler versions deploy VERSION_ID@100 --yes.
  4. Verify /healthz, /api/version, and an actual /api/analyze response. The build identity in the response must match the capability endpoint. For full-input acceptance, run node scripts/verify-full-input.mjs ORIGIN OUTPUT.json.

Worker versions provide a rollback target. Record the previous active version before promotion; this application update does not require a database migration.

To deploy on Vercel, install @sveltejs/adapter-vercel and select it in svelte.config.js.

Terminal window
# install Vercel CLI
pnpm add -g vercel
# deploy
vercel --prod

In the Vercel dashboard:

  1. Go to your project > Settings > Environment Variables
  2. Add your API keys:
    • GEMINI_API_KEY (required)
    • GROQ_API_KEY (recommended fallback)
  3. Add your Firebase config (all PUBLIC_FIREBASE_* variables from .env.example)
Terminal window
# install the adapter
pnpm add -D @sveltejs/adapter-netlify
# update svelte.config.js to use adapter-netlify
# deploy via Netlify CLI or Git integration
FROM node:24-slim AS base
RUN npm i -g pnpm
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN pnpm install --frozen-lockfile
COPY . .
RUN pnpm build
FROM node:24-slim
WORKDIR /app
COPY --from=base /app/build ./build
COPY --from=base /app/package.json .
EXPOSE 3000
CMD ["node", "build"]

After deploying to Vercel:

  1. Go to your project’s Settings > Domains
  2. Add your domain
  3. Follow the DNS instructions
  4. SSL is automatic

ATS Screener is MIT licensed. You’re free to self-host, fork, and modify it. The MIT license requires that the original copyright notice and LICENSE file remain intact in your copy of the source code.

Beyond the license, this project has a strong community expectation around visible attribution. If you deploy a public instance or build a product on top of ATS Screener, you are expected to include a visible credit in your site’s footer linking back to the original project and repository and crediting Sunny Patel as the creator.

Something like: Built on ATS Screener by Sunny Patel

This is a solo-built project by a student developer who chose to open source it so others could learn from it and use it freely. Respecting that by keeping attribution visible is how open source communities stay healthy. Forks that strip credit and present the work as entirely their own will not receive support, contributions, or upstream updates from this project. Removing attribution and passing it off as your own work isn’t cool.