You also have the option to run live interview integrity verification with the InterviewWatch agent. See the agent →
Applicant tracking system

Applicant tracking for small teams.

Post a job, keep every applicant on one board, and schedule interviews from the candidate card. Easy to set up, free with unlimited seats to start, and $19 a month flat once you outgrow two open jobs.

InterviewWatch ATS is a light applicant tracking system for small hiring teams. Unlimited seats and unlimited candidates, a fixed six-stage pipeline, applications arriving from your own careers page through an API or from a CSV, and interview scheduling from any candidate card.

It is built for the team that has outgrown a spreadsheet and a shared inbox but has no appetite for a six-week rollout. Sign up, add a job, and the board exists. Jobs, applicants and stage moves are never billed.

What you get

What the ATS includes

Most teams without an ATS are not missing a hundred features. They are missing one shared place where every open role and every applicant lives, so nobody has to ask which spreadsheet is current.

  1. Jobs that open and close

    Create a job as a team and role, keep it open while you hire, close it when you are done. Closed jobs stay in the record for history but drop out of every picker, so nobody schedules against a filled req.

  2. A board, not a spreadsheet

    One card per candidate per job across six stages, carrying how the person arrived and how long they have been sitting where they are. The stuck ones are visible without anyone running a report.

  3. Applicants arrive on their own

    Your careers page posts straight to the apply API, and bulk loads come in by CSV at 500 rows a time. Every row reports back separately, so one bad line never abandons the other 400.

  4. Scheduling that stays attached

    The interview is created off the candidate card with an interviewer and a meeting link, and the outcome returns to that same card. Nothing gets copied into a second tool and lost there.

The pipeline

The six pipeline stages

Applied, Phone screen, Onsite, Offer, Hired, Rejected. There is no stage designer, no workflow builder and no approval chain, because configurable stages are the first step towards a tool that needs an implementation consultant.

The same board a recruiter opens each morning: who arrived, who is stuck, and what happens next.

Getting applicants in

How applicants enter the pipeline

Candidates are deduplicated by email at the company level. One person applying to five openings is one candidate with five cards, and their whole history stays on that single identity.

Your careers page POST /careers/applications CSV import up to 500 rows per file Recruiter adds by hand sourced, referrals, inbound Match on email existing? reuse it One candidate record [email protected] Senior Engineer · Applied Platform · Phone screen Data Eng · Rejected

Applying to three roles makes three pipeline cards, not three strangers. We host no careers page, so yours stays yours and candidates never leave your domain. How to wire it up.

Connect your careers page

Three fields and one request

We host no careers page, so yours stays on your own domain exactly as it is. Your form handler posts each submission to the apply API, and the candidate never leaves your site.

  1. Mint an apply keyOn the Pipeline screen, issue a company apply key. It looks like iwk_1a2b3c4d… and is shown once, because only its hash is stored. Put it in your server environment as INTERVIEWWATCH_APPLY_KEY.
  2. Read your job idsCall GET /api/careers/jobs and build your listings from the result, so a closed role never leaves a dead form behind.
  3. Post each applicant from your backendOne request per submission carrying jobId, name and email. Nothing else is stored.

The request

curl -X POST https://app.interviewwatch.com/api/careers/applications \
  -H "Authorization: Bearer $INTERVIEWWATCH_APPLY_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jobId":"3f1c…","name":"Ada Lovelace","email":"[email protected]"}'

The response

// 201 Created on a new application, 200 OK if they already had a card for this job
{
  "applicationId": "a41d…",
  "candidateId":   "9b02…",
  "jobId":         "3f1c…",
  "stage":         "Applied",
  "source":        "CareersApi",
  "created":       true,
  "active":        true
}

Repeat submissions are safe: the same person and job returns 200 with created: false rather than a second card. Treat both as success in your UI.

Call it from your server, not from the browser.

The apply key authorizes writes for your whole company, so it must never reach page JavaScript. There is deliberately no CORS policy on this endpoint: a static form posting straight to it will fail. On Framer, Webflow or a static site, put a small serverless function in between. The full integration guide has working examples for Next.js, PHP and WordPress, plus CSV bulk import, every status code and the rate limits.

Honest scope

What it does and does not do

This is a light ATS, not a Greenhouse replacement. Knowing the line before you sign up matters more than a longer feature list, so here it is.

It does

  • Post and close jobs, unlimited
  • Track candidates across six stages
  • Accept applications from your careers page via API
  • Import applicants from CSV, 500 rows per file
  • Schedule interviews from a card
  • Show interview results on the card
  • Reopen a closed card for a returning candidate
  • Dedupe candidates by email across every opening

