Home/Use cases/Video interviews
The one-way interview recorder your platform doesn't have to build.
Candidates record answers inside your ATS or interviewing product. AddPipe handles the browser, the upload, the transcoding and the storage, and hands your backend an mp4 and a webhook.
Desktop and mobile browsers, including iOS Safari. No app, no plugin, no download for the candidate.
The recording layer behind interviewing and assessment platforms
Recording a candidate in a browser is a product. You'd be building a second one.
MediaRecorder gets you a first demo in an afternoon. Everything after that is on you, and none of it is what your customers are paying for.
AddPipe is the recording client and the ingest pipeline as one service, maintained for ten years against every browser release, so that list on the right stays off your roadmap.
Where AddPipe sits in your product.
The candidate never leaves your interface. Your backend never touches a raw browser stream.
Candidate records
The AddPipe client is embedded in your interview screen, styled to match, with your question and time limit.
Ingest and transcode
Streamed or uploaded to the nearest region, then converted to a rotated, normalized mp4.
Delivered to your bucket
Pushed to your S3, GCS, R2, Dropbox or Box, or kept on AddPipe's storage if you'd rather not run any.
Webhook to your ATS
A video_converted event with the file URL, duration and the candidate ID you attached.
Proven at HR-tech scale.
Interview platforms have been running on AddPipe since 2016. Peak recruiting season on your side is a normal Tuesday on ours.
The parts of the recorder that matter for interviews.
All configurable per embed or from the JavaScript API, so each customer, job or question can behave differently.
Time-boxed answers
Set a maximum recording time per question with mrt. The candidate sees the limit; you get consistent lengths.
Review and retake
Candidates can play back their answer and record again. Decide in your UI how many attempts to allow.
Question on screen
Show the prompt above the camera or scroll it as a teleprompter. See the teleprompter demo.
Face positioning guide
An on-screen outline helps candidates frame themselves before they start, so reviewers get usable footage.
Candidate and job IDs travel with the file
Pass any string as payload. It comes back in the webhook and REST API, so matching recordings to applications is a lookup, not a guess.
Device logs for support
User agent, camera and microphone names, codecs and getUserMedia errors are stored with every recording, so "it didn't work" has an answer.
Your interface, not ours
Hide the default controls and drive record, stop and playback from your own buttons with the JS control API.
EU or US, your choice
Pick the ingestion region per environment. EU candidates' recordings can stay in Europe end to end.
SOC 2 Type I
Encrypted in transit and at rest, and a report you can hand to your own security reviewers. Request it.
An afternoon to integrate, not a quarter.
Embed the client on your interview page, attach the candidate to the recording, and listen for the webhook. That's the whole integration.
// npm i @addpipe/pipe-recording-client import PipeSDK from "@addpipe/pipe-recording-client"; PipeSDK.insert("answer", { size: { width: 640, height: 390 }, qualityurl: "avq/720p.xml", accountHash: "YOUR_ACCOUNT_HASH", eid: "YOUR_ENV_ID", mrt: 120, // 2-minute answers payload: "cand_48812:job_207:q3" // your IDs }, (recorder) => { recorder.onSaveOk = (id, name, duration) => { markAnswered("q3", { name, duration }); }; });
// POST from AddPipe to your server when the mp4 is ready { "version": "2.0", "event": "video_converted", "data": { "videoName": "a1b2c3d4", "duration": 97.4, "videoUrl": "https://…/a1b2c3d4.mp4", "payload": "cand_48812:job_207:q3" } }
Embed code or npm
Plain embed code for server-rendered pages, the npm package for SPAs, a React hook if that's your stack.
Environments per customer
Separate settings, storage and recordings per tenant or per product line, each with its own webhook and region.
REST API for everything else
List, fetch and delete recordings as JSON, for retention policies and candidate data requests. REST API docs.
Transcription when you want it
Tutorials for Amazon Transcribe, ElevenLabs Scribe and Whisper, triggered from the same webhook.
Talk to an engineer
Integration questions go to the people who built the client. Contact us.
Questions engineering teams ask before switching.
Does the candidate see AddPipe branding?
No. The client renders inside your page, the default UI can be hidden entirely and replaced with your own controls, and recordings are delivered to your storage under your domain.
What happens if a candidate's connection drops mid-answer?
The recording client is built around bad connections: it streams or uploads as the candidate records rather than waiting for the end, and the dashboard logs every upload so you can see exactly what arrived. Ask us for details on the current behavior for your target browsers.
Which browsers and devices are supported?
Current desktop browsers and mobile Safari and Chrome, including in-app browsers where the platform allows camera access. The client is updated with each browser release; the changelog shows the cadence.
Can we keep EU candidates' data in the EU?
Yes. Choose the EU ingestion region for an environment and point it at an EU bucket you own. Details on our GDPR page.
How do we delete a candidate's recordings?
Through the REST API or the dashboard. Recordings pushed to your own storage are yours to delete directly; you can also run retention rules on your side.
We already use Ziggeo or a similar service. How hard is a switch?
The integration surface is the same shape: an embed, a JS API and a webhook. Most teams run both in parallel on one environment first. See AddPipe vs Ziggeo.
What does it cost?
Plans start at $50 per month, and every plan begins with a 14-day free trial with no card required. Pricing.
Something else? Email us and an engineer will reply.
Ship one-way video interviews this sprint.
Embed the recorder, record a test answer, watch the webhook land. Free for 14 days, no card required, $50/mo after that.
