Build with AI

How to build an applicant tracking system with Replit

Build a hiring system in one Replit workspace, from the first message to the day your team starts using it. Applications arrive from your own careers page, the pipeline keeps everyone reading the same record, every interviewer answers the same questions, and offers leave signed, all sitting on a Postgres database Replit provisions for you, and published from the same tab when you are ready.

August 2026 · 37 min read · Updated September 2026

Replit

$ Build me an applicant tracking system: open roles listed publicly, applications landing on a board my team works through, a scorecard for every interview, and offers that go out signed. Add a database for it, and make sure nobody reaches a job they are not on.

  • Database provisioned in the workspace
  • Access scoped per job
  • Ready for you to publish
You describe it, Replit builds it
Start here

What an applicant tracking system actually is

An applicant tracking system is the single place a role lives from the day it opens to the day someone signs: every applicant, every interview note, every decision, and who is allowed to see which of them.

Without one, a role is scattered across an inbox, a shared drive of resumes, and a spreadsheet somebody renames every Friday. Two people interview the same candidate and neither reads the other’s notes. A promising applicant goes three weeks without a reply because nobody owned the reply. An ATS pulls all of it into one record per candidate that the whole hiring team works from.

Two things make this genuinely hard, and neither is the screens. One is the permission model, where a hiring manager should see their own roles and not the compensation discussion on someone else’s. The other is that a candidate is not the same thing as an application, because one person can apply to three roles and be at a different stage in each. Get those two right and the rest of the system is mostly forms and lists on top.

One record, many readers

A recruiter, a hiring manager, and three interviewers all touch the same candidate. They need different views of it, and different permission to change it, without anyone keeping a private copy in their own notes.

A candidate is not an application

The person exists once. Their application to a specific role exists per role, with its own stage, its own scorecards, and its own outcome. Modelling those as one table is the mistake that costs a rewrite later.

Access is per job, not just per role

Job title is too blunt a permission. A hiring manager for one opening has no business reading the pipeline for a role in another department, and confidential searches need to be invisible rather than merely uninteresting.

What a bad process costs

~$4,700

is the average cost of a single hire, per SHRM’s benchmarking data as published in 2022, money that is spent whether or not the process that spent it was organised.

SHRM, 2022 (The Real Costs of Recruitment) · checked August 2026

What a hiring system needs

The parts every applicant tracking system is built from

Before you build, it helps to know the pieces. Almost every ATS comes down to these six, and each one is something you can ask your AI coding tool to build or extend in plain words.

01

Roles, candidates, and applications

A job opening, a person, and that person’s application to that opening: three separate things that get confused constantly. Model them separately and someone can apply to two roles without their history in one overwriting the other.

02

A pipeline everyone reads the same way

Named stages a candidate moves through, with the move recorded rather than implied. When someone asks why a candidate is still in screening, the answer is on the record instead of in somebody’s memory.

03

A public way to apply

A careers page listing open roles and a form that takes an application without an account. This is the one part of the system strangers touch, so it has to work on a phone and it has to not lose a file.

04

Interviews and structured scorecards

Scheduling that produces a real calendar invite, and the same set of questions for every interviewer on a panel. Structured feedback is what makes two interviewers comparable rather than two opinions.

05

Offers, approvals, and a signature

An offer usually needs someone else to approve it before it goes out, then arrives as a document the candidate signs. Both halves belong in the system, or they end up back in email.

06

Reporting that answers “where is this role?”

How many candidates sit at each stage, how long they have been there, and where people drop out. Without it, a stalled search looks exactly like a healthy one until someone asks.

Build vs buy

Own your hiring system or rent it every month

Most teams reach for a hosted ATS, then discover the tier with scorecards is two steps above the price they were quoted. Owning the system changes that arithmetic. Here is the trade-off, side by side.

Build your own

Your own hiring system is a one-time build shaped around the process your team already uses, and with an AI coding tool writing the plumbing, that build is days rather than a quarter.

  • Pay to build it once, then only your own infra bills: no monthly subscription that grows with headcount
  • Stages, scorecard questions, and approval chains that match how you actually hire
  • Add every colleague as a user without moving up a tier to do it
  • Candidate data sits in a database you control, which matters more here than in most tools
  • Add your own AI on the model you pick: resume parsing, screening summaries, interview questions
  • Full ownership of the code and data: export anytime, zero lock-in

Buy a hosted ATS