It does not

  • Host your careers page or apply form
  • Store or parse resumes. A candidate is a name and an email
  • Score or rank candidates with AI
  • Send candidate email sequences or rejection templates
  • Offer custom stages, scorecards or approval workflows
  • Generate offer letters or handle e-signature
  • Produce EEOC or compliance reporting
  • Keep a per-move audit history. The card records its last move

If you need the right-hand column, you need a full ATS, and InterviewWatch will happily sit alongside it. If you have been running hiring out of a spreadsheet and a shared inbox, the left-hand column is the part you were missing.

One thing other applicant trackers do not have.

Interviews scheduled from a card can optionally run with consent-first integrity monitoring, so the card comes back with a signed report on whether the answers were the candidate's own. It is a pay-per-use add-on, off by default, never bundled into a plan. How that works.

Pricing

What it costs

Conventional applicant tracking is sold per recruiter seat per month, which is why a three-person team ends up paying for software to hold twelve candidates. Here plans are sized by jobs and seats, and candidates are never metered.

Free
$0

Two active jobs and unlimited seats, plus your first five interviews verified free.

  • 2 active jobs, unlimited candidates
  • Unlimited seats
  • Careers apply API and CSV import
  • Your first 5 interviews, verified free
  • No card, no expiry
Most popular
ATS Starter
$19 / month

Five active jobs and fifteen seats. Verification available as an add-on.

  • 5 active jobs, unlimited candidates
  • 15 seats
  • Careers apply API and CSV import
  • Scheduling and interview records
  • Verification add-on, $5 / interview
ATS Growth
$39 / month

Fifteen active jobs and one hundred seats, for a growing hiring team.

  • 15 active jobs, unlimited candidates
  • 100 seats
  • Careers apply API and CSV import
  • Verification add-on, $5 / interview
  • Company analytics
Enterprise
Custom

For teams past 15 jobs or 100 seats, or that already have an ATS.

  • Unlimited jobs and seats
  • Greenhouse integration workflow
  • White-label branding
  • Custom retention and DPA
  • A flat rate for verification at volume

Candidates, applications and stage moves are never metered on any plan. Verification is a separate $5-per-interview add-on with your first five free, never part of a plan price. How ATS pricing models compare, or see the full plan breakdown.

FAQ

Frequently asked questions

What exactly is the InterviewWatch ATS?
A light applicant tracking system: jobs, a six-stage candidate pipeline, a careers apply API for your own site, CSV import, and interview scheduling from a candidate card. It is aimed at teams who have outgrown a spreadsheet and a shared inbox but do not want a rollout project to fix it.
How much does the ATS cost?
Free is $0 with unlimited seats and two active jobs. ATS Starter is $19 per month for five active jobs and fifteen seats. ATS Growth is $39 per month for fifteen active jobs and one hundred seats. Candidates are unlimited on every plan. Interview verification is a separate $5-per-interview add-on, with your first five free, not part of any plan price.
What are the pipeline stages, and can I change them?
Applied, Phone screen, Onsite, Offer, Hired and Rejected. Hired and Rejected are terminal. The stages are fixed and not configurable, on purpose: it is what keeps the tool learnable in one sitting. If your process genuinely needs custom stages, you need a full ATS.
Can candidates apply through your website?
Not through ours, through yours. We host no careers page and no apply form. Your site keeps its own page and posts each applicant to the careers apply API with your company key, so candidates never leave your domain. There is also a CSV import for bulk loads and a manual add for sourced candidates.
Does it store resumes?
No. A candidate record is a name and an email address. There is no resume upload, no parsing, and no AI ranking of applicants. That means less candidate data sitting in a vendor's database, which is usually the first question a privacy reviewer asks.
Do I have to use interview monitoring?
No. Verification is opt-in per interview, not part of any plan. Scheduling from a card still records the interview, its time, the interviewer and the meeting link either way, but without turning verification on, no candidate join link is issued and nothing is charged. Turn it on and it is $5 when that interview completes, with your first five free.
How long does setup take?
Sign up, add a job, and the board exists. Wiring your careers page to the apply API is one POST request, which is usually an afternoon for whoever owns your website. There is no implementation project, no onboarding fee and no data migration.
What happens to my data if we outgrow it?
Because a candidate is a name, an email and a stage, there is very little to move. Your pipeline exports as a list, and any interview reports stand on their own. Nothing about the design locks a growing team in.

Put every applicant on one board.

Create your first job, add candidates, and run hiring from a single pipeline. Free to start, no card required.

Start for free Wire up your careers page