Deployment
This checkout uses Cloudflare Workers for ats.jilva.dev. The original upstream
application also supports other SvelteKit adapters.
Cloudflare Workers
Section titled “Cloudflare Workers”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.
- Run
pnpm validate(typecheck, lint, formatting, unit tests, and the full build). - Run
pnpm exec wrangler deploy --dry-runto check the generated Worker package. - Deploy using
pnpm deploy. For provider acceptance before promotion, usepnpm exec wrangler versions uploadand test its preview URL, then promote that exact version withpnpm exec wrangler versions deploy VERSION_ID@100 --yes. - Verify
/healthz,/api/version, and an actual/api/analyzeresponse. The build identity in the response must match the capability endpoint. For full-input acceptance, runnode 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.
Vercel
Section titled “Vercel”To deploy on Vercel, install @sveltejs/adapter-vercel and select it in svelte.config.js.
# install Vercel CLIpnpm add -g vercel
# deployvercel --prodSet Environment Variables
Section titled “Set Environment Variables”In the Vercel dashboard:
- Go to your project > Settings > Environment Variables
- Add your API keys:
GEMINI_API_KEY(required)GROQ_API_KEY(recommended fallback)
- Add your Firebase config (all
PUBLIC_FIREBASE_*variables from.env.example)
Netlify
Section titled “Netlify”# install the adapterpnpm add -D @sveltejs/adapter-netlify
# update svelte.config.js to use adapter-netlify
# deploy via Netlify CLI or Git integrationDocker
Section titled “Docker”FROM node:24-slim AS baseRUN npm i -g pnpm
WORKDIR /appCOPY package.json pnpm-lock.yaml ./RUN pnpm install --frozen-lockfile
COPY . .RUN pnpm build
FROM node:24-slimWORKDIR /appCOPY --from=base /app/build ./buildCOPY --from=base /app/package.json .
EXPOSE 3000CMD ["node", "build"]Custom Domain
Section titled “Custom Domain”After deploying to Vercel:
- Go to your project’s Settings > Domains
- Add your domain
- Follow the DNS instructions
- SSL is automatic
Attribution
Section titled “Attribution”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.