System Design blueprint · Education
Campus placement workflow
A placement portal that takes students from verified profiles through drives, assessments, interviews and offers, then reports placement statistics. It must never let a student hold offers in breach of the one-offer policy, and it must never make an eligibility or selection decision that cannot be explained from the audit trail.
- Steps
- 9
- Subjective questions
- 33
- Objective questions
- 33
The problem and the outcome
Problem: Placement cells often run drives on spreadsheets, email threads and group chats. Eligibility lists get edited by hand, students miss deadlines, interview feedback goes missing, and the one-offer rule is checked manually, so disputes and double offers are common.
Outcome: Every drive uses versioned, rule-based eligibility on verified records. Every status change and score is logged in an append-only trail, the one-offer rule is enforced inside a database transaction, and placement reports are computed from recorded events instead of hand-kept tallies.
Architecture
How it works, step by step
- Students sign in with institute SSO and build a structured profile: academic records, backlogs, projects, skills and one or more resume versions generated from the profile fields.
- The placement cell verifies academic records with maker-checker approval, using university or DigiLocker-issued documents where available. Once verified, fields are locked, and any later edit reopens verification and is logged.
- Recruiters register a drive with role, CTC band, locations and eligibility criteria (branch, CGPA, backlogs, graduation year), and the placement cell approves it. The criteria are stored as a versioned rule set.
- When a drive is published, the eligibility engine evaluates verified data only and freezes a snapshot of the eligible list with the rule version. Notifications then go out through a queue, using DLT-registered SMS templates, email and in-app alerts.
- Eligible students opt in before the deadline and attach a resume version. Candidates take an online assessment through an integrated proctoring vendor, whose scores return by signed webhook.
- Shortlisted candidates are matched to panel slots using calendar APIs. The scheduler avoids clashes with the student's other drives and exams and records every reschedule with a reason.
- Each panelist submits rubric scores and a recommendation independently before seeing other panelists' scores. Submissions are locked, and any correction is appended as a new version.
- The offer service releases offers and records acceptance or decline. Acceptance runs a transactional one-offer check that updates the student's placement status and withdraws pending applications that the policy blocks.
- Placement statistics, such as placed versus eligible opted-in students and CTC distribution by branch, are computed from audit events. Each published number can be traced back to individual records.
Tech stack
- PostgreSQL with row-level security for tenants and roles
- Keycloak or the institute's SSO (OIDC/SAML) for authentication
- Kafka or a managed queue (e.g. AWS SQS) for notifications and events
- Rules stored as versioned JSON evaluated by a deterministic eligibility service
- Google Calendar / Microsoft Graph APIs for interview slots
- Third-party proctored assessment platform via webhooks
- Object storage with signed URLs for resumes and offer letters
- Metabase or a similar BI tool on a read replica for reports
Key design decisions
- Freeze the eligible list at publish time with the rule version. Later record edits do not silently add or remove students; any change needs a logged override with a reason.
- Enforce the one-offer policy in the database with a row lock on the student's placement status and a partial unique index on accepted offers per season, not in application code alone.
- Make the policy configurable per institute: block on offer release versus on acceptance, and dream or super-dream tiers that allow one upgrade. Version the policy so past decisions can be replayed.
- Keep the audit ledger append-only and hash-chained, and derive statistics from it so published reports and individual records cannot disagree.
- Collect panel feedback blind and lock it on submission to reduce anchoring, and keep recruiter access limited to their own drive's candidates.
Common mistakes
- Checking the one-offer rule with a read-then-write outside a transaction lets two simultaneous acceptances both succeed.
- Letting officers edit eligibility lists in a spreadsheet export breaks fairness and leaves no explanation for exclusions.
- Counting placement rate against all students instead of eligible opted-in students, or double counting multiple offers, misreports statistics.
- Sending drive notifications without idempotency keys produces duplicates on retry, while missing retries cause students to miss deadlines and file disputes.
- Exposing caste, gender or other sensitive fields to recruiters or eligibility rules violates policy and the DPDP Act's purpose limitation.
What to measure
- Verification turnaround time from submission to approval
- Notification delivery rate and time from drive publish to delivery
- Median days from drive registration to offer release
- Placement rate over eligible opted-in students, with offer acceptance rate
- Number of eligibility overrides and disputes raised per drive
Most-asked interview questions
Subjective questions 33
1How would you enforce the one-offer policy so that it cannot be bypassed under concurrency?Asked almost every time
I'd treat the student's placement status as the single source of truth and change it only inside a database transaction. On acceptance, I lock the student's status row with SELECT FOR UPDATE and check the active policy version, including any dream-tier upgrade allowance. Then I insert the accepted offer and update the status. A partial unique index on accepted offers per student per season is the backstop if code has a bug. In the same transaction I write an outbox event, which later withdraws the student's pending applications and notifies recruiters. The acceptance endpoint is idempotent, so a retried click doesn't create a second record. Every decision is logged with the policy version, so disputes can be replayed exactly.
2Walk me through the high-level architecture of this placement portal.Asked almost every time
I would split it into services that own clear data: identity (institute SSO), profile and verification, drive and rule-set management, the eligibility engine, applications and opt-ins, assessment integration, scheduling, evaluation, offers, notifications and reporting. Each service writes state changes to its own store and emits domain events through a transactional outbox to a durable log. The audit store consumes those events as append-only records. Reporting builds projections from the same events, so published numbers trace back to records. External parties, meaning the proctoring vendor, calendar APIs, SMS gateway and DigiLocker, sit behind adapters with retries, signature checks and circuit breakers. The offer service holds the one-offer invariant in a single strongly consistent database. Everything else can be eventually consistent.
3Sketch the core data model you would use.Asked almost every time
Student holds identity from SSO. ProfileField holds a value, a verification state and a version, and each verified field links to a VerificationRecord with maker, checker, source document reference and timestamps. ResumeVersion is an immutable rendering pinned to a set of profile field versions. Drive has role, CTC band and locations, plus a RuleSet with a version number and a declarative criteria document. EligibilitySnapshot links a drive, a rule version and per-student results with reasons. Application links a student, a drive, a resume version and a status history. AssessmentResult stores the vendor event ID, score and raw payload hash. InterviewSlot and Reschedule record times and reasons. Evaluation is versioned per panelist. Offer has a state, and PlacementStatus is a single row per student, guarded during acceptance.
4How would you design the maker-checker verification flow for academic records?Asked almost every time
A maker from the placement cell reviews the student's submitted values against a source: a DigiLocker-issued document where available, a university feed, or an uploaded marksheet. The maker proposes 'verified' or 'rejected' with notes. A different user, the checker, approves or sends it back. The system enforces maker not equal to checker at the database or service level, not only in the UI. Each transition is an event carrying user IDs, document reference and hash, and timestamps. On approval the field version is locked. Any later edit creates a new field version in 'pending' state and reopens verification. Eligibility only reads the latest verified version, so an edit never silently changes outcomes. I would also add a queue with SLAs so verification backlog does not block drives.
5How do you securely consume assessment scores from the proctoring vendor's webhook?Asked almost every time
I verify an HMAC or asymmetric signature over the raw request body using a per-vendor secret kept in a secrets manager, and I use a constant-time comparison. I require a timestamp in the signed content and reject anything outside a short window to block replays. I use the vendor's event ID as an idempotency key so redeliveries do not create duplicates. I validate that the candidate and drive mapping exists and that the candidate actually opted in. Otherwise I quarantine the event. I store the raw payload hash for audit, acknowledge quickly, and process asynchronously. Secrets rotate with an overlap period in which both keys are accepted. Mutual TLS or IP allow-listing can add defence in depth, but neither replaces the signature check.
6How do you guarantee that panelists score independently?Asked almost every time
The evaluation service enforces this at the API level. A panelist's read access to other panelists' scores for a candidate is denied until that panelist's own submission is locked. Hiding scores only in the UI is not enough, because the API could still leak them. Aggregates are not exposed either until the panel is complete or the panelist has submitted. Each submission is stored with the panelist ID, timestamp and rubric version, and becomes immutable. If a panelist needs to correct a score after seeing others, the correction is a new version with a mandatory reason and a flag showing it was made after the reveal. That keeps the independence property auditable and lets reviewers spot score anchoring.
7How does India's DPDP Act affect this design?Asked almost every time
The Digital Personal Data Protection Act, 2023, together with its rules, requires a lawful basis for processing, clear notices, purpose limitation, security safeguards, breach handling and support for data principal rights. In practice I would record explicit, granular consent or another valid basis for sharing data with recruiters, per drive. I would share only the fields a recruiter needs and keep recruiters out of the backlog history unless a criterion requires it. I would also record retention periods, offer access and correction requests, and keep a breach response process. Recruiters act on data we share, so contracts must cover their handling. I would involve the institute's legal team for the specifics rather than guess at obligations.
8How do you make eligibility fair and explainable to students and recruiters?Very often asked
Eligibility runs as deterministic rules over verified fields only, never over self-declared data. The rule set is versioned and approved by the placement cell before publishing. At publish time I freeze a snapshot: the student ID, the rule version, and the pass or fail result for each criterion. A student can then see exactly why they were excluded, for example 'CGPA 6.8 below 7.0'. If a record is corrected after publishing, the student isn't added silently. An officer files an override with a reason, which is logged and visible in the audit trail. Sensitive attributes are excluded from rule inputs entirely. Periodic reports compare eligibility and selection rates across branches so the cell can spot skewed criteria.
9How would you design interview scheduling for a drive with hundreds of shortlisted students and several panels?Very often asked
I model it as slot allocation. Panels publish availability, and the student's calendar includes their other confirmed interviews, assessments and exam timetable. The scheduler assigns slots greedily by shortlist order with buffer time, then lets students swap within limits. Slot booking uses a unique constraint on panel and time so two students can't take the same slot. Calendar invites go out through Google or Microsoft APIs with video links. Reschedules and no-shows are recorded with reasons, because they affect fairness reviews later. When a panel runs late, the system pushes updated times through the notification queue instead of WhatsApp groups. Feedback forms open only for the assigned panelists once the slot starts.
10How do you represent eligibility criteria as a versioned rule set?Very often asked
I would store criteria as a declarative document, not code: allowed branches, a minimum CGPA with an explicit comparison operator, a maximum active or historical backlog count, graduation years, and optionally policy flags such as already-placed status. Each approved change creates an immutable new version with author, approver and diff. The engine is a pure function: it takes a rule version and verified field versions and returns a verdict per criterion. Because it is deterministic and pure, I can re-run any historical evaluation and get the same answer. Recruiter-specific logic that cannot be expressed declaratively gets pushed back to the placement cell rather than allowed as custom scripts, because scripts are hard to audit.
11What exactly does the eligibility snapshot store, and why freeze it?Very often asked
It stores the drive ID, rule-set version, engine version, evaluation time, and for every student considered, the verdict plus the exact field versions used and the per-criterion outcome, for example 'CGPA 7.4 is at least 7.0: pass'. Freezing it means notifications, opt-ins and recruiter views all refer to one fixed list, rather than a list that shifts as profiles change. It also gives a stable audit answer to the question 'why was I excluded?' If data or rules change later, I create a new snapshot linked to the previous one instead of mutating it. That way the history of who was eligible and when is preserved.
12Give a rough capacity estimate for a busy drive publish and explain your assumptions.Very often asked
I would not quote real numbers without the institute's data, so I would parametrise. Suppose S final-year students, D drives per peak day, and each publish notifies E eligible students over three channels. Notifications are about 3 × E × D messages, sent through a queue. For a few thousand students this is small for compute, so the real limits are SMS gateway throughput and template rules. Opt-in traffic is bursty near deadlines, perhaps a large share in the last hour, so I would size the application API for that peak and make writes idempotent. The eligibility evaluation is S rule checks per drive, which is trivial. Storage is dominated by resume PDFs and assessment payloads, not relational rows.
13What happens if webhooks from the proctoring vendor are lost or arrive out of order?Very often asked
I never rely on webhooks alone. After the assessment window closes, a reconciliation job calls the vendor's results API, if one exists, and compares results against what we received for every opted-in candidate. Missing scores get fetched, and mismatches get flagged for review. For ordering, each event carries a vendor timestamp or sequence number. I apply a state machine, for example started, submitted, scored, rescored, and ignore stale transitions instead of overwriting newer data. Shortlisting is gated on a 'results complete' state for the drive, so we never shortlist from a partial set. Candidates with technical failures, such as disconnects, go to a review queue rather than being scored zero automatically.
14How would you design the audit trail so that it is trustworthy?Very often asked
Audit records are append-only events: actor, action, entity, before and after references, reason, request ID and time. Services write them through the outbox in the same transaction as the state change, so no change happens without an event. The audit store accepts only inserts, and the application role has no update or delete grants. For tamper evidence I would hash-chain records per entity or per day and periodically anchor the chain head in write-once storage. Clock skew is handled with server timestamps plus sequence numbers. Reading the audit trail is itself access-controlled and logged. Finally, the audit trail must be sufficient to replay decisions, so it references rule versions, field versions and rubric versions rather than copying only display text.
15How do you make placement statistics traceable back to individual records?Very often asked
Statistics are projections built from audit events, with a versioned metric definition: the numerator, the denominator, filters, and which offer states count. When a number is published, I store a report record with the metric definition version, the event log offset or cutoff time, and the list of contributing student or offer IDs, or a reproducible query over them. Anyone authorised can drill from 'placed: N' to the list of records and from each record to its acceptance event. Because projections are deterministic, I can rebuild them from the log and check that they match. Published reports are immutable. Corrections create a new version with a reason, so earlier brochures stay explainable.
16A recruiter revokes an offer after the student accepted it. How should the system respond?Very often asked
The revocation is a new event on the offer, with the actor, reason and approval from the placement cell. Nothing is deleted. The placement status transaction then recomputes the student's state. Under most institute policies the student becomes eligible again, but that is a policy decision, so I make it a versioned policy setting rather than hard-code it. Applications that were withdrawn because of the acceptance are not silently revived, because those drives may have moved on. Instead, the student is notified and can opt in to drives that are still open, and the cell can manually restore specific applications with a logged reason. Statistics treat the revoked offer according to the metric definition, and earlier published reports keep their version.
17How would you design access control across students, placement cell staff, recruiters and panelists?Very often asked
I would use RBAC for broad roles and attribute-based checks for scope. A recruiter can see only applicants who opted in to that recruiter's own drives, and only the fields that consent allows. Panelists see only the candidates assigned to their slots, and only during the evaluation window. Placement cell makers and checkers have separate permissions, so one person cannot do both steps on the same record. Admin actions require MFA and are logged. Authorisation is enforced server-side in a shared policy layer, ideally declarative, so it can be tested and reviewed. Bulk exports are restricted, watermarked and logged. I would also run periodic access reviews, because staff and recruiter contacts change every season.
18How would you support policy variations such as a higher-CTC exception to the one-offer rule?Very often asked
I would model the placement policy as versioned configuration, separate from drive rules: for example, tiers by CTC band, which tiers a placed student may still apply to, and how many upgrades are allowed. The acceptance transaction evaluates the active policy version and records it on the acceptance event. Pending application withdrawal uses the same policy, so withdrawal and eligibility never disagree. Policy changes mid-season need approval and an effective date, and they do not retroactively alter decisions already made. Students see the policy that applies to them. I would keep the policy language small and testable, because every additional exception multiplies edge cases in the concurrency-critical path.
19A student asks why they were not selected after an interview. What can the system explain, and how?Very often asked
The audit trail can reconstruct the whole path: the eligibility snapshot and rule version, the opt-in and resume version, the assessment score with the vendor event, the shortlisting rule and cutoff version, the interview slot, each panelist's locked rubric scores and recommendation, and the recruiter's final decision with the actor and time. What is shared with the student is a policy choice. Many institutes share stage-level outcomes but not individual panelist notes. The system should support both an internal full explanation and a student-facing summary. The key design requirement is that every selection decision references a recorded input and a named actor, so there is never a decision with no recorded reason.
20How do you handle the notification pipeline, including DLT rules and retries?Very often asked
Notifications are produced through an outbox after the publish commits, then fanned out by channel workers. SMS must use templates registered on the DLT platform under TRAI's regulations, with the registered header and template ID. Only the variable parts change, so templates are managed as configuration and the code cannot send free-form SMS. Each message has a deterministic idempotency key, such as drive, student, channel and template, so retries do not spam students. Workers apply provider rate limits and exponential backoff, and dead-letter permanent failures. Delivery receipts update status. In-app alerts are the reliable fallback, and the portal itself remains the source of truth for deadlines, not the SMS.
21Why generate resumes from profile fields, and how do you handle the resume a student attaches to an application?Often asked
Generating resumes from structured fields keeps them consistent with verified data, so a student cannot claim a CGPA in the PDF that differs from the verified record. It also lets recruiters compare candidates in a uniform format. Each resume version is immutable and records which field versions and template it was rendered from. When a student opts in, the application pins a specific resume version ID. If the student later edits their profile, the recruiter still sees what was submitted, and the audit trail shows exactly what the recruiter saw. Free-text sections such as project descriptions can be student-authored, but verified fields are rendered only from locked values and are marked as verified.
22How do you enforce opt-in deadlines fairly?Often asked
The server's clock is authoritative, synchronised by NTP, and the deadline is stored in UTC with the display time zone, which is IST for most users. The opt-in write checks the deadline inside the same transaction that creates the application, so a request that started before the cutoff but committed after it is rejected consistently. Clients show a countdown but are never trusted. I would load-test the last-minute spike and keep the opt-in path lightweight, because a slow system at the deadline is itself unfair. If an outage occurs near the cutoff, the placement cell can extend the deadline for everyone as a logged, versioned change, rather than accepting individual late requests.
23A student edits a verified field in the middle of the season. What happens to their ongoing applications?Often asked
The edit creates a new pending version, and verification reopens. Existing snapshots and applications keep pointing to the old verified version, so in-flight drives are not disrupted by unverified data. For new drives, eligibility uses the last verified version until the new one is approved. The system flags the student's active applications so that the placement cell can see a pending change. If the change is a correction that makes the student ineligible, for example a newly reported backlog, the cell decides on in-flight applications through a logged action under a written policy. The change does not automatically eject the student, because that decision must be explainable and reviewed.
24How do you prevent double-booking when panelists' calendars live in external systems?Often asked
Our database is the source of truth for slot reservations. When the scheduler assigns a slot, it creates a tentative hold with a unique constraint on panel and time range, then calls the calendar API to create the event. If the call fails, a retry job reconciles it. Before assigning, it reads free/busy data, but free/busy can change after the read, so a nightly and pre-drive reconciliation compares our reservations with the external calendars and flags conflicts for rescheduling. Calendar writes use idempotency keys or stored external event IDs to avoid duplicates. Webhooks or push notifications from the calendar provider, where supported, help detect changes faster but do not replace reconciliation.
25How should no-shows and reschedules be handled without making the process unfair?Often asked
Every reschedule is an event with an initiator (student, panel or system), a reason code, free text and timestamps. Policies define limits, for example how many student-initiated reschedules are allowed per drive, and which reasons are always allowed, such as an exam clash or a medical issue. A no-show is recorded by the panel, but the student gets a short window to report a technical or genuine issue before the status becomes final. Reporting on reschedules by initiator lets the cell spot panels or recruiters that move slots repeatedly. The point is that outcomes like 'absent, not evaluated' are visible and contestable rather than silently rejecting candidates.
26How would you test the eligibility engine?Often asked
Because the engine is a pure function, it is very testable. I would keep a golden dataset of synthetic students covering boundary cases: CGPA exactly at the cutoff, rounding of CGPA values, zero versus one backlog, active versus cleared backlogs, dual degrees, lateral entry and mismatched graduation years. Property-based tests check invariants, for example that loosening a criterion never removes an eligible student. Every rule version change runs a diff report against the previous version on real verified data, which the placement cell reviews before approval. Engine code changes are versioned too, and the snapshot records the engine version, so a historical result can be reproduced exactly.
27A recruiter wants to change criteria after the drive has been published. How do you handle it?Often asked
The change goes through the same approval as the original: a new rule version, approved by the placement cell, with the reason recorded. The engine produces a new snapshot linked to the previous one. Loosening criteria adds students, who get notified, and the deadline may be extended so that they get a fair window. Tightening criteria is more sensitive, because students may have opted in and taken assessments. Policy should either forbid it after opt-ins open or require explicit cell approval, with affected students informed of the reason. The old snapshot stays intact, so anyone can see who was eligible under each version and why the list changed.
28How would you treat proctoring flags such as tab switches or face-detection alerts?Often asked
Flags are evidence, not decisions. The vendor's flags and any snapshots are stored with the assessment result, and drive policy defines which flags trigger human review. A reviewer from the placement cell or the recruiter looks at the evidence and records a decision with a reason. Only then can a candidate be disqualified. Students should be able to respond, because false positives happen, for example from poor lighting, shared rooms or unstable connections. Proctoring media is sensitive personal data, so I keep it access-restricted, encrypted, and on a short retention period agreed with the vendor contract, and I share it only with the people who need to review it.
29How do you reconcile audit immutability with data deletion or retention requirements?Often asked
I separate identity and personal data from decision records. Audit events reference a pseudonymous student ID, and personal fields live in a separate store or are encrypted with per-student keys. When retention ends or deletion is legally required, I delete the personal data or destroy the key, which is called crypto-shredding, while the audit structure and aggregate statistics remain intact. Some records may need to be kept longer for legal or accreditation reasons. Those retention periods are defined with the institute's legal team and documented. Proctoring video and resume PDFs typically get shorter retention than offer records. Deletion jobs are themselves audited.
30Would you use event sourcing for the whole system? What are the trade-offs?Often asked
Not for everything. Full event sourcing gives perfect replay, but adds complexity in schema evolution, projections and debugging, and most of this system is simple CRUD with a strong audit need. I would use conventional tables as the operational state, with a transactional outbox that emits domain events into an append-only audit log. This gives me the explainability of an event log without forcing every read through projections. The offer and placement status path stays in a relational database with transactions, because that invariant needs strong consistency. Reporting is the one area that is naturally event-sourced, because metrics must be rebuildable and traceable from events.
31How do you handle failures of the offer service during an acceptance deadline?Often asked
First, I keep the acceptance path small and dependency-free. It touches only the offers and placement status tables, and notifications go out later through the outbox. Then a downstream outage cannot block acceptance. Requests carry idempotency keys, so a client retry after a timeout returns the original result instead of failing or double-processing. If the database is unavailable, acceptance fails cleanly and is not queued for later. A queued acceptance could violate the policy when replayed. The incident is logged, and the placement cell can extend offer deadlines as a recorded action. Monitoring alerts on the acceptance error rate during known deadline windows.
32What would you monitor, and which SLOs matter most?Often asked
I would set availability and latency SLOs on student-facing write paths near deadlines: opt-in, acceptance and the scheduling confirmation. I would also track verification backlog age, because unverified students are silently excluded from drives. For integrations, I would watch webhook signature failures, reconciliation mismatches, SMS delivery rates and calendar sync conflicts. For correctness, I would run invariant checks as monitors: no student with more accepted offers than the policy allows, no application without a snapshot reference, and no evaluation readable before submission. Audit outbox lag shows whether events are reaching the audit log. Dashboards are split per drive, because problems usually show up in one drive at a time.
33How would you ingest bulk academic data from the university and reconcile it with student-entered profiles?Sometimes asked
University results usually arrive as a file or API feed. I would stage each import as a batch with a checksum and source, validate the schema, and match records on enrolment number, not on name. The system then compares imported values with student-entered values field by field. Exact matches can be presented to the maker as pre-verified evidence, but they still go through maker-checker approval. Mismatches go to a review queue with both values shown. The import is idempotent, so reloading the same batch does nothing. A later corrected batch creates new field versions, which reopen verification. Every verified field links back to the batch ID and the row it came from.
Objective questions 33
1What is the most robust way to verify that a proctoring webhook really came from the vendor?Asked almost every time
Why: A signature over the raw body proves authenticity and integrity, and a signed timestamp limits replay. HTTPS and headers alone do not authenticate the sender.
2The vendor retries the same score webhook three times. How should the system avoid duplicate results?Asked almost every time
Why: An idempotency key makes redeliveries harmless while still allowing at-least-once delivery. Retries are what make lost deliveries recoverable.
3How do you ensure that a drive-published notification is sent if and only if the publish commits?Asked almost every time
Why: The outbox couples the event to the database commit without needing the external system to join the transaction.
4Two acceptance requests for different offers from the same student arrive at the same moment. Which approach reliably enforces the one-offer policy?Very often asked
Why: A row lock serialises the concurrent requests, and the unique index guarantees that a second accepted offer cannot be stored even if application logic fails. The other options either race or fix the problem too late.
5Which rule must the system enforce for maker-checker verification?Very often asked
Why: The control depends on two distinct people. Enforcing it only in the UI could be bypassed through the API.
6A student's backlog count is pending re-verification when a drive is published. What does the eligibility engine use?Very often asked
Why: The engine evaluates verified data only. Using the last verified version keeps the outcome explainable from locked records.
7What must an eligibility snapshot record to be reproducible later?Very often asked
Why: Reproducing a decision requires the exact rules, logic version and input data versions. A bare list cannot explain why someone was excluded.
8Can a panelist call the API to read other panelists' scores before submitting their own?Very often asked
Why: Independence must be enforced server-side. Hiding data only in the UI still leaks it to anyone using the API.
9A panelist realises they entered a wrong rubric score after locking. What is the correct handling?Very often asked
Why: Appending versions preserves history, so the correction and its timing stay visible in the audit trail.
10What does a DLT-registered SMS template require?Very often asked
Why: Under TRAI's commercial communication rules, messages are checked against registered templates and headers. Content outside the template is liable to be blocked.
11Which time source should decide whether an opt-in met the deadline?Very often asked
Why: Client clocks can be wrong or manipulated. Checking at commit time gives a single consistent rule for everyone.
12What data should a recruiter be able to see?Very often asked
Why: Purpose limitation and data minimisation reduce privacy risk and match what students agreed to share.
13A recruiter lowers the CGPA cutoff after publish, and the placement cell approves the change. What should happen?Very often asked
Why: Versioning keeps both lists explainable, and notifying new students gives them a fair chance to opt in.
14When a student accepts an offer, when should pending applications blocked by the policy be withdrawn?Very often asked
Why: Doing it atomically prevents a window in which the student could progress in a blocked drive. Notifications can safely follow asynchronously.
15Which reads may safely use an asynchronously replicated read replica?Very often asked
Why: Reporting tolerates staleness. Invariant checks must read from the primary inside the transaction to stay correct.
16A student's CGPA is corrected upward after a drive's eligibility list was published. What should the system do?Often asked
Why: Freezing the snapshot keeps the list explainable, and a logged override corrects the case fairly while keeping the audit trail complete. New drives use the corrected verified record automatically.
17Which denominator gives the most defensible placement rate in reports?Often asked
Why: Eligible opted-in students reflect who the placement process actually served. Counting offers double counts students, and using the full batch includes those who chose higher studies or opted out.
18An SMS worker sends a message and crashes before acknowledging the queue message. What prevents a duplicate SMS on redelivery?Often asked
Why: Queues typically deliver at least once. Deduplicating on a stable key makes reprocessing safe, although a crash between send and record can still rarely duplicate.
19Which Indian law most directly governs the processing of students' personal data in this portal?Often asked
Why: The DPDP Act, 2023 sets obligations for processing digital personal data, including notice, consent and safeguards.
20A student updates their projects after opting in to a drive. What should the recruiter see?Often asked
Why: Pinning an immutable resume version makes the application auditable and prevents changes after the deadline.
21Besides other interview slots, what else must the scheduler check for clashes?Often asked
Why: The workflow requires avoiding clashes with the student's other drives and exams, so both must be inputs.
22Two schedulers try to book the same panel slot at once. What is the best guard?Often asked
Why: Our database is the source of truth and can atomically reject overlaps. Free/busy checks are racy and external.
23How can the audit log be made tamper-evident?Often asked
Why: Chained hashes reveal any alteration, and write-once anchoring prevents rewriting the chain undetected.
24How should recruiter eligibility criteria be expressed?Often asked
Why: Declarative rules are reviewable, testable and reproducible. Arbitrary scripts and free text are hard to explain or audit.
25A recruiter revokes an accepted offer. How is it represented?Often asked
Why: Events preserve history for audit and statistics, and policy determines the student's resulting status.
26The proctoring vendor flags a candidate for suspected malpractice. What should the system do?Often asked
Why: Flags can be false positives. A human decision with recorded reasons keeps selection explainable from the audit trail.
27A metric's definition changes mid-season. How do you recompute statistics reliably?Often asked
Why: Deterministic replay with versioned definitions keeps old and new numbers traceable and reproducible.
28Thousands of notifications are triggered when a large drive is published. What is the right approach?Often asked
Why: Queueing decouples the publish from delivery and respects provider throughput limits without failing the publish.
29Which accounts most need multi-factor authentication on top of SSO?Often asked
Why: These roles can change records that drive eligibility and offers, so they are the highest-value targets.
30How can a student's personal data be erased while keeping audit events intact?Often asked
Why: Crypto-shredding makes the personal data unrecoverable without breaking append-only audit records.
31How should shortlisting from assessment scores be recorded?Often asked
Why: A recorded rule applied to a complete result set lets every shortlist decision be explained and reproduced.
32A validly signed webhook arrives for a candidate who never opted in to the drive. What should happen?Often asked
Why: A valid signature does not make the mapping valid. Quarantining preserves evidence without corrupting application data.
33The cutoff is 'CGPA at least 7.0'. Which test case best catches a common bug?Sometimes asked
Why: Boundary values expose operator and rounding mistakes, such as greater-than versus greater-than-or-equal, which are a frequent source of unfair exclusions.
Track your progress through every blueprint in your dashboard.
Start learning