Workable · Greenhouse · Ashby · Breezy HR

A hosted ATS is running this afternoon and someone else keeps it up. The costs are that the features you want are often gated a tier or two above the advertised price, and the process is theirs to define.

  • Live in minutes: sign up and start, nothing to build or host
  • Job-board distribution, sourcing extensions, and compliance reporting come built in
  • Support, onboarding, and someone to call when it breaks
  • Priced per company or per employee band rather than per seat, so the bill tracks how big you are, not how much hiring you do
  • The features this template treats as core (scorecards, e-signature, offer management) are frequently mid or top-tier
  • Two of the four vendors below publish no price at all above their entry tier
  • Your candidates’ personal data lives on their servers under their retention rules
Workable$299/mo (Standard, monthly) or $3,588/year - Premier $599/mo, Enterprise $719/mo

Priced per company against an employee-count selector, not per seat. The figures here are the 1-20 employee band the page opens on, and no price is published for the larger bands the same selector offers. Annual billing is quoted as a yearly total with a stated 20% saving. Watch the add-ons on Standard, which are what the sticker price leaves out: Texting+ $89/mo, Video interviews+ $109/mo, Assessments+ $59/mo, Performance & Engagement+ $39/mo, all bundled in from Premier up. The 15-day trial covers the Standard feature set but not Workable Agent.

workable.com · checked August 2026

GreenhouseNo public price - Core, Plus, and Pro are all demo-only

Three named tiers and not one dollar figure anywhere on the page. Every button is “Get a demo”. Greenhouse’s own FAQ explains why, verbatim: “The cost of Greenhouse is influenced by the plan you choose (Core, Plus or Pro), your hiring volume and organizational complexity, and the features and capabilities required to support your workflows.” We quote no estimate of what it actually costs, because the vendor publishes none.

greenhouse.com · checked August 2026

Ashby$400/mo (Foundations, up to 100 employees) - Plus and Enterprise are quote-only

Foundations is the only published price, and it is capped at 100 employees. Past that, verbatim: “Our pricing is based on company size, usage, and commitment.” Annual commitments carry a stated 10% discount. Ashby’s analytics product is priced separately, on usage, for teams running it over an ATS they already have.

ashbyhq.com · checked August 2026

Breezy HRFree forever for 1 open role - then $157-$439/mo annual, or $189-$529/mo monthly

The only genuinely free tier of the four, and its limit is the whole story: “1 Active Pool or Position”, with unlimited users and candidates behind it. Useful if you are hiring for exactly one job. The workflow this template ships is not on the entry paid tier either: scorecards, interview guides, and electronic signatures start at Growth ($273/mo annual), and offer management starts at Business ($439/mo annual), so a team wanting structured interviews and signed offers is comparing against those, not against $157. Annual billing is described as two months free.

breezy.hr · checked August 2026

Rule of thumb: if you hire continuously and your process has opinions (your own stages, your own scorecard questions, an approval chain that matches your org), building your own pays back quickly against a mid-tier subscription you would be on for years. If you hire two people a year, or you need job-board distribution and compliance reporting on day one without touching a codebase, buy. The awkward middle is a growing team on a free or entry tier that is about to need scorecards and signed offers, because that is the upgrade that changes the number.

No dev needed

Why build with Replit

A real app needs somewhere durable to keep what people enter, rules about who’s allowed to see it, and a place to actually run once it’s built. Those are three separate problems, and most solo builds solve them badly, or not at all.

Replit’s Agent handles all three from one chat, in the same workspace the app ends up living in:

The build loop
1

Describe

Tell the Agent what to build, in plain language.

2

Watch

It writes the code, sets up the database, and shows the app running live.

3

Try it

Use the real app in the preview rather than a mockup.

Publish

Take it live on Replit’s own hosting, or ask for the next change.

Loop back to Describe

The build and the place it ends up running are the same workspace throughout, so there’s no separate hosting account to set up later.

One workspacebuilds, runs, and hosts it

Replit is the one tool here that also deploys what it builds. Publishing takes the same project live on Replit’s own infrastructure, with a working domain, uptime monitoring, and security scanning included.

Managed Postgres with 20GB included free

Ask the Agent to add a database and it creates the schema and wires your app to it. What you get is a real, fully-managed SQL database rather than a mocked one.

Up to 10 Agent sessions in parallel (Pro)

