A clearer way to hire
Turn your job description into a skills test or AI interview. Get clear candidate reports before your first call.
For business leaders, managers, HR teams and recruitment agencies.
3 candidates free. No subscription.
How it works
Nothing to install. Nothing for candidates to sign up for.
Add your job description, choose a multiple-choice test or an AI interview, then select the language.
Share your assessment link. Candidates open it and start, without creating an account.
Candidates take a multiple-choice test tailored to the role or an AI interview that considers your job description, their CV and their answers.
AI Interview
Recorded demo · 21 messages
Hello Alex, thank you for joining the interview today. Let's dive right into our first topic. Can you describe a specific situation where you optimized a PostgreSQL query for performance? What was the issue, and how did you resolve it?
In the fictional Demo Studio project, a tenant dashboard endpoint had a p95 latency of about 900 ms. I used query logs and EXPLAIN (ANALYZE, BUFFERS) on representative data to find an N+1 query pattern and repeated scans when filtering by tenant and date. I replaced per-row lookups with a single scoped query and added a composite index matching the filter and sort order. I checked tenant isolation and compared results before and after the change. In our synthetic example, p95 fell to 280 ms under the same workload. I also monitored write overhead and retained a rollback plan.
Thanks for sharing that example, Alex. Let's move on to the next topic. Can you explain how you ensure API security when developing Node.js applications?
I separate authentication from authorization. Each endpoint checks the authenticated user, their role and the tenant that owns the requested resource; a client-supplied tenant ID is never trusted on its own. I validate request schemas, use parameterized SQL and return only necessary fields. Secrets stay outside source code, tokens have short lifetimes, and cookies use secure settings where applicable. I add rate limits and safe error handling, and redact secrets from logs. In the demo project, integration tests include cross-tenant access attempts, expired sessions and malformed input. Dependency updates and security review are part of CI and release planning.
Great, that provides a clear picture of your approach to API security. Now, let's discuss your experience with React and TypeScript. Could you describe a challenging feature you implemented using these technologies and the steps you took to overcome any difficulties?
In the demo dashboard, I built a searchable table whose filters were shared with the URL. The difficult part was keeping fast typing, server requests and browser back navigation consistent. I used a typed filter model and runtime validation for URL values, kept draft input local, and debounced requests. I cancelled obsolete requests and ignored stale responses. I added keyboard navigation, explicit loading and empty states, and tests for back navigation and out-of-order responses. I chose simple components over a large state library because the state was confined to one feature.
Thank you for that detailed explanation. Moving on, can you describe your approach to writing automated tests? How do you ensure they are effective and maintainable over time?
I start from risks and observable behaviour. Unit tests cover deterministic business rules; integration tests exercise APIs with a real test database; a small set of Playwright journeys covers sign-in, tenant boundaries and critical workflows. I avoid coupling tests to component internals and use stable fixtures with explicit setup. When fixing a bug I add a regression case that fails for the original reason. CI runs fast checks on each change and slower suites separately. I investigate flaky tests instead of repeatedly rerunning them, and remove redundant tests when they no longer protect a meaningful behaviour.
That's a solid approach to automated testing. Let's shift gears a bit. Could you tell me about a time when you had to mentor a junior developer? What strategies did you use to help them grow?
In the fictional team, a junior developer struggled to diagnose intermittent API failures. We agreed on a small learning goal: turn an unclear bug report into a reproducible test. During pairing, I asked them to explain their hypothesis, inspect logs and narrow the input rather than taking over. We then wrote the regression test and a short debugging note together. In later reviews I separated blocking issues from suggestions and explained the reason behind each comment. We reduced pairing gradually as they became independent. I would assess progress through the problems they could solve and the questions they asked, not the number of lines written.
Thank you for sharing that experience. Let's talk about performance optimization. Can you give an example of how you've improved the performance of a Node.js application? What specific techniques did you use?
For a fictional CSV export feature, synchronous parsing and serialization caused event-loop delays that affected other requests. I measured event-loop lag, CPU usage and endpoint latency before changing the code. I moved long exports to a bounded background queue, streamed the output and applied backpressure instead of holding the whole dataset in memory. The API returned a job reference and the UI displayed progress. I capped concurrency to protect the database and tested failure recovery and duplicate requests. The trade-off was an asynchronous user flow, so we agreed on that behaviour with the product team. I would compare p95 latency, memory and error rates under the same load before claiming an improvement.
That's a comprehensive approach to optimizing performance. Now, let's verify a specific claim from your CV. You mentioned working on integrating Jest tests and CI checks. Can you elaborate on how you set up these systems and how they benefited the development process?
For the fictional Sample Works project, I configured Jest for fast TypeScript business-logic tests and a separate integration suite against an isolated PostgreSQL database. The CI pipeline installed locked dependencies, checked formatting and types, ran unit tests, then integration tests and a production build. Each test run used its own database state and secrets were injected by the CI environment. Pull requests could not merge if required checks failed. We added coverage for tenant boundaries and export retries after identifying risks, rather than chasing a coverage percentage. The benefit was earlier feedback and reproducible failures; I would track escaped regressions and flaky-test frequency to see whether it helped.
Thank you for that detailed explanation. Now, let's explore a soft skill. How do you approach problem-solving when faced with a particularly challenging technical issue? Can you provide an example?
I first describe the observed behaviour, impact and constraints, then list a few testable hypotheses. I reproduce the issue with the smallest useful case and change one variable at a time. In the fictional dashboard, users sometimes saw old search results after typing quickly. I used network timings to show that responses arrived out of order. I added request cancellation and a current-request guard, then a test that deliberately reversed response order. I shared a short explanation with the team and checked the fix with the designer. If evidence contradicts my hypothesis, I change direction; if I am stuck, I ask a colleague with a concise reproduction instead of hiding the delay.
That's a thoughtful approach to problem-solving. Let's discuss collaboration. Can you share an example of how you've worked with a cross-functional team to deliver a project? What challenges did you face, and how did you overcome them?
For the demo export feature, I worked with a designer, product manager and support colleague. The initial request was an instant download, but large datasets made that unreliable. I explained the constraint with measurements and proposed a background export with clear status and a retry option. We agreed on acceptance criteria for accessibility, completion time and failure messages, then released a small version behind a feature flag. Weekly demos exposed misunderstandings early. When scope grew, I made the delivery trade-offs explicit and let the product manager choose priorities. I documented the final decision and a rollback procedure for the team.
Thank you for sharing that collaborative experience. Lastly, I'd like to discuss code reviews. How do you approach reviewing code from others to ensure quality and consistency?
I first understand the intended behaviour and read the change in context. I check correctness, security boundaries, error handling, accessibility and meaningful tests before style. Automated formatting handles routine consistency so comments can focus on decisions. I label blocking issues and optional suggestions, explain the reason, and ask questions when I lack context. I keep reviews small and timely; for a complex design disagreement I propose a short discussion and record the outcome. In the demo team, a recurring checklist covered tenant isolation and database migrations. I also review my own assumptions and accept a simpler solution when it meets the requirements.
Thank you, Alex, for all the detailed insights you've provided today. I appreciate you taking the time to discuss your experiences and skills with me. We'll be in touch soon regarding the next steps. Have a great day!
Fictional candidate · Preview only — no answers are sent
Candidates are scored and ranked as they finish. Open Quick View for the decision, the score and the gaps in seconds.
Review results, CV analysis and areas to explore in a clear report to choose which candidates to contact.
Why it pays off
Every assessment is built for your exact role, not pulled from a catalog. Each candidate comes back with proven skills, an analyzed CV, their expected rate and their availability. You pick who to call already knowing the answers.
From $1.79 per candidate. Less than one screening call, and you only pay for the candidates you screen.
Skills, tested
A score per skill from your posting. Proven, not declared on a résumé.
CV, analyzed
Matched against the role: strengths, gaps, experience that counts.
Rate and availability
Expected salary or day rate and start date, collected before you call.
Fit and recommendation
Soft skills, hire / no-hire signal, one PDF to forward.
Two assessment modes
Volume roles get a test. Senior and client-facing roles get a conversation.
A timed multiple-choice test written from your posting. Fast to take, fast to grade, hard to game.
Best for
Technical roles, high volume, standardized screening
A written conversation that adapts to the candidate's CV and answers. Tests what they know and how they explain it.
Best for
Senior roles, client-facing roles, anything where communication matters
Not sure? Test for volume, interview for the final three. Same price either way.
Pricing
One pack per open role, from $39. No subscription, no seat licenses, no test catalog. Refund within 7 days if nobody has started.
Ideal for a first hire or a shortlist
Best for an open role with real volume
For high-volume screening
Custom hiring at scale
One assessment per pack, skills test or AI interview. CV analysis and PDF reports included. See full pricing details & refund policy
FAQ
The skills test is a timed multiple-choice test on hard skills. The AI interview is a written conversation that adapts to the candidate’s CV and answers, and scores soft skills too.
Scores by skill, CV analysis, strengths and gaps, start date, rate, and a clear recommendation. Interview reports add communication, reasoning and clarity scores.
Yes. Review every question before publishing and regenerate any you don’t like.
English, French and Spanish. Tests and interviews are written in the language you pick, not translated.
No. They open the link, enter their email, and start. Any device.
Encrypted in transit and at rest. Only the recruiter who created the assessment can see it.
It reads your posting and the candidate’s CV, then runs a live written interview. Follow-up questions adapt to each answer.
One pack per open role, from $39 for 15 candidates. No subscription, no hidden fees. See Pricing for the refund policy.
No catalog of generic tests, no per-seat license: the assessment is generated for your exact role, in minutes. The interview is written and adaptive, so candidates never record themselves on video.
Yes. Try a free trial pack for 3 candidates, granted once. Create a skills test or AI interview and review their results and reports. Buy a paid pack only when you need more candidates.
Start with 3 candidates free. Paste your job description, share your assessment link, and review each candidate’s results and report.