Core allows up to 2 parallel Agent sessions and Pro allows up to 10, so more than one part of the app can be worked on at the same time.

What it costs

Pay a developer, or do it with AI

Two ways to get the same app built: pay a developer for their hours, or spend your own describing it to an AI coding tool. Here is what each one costs to build, and what it costs to keep running once it is live.

Hire a developer

Custom build, from scratch
Developer
~$14k-$54k
Supabase (backend)
Free tier · $25/mo (Pro plan)*
Hosting
$0 free tier
Build time
~270 hrs of their work

~$14k-$54k to build, then ~$25/mo after launch

That range is our ~270-hour estimate priced at market developer rates. The rate survey below puts North American contractors at $45-$75/hr and senior US developers at $100-$150+/hr, with agencies adding 20-40% on top, so roughly $50/hr at the low end, up to about $200/hr for an agency putting a senior on it. All of that is spent before your first candidate applies. After launch, your only standing costs are the database and the host.

Build it with Replit

From scratch, with Replit
Replit
Free (daily credits) to $25/month (Core) or $100/month (Pro)
Database (built-in Postgres)
Free to start · 20GB included
Hosting (Replit Deployments)
Billed separately, on top of the plan
Your time
~128 hrs

Free to try the idea, ~$25-$100/month on Core or Pro while you build a real one, then whichever plan (plus any deployment cost) you keep using

Replit’s plan price and its credit grant are the same number, not a subscription plus a separate credit purchase: Core is $25/month for $25 of monthly credits (or $20/month billed annually), Pro is $100/month for $100 of monthly credits (or $95/month annually). Once you publish, Replit bills hosting through its own Deployments separately, on top of whichever plan you’re on. Budget for it as a second line, not folded into the $25 or $100.

* The free Supabase tier is sized for building, not for hiring on: 500 MB of database, 2 active projects, and a pause after a week of no activity, which for a careers page means an applicant arriving at a dead link. Resumes count against storage too. The Pro plan, from $25/mo, keeps it awake.

Either column leaves you owning the system outright, so the tenth interviewer and the eleventh open role both cost nothing to add. What neither column carries is the fee every hosted system in the table above runs on: a price per seat, or per job slot, or per hire, charged for as long as you keep hiring. Yours has none of those, and the only bill that moves after launch is the database and the host.

Prices and rates from supabase.com, developex.com and replit.com, checked August 2026.

Plan first

Decide before you build

Settle these six and the build goes smoothly. Each is a decision about how your team hires, not code to write.

01

Your stages, named your way

Applied, screening, interview, offer, hired is the default nobody argues with and few teams actually use. Write down the stages your team really moves people through, including the ones you would rather not admit to, before anything is built around them.

02

Whether stages differ per role

An engineering hire with a take-home task and a sales hire with a role-play do not fit one stage list. Decide now whether every job shares one pipeline or each job defines its own, because retrofitting per-job stages later touches every screen that reads them.

03

Who can see which job

The decision that shapes the whole permission model. Options run from everyone sees everything, through per-department, to an explicit list of people per job. Confidential searches are the case that decides it: if you will ever run one, you need the per-job list.

04

What an offer has to pass through

Nobody, a manager, or finance and a manager in sequence. The approval chain is a workflow with states and notifications, so it is much cheaper to specify now than to add once offers are already going out.

05

How long you keep candidate data

Rejected candidates’ data does not get to sit in your database forever, and the rules differ by where you and they are. Pick a retention period and decide whether deletion is automatic or someone presses a button, then build to it.

06

Which outside services you actually need

A mail sender is not optional, since the system sends candidates real email. E-signature and AI resume parsing are. Decide which of the three you are wiring up before you build, because each one is an account, a key, and a fallback for when it is down.

Approaches

Comparing your build options

The tool decides how much of this build is setup you do twice. Here is one hiring system three ways: by hand, on a UI kit that ends at the screens, or inside Replit, where the database, the app, and the eventual publish all sit in one workspace.

~270 hrsBuilding by hand

The pipeline is the small part. Most of this is the work underneath it: a schema that survives a candidate applying to three roles at once, permissions per job rather than per person, resume files, an e-signature service, and a mail sender that does not land in spam.

~200 hrsGeneric UI starter kit

You get a dashboard shell, a board component, and some table screens. None of them know what a candidate is. The schema, the stage rules, the scorecards, the offers, and every integration are still yours to write.

~128 hrsBuilt with Replit

Ask the Agent for a piece at a time and it writes the database, the server, and the screens in the same workspace that ends up hosting the finished app. The same task list, with no second host to set up at the end.

Interactive calculator

Estimate your exact build timeframe

Tick the parts your hiring process actually uses. Plenty of teams never send an offer through the system, or never need a careers page. The estimate below follows what you keep.

What your ATS needs

Your estimate

128 hrs

start to finish

Based on the 7 of 7 features you’ve selected, plus ~31h of groundwork. Toggle any on the left to watch the number move, and open the groundwork row to untick what you have already, such as a database that is already running or going live if you are only building a mock-up for now.

A rough estimate, not a quote. Real time depends on how much you customize and how clean your data is.

Setting up your workspace

Let’s set up the tools you need

Replit runs entirely in the browser, and it’s the one tool here that also hosts what you build, so no GitHub account is required first. Before step 01: an account and a plan. A database comes later, the moment your app actually needs one, and GitHub whenever you want a copy of the code outside Replit.

1

Replit account

Cost: Free

Sign up and you land in a workspace with an Agent chat, the code, and a live preview side by side, with nothing to install.

Sign up for Replit
2

Replit subscription

Cost: Free (daily credits), then $25/month (Core) or $100/month (Pro)

Starter’s free daily credits are enough to try an idea, not to finish one. Core is $25/month billed monthly, or $20/month billed annually, for $25 of monthly credits and up to 2 parallel Agent sessions. Pro is $100/month monthly, or $95/month annually, for $100 of monthly credits, more collaborators, and access to the strongest available models. The price you pay and the credits you get are the same number on both plans, so you have no separate subscription-plus-credits split to work out.

Compare Replit plans
3

Replit database (Postgres)

Cost: Free to start · 20GB included

Every Replit app includes its own managed Postgres database with 20GB of free storage. Ask the Agent to add one and it creates the schema and connects your app to it, with no separate account to create anywhere else.

Replit’s built-in database, Replit docs
Optional
4

GitHub connection

Cost: Free

Not needed to start, and not needed as an undo either, because Replit checkpoints the whole workspace as the Agent works. Connect a repository from the Git pane, free on every plan, and a copy of the real code lives outside Replit under your own account. Worth doing once the project is one you would hate to lose.

Using the Git pane, Replit docs

The first two are all you need to start. Everything here stays inside the one browser tab, the app included once you publish it, and the GitHub copy is the one deliberate exception.

Step by step

Build your hiring core, one Agent message at a time

Nothing installs and nothing gets connected from outside. The Agent writes the files, runs the commands, and provisions the database as it goes. Send one message, check the live preview, roll back to a checkpoint if it went wrong, then send the next.

  1. 01

    Start the app and ask for the database in the same message

    There is no outside database account to create first, so the database is part of your opening message rather than a separate errand. Ask for a notes file too, so the Agent’s conventions carry through the rest of the build.

    PromptSet up the project and the database
    Set up a React 18 + Vite + TypeScript app with Tailwind, and add a Postgres database to this Repl. Use the one Replit provisions rather than connecting anything outside. Write a short notes file at the project root saying this is an applicant tracking system and fixing the vocabulary for the rest of the build: jobs, candidates, applications, interviews, scorecards, offers. Keep the database connection details in Replit's Secrets rather than in the code.

    The database is already part of the workspace, so asking for it is one message, not a separate signup.

  2. 02

    Write the schema, keeping candidates apart from applications

    Ask for the SQL before it runs. The split between a person and their application to a specific role is the part worth reading closely.

    PromptDesign the hiring data model
    Write the SQL migration for the hiring core, against the Postgres database already in this Repl. Jobs hold a title, department, location, employment type, description, and a status through draft, open, on hold, and closed. Candidates are the people (one row each, holding name, contact details, and a reference to their uploaded resume) and a candidate exists independently of any single job. Applications link a candidate to a job, one row per role they apply to, each with its own stage, source, and outcome, so applying twice gives two separate histories. Add job_stages so each job defines its own ordered stages. Show me the SQL before you run it.

    One candidate row, one application row per role. Merging the two is the modelling mistake that surfaces the first time someone reapplies.

  3. 03

    Build both halves of sign-in yourself

    Replit’s Postgres is a plain database with no login system wired into it, so the Agent writes both parts: sessions on the server, and a roles table plus a per-job access list the server checks against.

    PromptAdd sign-in, roles, and job access
    Add email-and-password sign-up, login, logout, and a server-side session for this app, with a profile row per team member. Then two layers of permission, both checked on the server rather than in the browser. A roles table giving each user one of basic, job admin, or site admin, kept in its own table, never on the user record, since anything there is editable by that user. And a job access table naming which users can reach which specific job, so a confidential search stays invisible to everyone not on it. Add a helper the server and the database policies can both call to answer whether a user can reach a given job.

    There is no ready-made login handing the database a user id here, so the server is the thing that knows who is asking. Build that first, and the policies in the next step have something to read.

  4. 04

    Scope every row to whoever should reach it

    Replit’s Postgres does row-level security like any Postgres. The difference is where the identity comes from: the server sets who is asking at the start of each request, and the policy reads that.

    PromptAdd row-level security and file rules
    Turn on row-level security across jobs, candidates, applications, and job_stages. Have the server set the current user's id and role as a session-local setting at the start of every request, then write the policies to read that setting through the job access helper: a site admin reaches everything, a job admin reaches the jobs they are named on plus the candidates and applications attached to them, and a basic user gets that set read-only. Give every insert and update an explicit check naming which job the new row may belong to. Apply the same rule to uploaded resumes: a stored file must not be reachable by anyone who could not read its application. Show me how to prove a job admin gets nothing back for a job they are not on before we move on.

    Read this one closely. It is the step that decides whether a hiring manager can read a search they are not part of.

  5. 05

    Bring the careers page and the board online

    The public form and the internal board are what everyone judges this on. Check the preview after each rather than approving both and finding out later.

    PromptBuild the screens
    Build the two screens this system runs on. Publicly: a careers page listing open jobs, and a job page with an application form taking contact details and a resume upload, creating the candidate and the application without requiring an account, working properly at phone width. Internally: a pipeline board per job using that job's own stages as columns, with drag-and-drop and multi-select for moving or rejecting several applications at once, plus a candidate profile showing their details, all their applications, and a timeline.
  6. 06
    Destination

    Finish the process, then publish

    Add interviews, scorecards, and offers, walk the whole thing yourself, then publish, checking who the app is visible to before that first release, since Publishing is what sets it.

    PromptAdd interviews, offers, and publish
    Add the last of the process. Interviews: a panel and a time booked against an application, emailing a calendar invite when it is set. Scorecards: the same questions for every interviewer at that stage, with a combined view showing who said what rather than an averaged score. Offers: an approval that clears before anything sends, a generated PDF, and an e-signature request. Then help me test the full flow (post a job, apply through the careers page as an outsider, move the application along, book an interview, submit two disagreeing scorecards, send the offer), and when it holds up, walk me through Publishing: which deployment type fits this, and who the app should be visible to.
Authentication & security

Protecting candidate data, and who sees which pipeline

A hiring system holds personal data about people who do not work for you and never agreed to anything beyond applying. Here is how that stays protected, in simple terms, and the rule that keeps it that way.

Logins your server owns

The Agent builds sign-in for your team as part of the app rather than connecting an outside identity service, so sessions live on your own server. Candidates applying through the careers page need no account at all, which keeps the only accounts in the system ones you issued.

Three roles, then a list per job

The template ships three roles (a basic team member, a job admin who runs the roles they own, and a site admin over everything) and then an access list per job on top. That second layer is what makes a confidential search possible: membership of the job, not seniority, decides who can open it.

Candidate data is the sensitive kind

Resumes, contact details, interview notes, and whatever someone volunteered in an application form. This is personal data about people outside your company, which raises the stakes on every access rule and makes your retention decision a real one rather than a formality.

Row-level security across every table

The template ships 133 row-level security policies because the interesting question is never “is this person logged in” but “is this person on this job”. The database answers that itself on every read and write, so a screen that forgets to filter still cannot leak another team’s pipeline.

Where the checking actually happens

Replit’s Postgres is real Postgres, so row-level security behaves exactly as it does anywhere else. What differs is who supplies the identity. No ready-made login hands the database a signed-in user id, so the Agent has your server set who is asking at the start of each request, and the policy reads that setting. Your server is the first line, the database policy the second.

Resume files need rules of their own

An uploaded resume is a stored file rather than a database row, and it is easy to lock the candidate record down carefully while leaving the file reachable by anyone holding its link. Have the Agent serve every resume through your own server, checking the same job access rule before it hands the file over, rather than exposing a storage URL directly.

Administrative keys stay protected

A Replit build usually runs its own small backend rather than letting the browser reach the database, so no database key ships to the app at all. The connection details, the e-signature account, the mail sender, and any AI model key live in Replit’s Secrets tool, read only by that backend, never bundled into the app or committed to a repo.

Backups, and how far back you can go

Every plan has a way back: the Agent checkpoints your project (files, configuration, and optionally the database) as it works, and rolling back to one restores all of it in a click. Pro adds a dedicated 28-day database rollback on top. Worth having before real candidate records are the thing at stake.

PromptCheck who can see what
Review the access rules (row-level security policies) on every table. For each one, tell me in simple terms who can view, add, edit, and delete records, confirm that people can only reach their own data while the right roles can reach more, and flag anything left open that shouldn’t be.

Paste this into the chat before launch so the Agent checks nobody can see data they shouldn’t.

The one rule that matters: never put a secret key (database, e-signature, mail, or AI) in the app or a public repo. If one ever leaks, reset it right away.

Workflow rules

What speeds the build, and what slows it

Speeds the build

  • One small, specific request per message, checked in the live preview before the next one
  • Letting the Agent provision the database from the chat instead of wiring one up by hand
  • Running two Agent sessions in parallel on unrelated parts of the app, once your plan allows it
  • Rolling back to a checkpoint the moment a change goes wrong, instead of unpicking it by hand
  • Reviewing what Publishing changed, meaning the domain, who can reach the app, and the machine it runs on, before the first release

Slows the build

  • Asking for the whole app in one message instead of one piece at a time
  • Building screens for data that isn’t in the database yet
  • Running unrelated Agent sessions against the same files at the same time
  • Letting several risky changes stack up before checking whether any of them actually broke something
  • Publishing without checking who the app is visible to first
Keeping a safe copy

Connecting GitHub (Optional)

Every change in Replit is saved automatically without any technical setup. Checkpoints are the day-to-day undo. You only need to link GitHub if you want a private copy under your own control or plan to hand the codebase over to external developers.

Every milestone is already saved

Replit’s Agent creates a checkpoint automatically at key points as it works: a full snapshot of the files, the configuration, and even the AI conversation itself, not just the code.

Checkpoints and rollbacks, Replit docs

Rolling back restores the whole workspace

One click returns your project to an earlier checkpoint (files and configuration together, and optionally the database), which is broader than a typical code-only undo, so a rollback after real data has changed is worth a second look before you confirm it.

GitHub keeps a copy outside Replit

Connect a repository from the Git pane, free on every plan, and stage, commit, and push changes back to GitHub with a click, or pull in anything changed outside Replit.

Using the Git pane, Replit docs

It’s also how an existing project gets in

Point Replit at a public repository’s URL for a fast import, or use the guided import for a private one. Either way, Replit detects the stack and installs everything on its own.

Import from a provider, Replit docs

You rarely type git commands

The Git pane’s buttons cover staging, committing, and pushing. If you’d rather type them yourself, the workspace Shell stays in sync with whatever the pane just did.

Going live

Going live without external hosting

Skip third-party hosting and external database setup. Your database, backend, and domain live in the same Replit workspace. Just click Publish to go live.

HostBest forNotesFree tier
AutoscaleBursty, working-hours trafficScales up while your team is screening and down to nothing overnight. The natural fit for a hiring system, where load follows the working day and a careers page can sit quiet for hours.Metered - billed with your plan
Reserved VMA careers page that must answer instantlyDedicated compute that never sleeps, so an applicant arriving from a job ad at 2am gets the page immediately rather than waiting on a cold start.By machine size - billed with your plan
ScheduledJobs that run on a timerRuns on a schedule rather than answering requests, the shape for a nightly digest of new applications or a retention sweep that deletes old candidate records, not for the app itself.Metered - billed with your plan
StaticA front end with no server behind itFor a page needing no live backend at all. Not this system, which needs a server for applications and permissions, but worth knowing it exists.Metered - billed with your plan

All four are Replit’s own hosting rather than a third party. Autoscale or Reserved VM are the two that suit a hiring system with a public careers page in front of it. Scheduled is worth remembering when you build the retention sweep your data decision calls for. Whichever you pick, review what Publishing changes (the domain, who can see the app, the machine resources) before the first release.

Database & backend

Your database is already part of the workspace

Nothing to connect. Replit gives every app its own managed Postgres database, provisioned from the same chat that builds the rest of the system.

ServiceBest forNotesFree tier
Replit PostgresData, built inA fully managed Postgres database with 20GB of storage included free. Ask the Agent to add one and it creates the schema and wires your app to it, with no separate account and no second dashboard to sign into.Free to start · 20GB included
AI workflows

Where AI genuinely helps a hiring team

With the core working, each of these is one more prompt, and they go in as written. All four call the same server-side function, so the key sits on the server where no browser can read it.

Resume parsing into a real profile

Reads an uploaded resume and fills in the candidate’s roles, dates, skills, and contact details, so nobody retypes a CV into a form. The highest-value one on this list, because it runs on every single application.

PromptResume parsing into a real profile
Add a server-side function that takes an uploaded resume, sends its text to your ai function, and returns structured fields (name, contact details, work history with dates, education, and skills) then pre-fills the candidate profile with them and shows the recruiter what was extracted before saving.

A screening summary against the role

Produces a short read on how an application lines up with the job description, with the specific evidence it used. It is there to save the recruiter a first pass, not to make the decision.

PromptA screening summary against the role
Add a "Summary" panel on the application view that sends the job description and the candidate’s parsed profile to your ai function and returns a short summary of where they line up and where they do not, quoting the evidence for each point. Present it as a note for the reviewer, never as a score or a recommendation to reject.

Interview questions from the role and the resume

Drafts questions for a specific panel based on the job and what the candidate has actually done, so an interviewer walking in cold still asks something worth asking.

PromptInterview questions from the role and the resume
Add a "Suggest questions" action on the interview screen that sends the job description, the interview stage, and the candidate’s profile to your ai function and returns a handful of specific questions the interviewer can edit before the call.

Pulling scorecards into one view

Rolls a panel’s separate scorecards into a summary of where interviewers agreed and where they did not, so the disagreement is the thing that gets discussed.

PromptPulling scorecards into one view
Add a "Panel summary" block on the candidate page that sends every submitted scorecard for that application to your ai function and returns a short summary of consensus and disagreement, listing which interviewer said what rather than averaging them into one verdict.

A cheap model is plenty for most of the prompts above. Save Pro’s stronger models for the one or two spots where the extra reasoning actually pays for itself. Add any provider key through Replit’s own Secrets tool rather than hard-coding it, and keep every AI feature behind one server-side function so a single key covers the whole app.

Ready-made option

Get a head start with our template

Everything above assumes you are starting from an empty folder. You do not have to. The same hiring system is available already built, which turns most of that estimate into an afternoon of renaming stages to match your process.

Hiring & ATS

The exact ATS this guide builds, packaged so you can open it, point it at your own backend, and make it yours from there. An applicant tracking system for internal HR teams, agencies, and project-based hiring. Your team runs the whole process from one place - creating roles, tracking candidates, and moving them from application to offer - with AI resume parsing, shared interview scorecards, offers as signed PDFs, and real-time analytics on where every role stands.

React 18ViteTypeScriptTailwind CSSSupabase
Out of the box

The key benefits of starting with a template

The parts nobody enjoys building are already done and running: the schema, per-job access rules, resume storage, the offer chain, and three integrations. That leaves your time for the stages and scorecards that make it yours.

Building the core from scratch

~128 hrs

Opening the template, already built

~1 hr

~127 hrs of building you skip

Two different measurements, deliberately: ~128 hrs is what building the core costs you, and ~1 hr is how long the finished one takes to open and point at your own database. Adapting it to your stages, your scorecard questions, and your approval chain takes the same time whichever column you start from, so neither side counts it.

A working hiring system from day one

Open a functional app, not an empty folder. Jobs, candidates, the pipeline board, interviews, scorecards, offers, and the dashboard over them are ready to use.

Pre-configured access rules

Team accounts, three roles, a per-job access list, and 133 row-level security policies work out of the box, so a hiring manager reaches their own roles and nobody reaches a confidential search by accident.

The integrations already wired

Resume parsing, generated offer PDFs, e-signature, calendar invites, and transactional email are connected and working. Each one is an account and a key you supply, not a feature you build.

Clean structure your AI can safely customize

Typed throughout, organised by feature, and documented, which matters more than it sounds, because every later change you describe lands better when the tool has a clear pattern to follow.

Customer story

From founders who build on our templates

We needed to get a live product in front of users fast. Instead of building from a blank repo, I picked up this template, customized it with our AI tool, and shipped straight away, bypassing the usual setup process.
Jeevan ThomasJeevan ThomasFounder & CEO, Hado.ai
Got questions?

Common questions

No. The Agent writes the backend for you from plain-language prompts (the schema, the access rules, file handling for resumes, and the server routes behind them), and provisions the Postgres database itself inside this workspace. There is no separate account to create anywhere: the database is there when you ask for it.

Yes, and the data model is built for it. The candidate is one record. Each application to a specific job is its own record with its own stage, scorecards, and outcome. Someone can be rejected for one role and mid-interview for another without the two interfering.

Yes, and this is the part worth getting right early. Alongside the three roles, each job carries its own access list, so a confidential search is visible only to the people explicitly on it, enforced by the database rather than by hiding a link in the interface.

Yes. Resume parsing is the one most teams add first, followed by screening summaries, interview questions, and scorecard summaries. Add a small server-side ai function, pick the model tier that fits the job, and add the provider key through Replit’s Secrets tool rather than putting it in the code.

No, and the guide is written so it cannot. Every AI feature here summarises or extracts for a person who then decides. Nothing rejects an application on its own. Automated hiring decisions are regulated differently depending on where you and your candidates are, so check what applies to you before you go further than this guide does.

Mostly your Replit plan, plus a mail sender and whichever of e-signature and AI you use. The database is part of the plan rather than a separate bill. Core starts at $25/month (or $20/month billed annually) with 20GB of Postgres storage included. Publishing the finished app is billed separately, on top of the plan. You pay Replit and those providers directly.

Only the people your access rules allow, and it lives in the Postgres database inside your own Replit account. That makes you the sole controller of that data for GDPR purposes, which also means the retention decision is yours: decide how long rejected candidates’ records stay and build that in, rather than leaving them indefinitely by default.

There is nothing proprietary to be locked into. Replit provisions ordinary PostgreSQL, so an ordinary Postgres dump gives you every candidate, application, and scorecard, and any Postgres host will take it. Worth knowing for a second reason here: a request to delete a candidate’s data is much easier to honour when you can see exactly where all of it sits.

Yes. Publishing lets you connect your own domain with free HTTPS instead of the replit.app subdomain it starts on, worth doing before the careers page goes out, since that URL ends up in every job ad.

No. You describe what you want in the chat, and the Agent handles the rest: the code, the database, and a live version of the app right there in the workspace. The setup section above covers the account and plan you need first.

Replit hosts it. Publishing takes the same project live on a Replit domain, or your own if you connect one, with monitoring and access controls included, so you never open a separate hosting account.

Starter’s daily credits and a paid plan’s monthly grant both refill on their own schedule. Hitting either limit mid-build doesn’t touch what you’ve already made. Move up a plan for more headroom right away, or wait it out.

References

Sources checked August 2026
  1. 01The Real Costs of Recruitment (average cost per hire), SHRM. shrm.org (published 2022)
  2. 02Pricing, Workable. workable.com
  3. 03Pricing, Greenhouse. greenhouse.com
  4. 04Pricing, Ashby. ashbyhq.com
  5. 05Pricing, Breezy HR. breezy.hr
  6. 06Pricing (Pro plan, free-tier limits, backups), Supabase. supabase.com
  7. 07Web developer hourly rates 2026 (freelance and agency benchmarks). developex.com
  8. 08Pricing (Starter, Core, Pro), Replit. replit.com
  9. 09Built-in database, Replit docs. docs.replit.com
  10. 10Publishing overview, Replit docs. docs.replit.com
  11. 11Deployment types, Replit docs. docs.replit.com
  12. 12Checkpoints and rollbacks, Replit docs. docs.replit.com
  13. 13Using the Git pane, Replit docs. docs.replit.com
  14. 14Import from a provider, Replit docs. docs.replit.com
  15. 15Secrets, Replit docs. docs.replit.com

This guide is general information, and not legal or HR advice. Hiring, candidate data, and automated decision-making are regulated differently depending on where you and your candidates are, so check what applies to you. Third-party prices, plan limits, and market rates are quoted from the sources above and were last checked on the date shown. Vendors change them without notice, so confirm before you budget. Build hours and the cost estimates derived from them are our own estimates, not quotes. Replit is a product of Replit, Inc. Verify current capabilities and pricing before relying on them.