Zenmem
Login
๐ŸŽ“

Placement coach

EducationCampus placementsPython 3.14 ยท Libraryzenmem-open/campus-placement-coach

View source

About this agent

A data-driven coaching system for a college placement cell, built around one public facade โ€” CoachEngine โ€” that implements four modules: comprehensive student profiling, unified skill and confidence scoring, drive match and readiness planning, and post-drive diagnostics. It is one product, not four separate agents: the four internal ZenmemAgent subclasses share a single orchestrator, a single repository, and a single RBAC layer, and the four modules deliberately feed into each other โ€” a decoded rejection updates a student's SWOT weaknesses, which then shapes their next readiness plan. Score arithmetic and drive shortlisting (CGPA, backlog, skill-score and domain thresholds) run as plain, precisely-filterable Python against a structured repository; an LLM is only called where judgment genuinely helps โ€” narrative summaries, personalized readiness plans, and classifying open-ended interview feedback into fixed rejection buckets. Role-based access control means a student can only read or update their own profile; coaches and admins can act on any. Where the specified formula was ambiguous (whether the confidence multiplier scales the whole skill score or only the soft-skill term), the code picks a documented default and exposes a switch rather than silently guessing.

RUNTIMEPython 3.14 ยท Library
MEMORY TYPESession + project, per cohort
SDKzenmem 0.4.4
INTERFACEPython library

What changed with Zenmem?

The same agent, built twice against the same contract โ€” once on Zenmem, once on MongoDB + LangChain/LangGraph.

Before โ†’ after

Code for student profilingโˆ’30%

Code for readiness planningโˆ’59%

New infrastructure to stand upnone

New dependencies to install0

Schema, collection and index worknone

One student inside a cohort poola tags filter

Cohort-shared skill graphone scope

Before With Zenmem

What the team gained

  • A cohort is one project scope and individual students stay addressable inside it by tag, so one student's history comes back without a scope per student to create and clean up.
  • Skill-graph narratives and readiness plans are shared at cohort level, which is the level a placement cell actually reasons at.
  • A live coaching conversation is session-scoped and promoted on close, so an abandoned chat leaves the student's record alone.
  • Gaps surfaced by decoding a rejection feed the next readiness plan from the same scope, with nothing to sync between modules.
  • Company scope is available for org-wide facts when the placement cell needs it, without a new store.

How memory is scoped

Project scope, one per cohort/batch (e.g. BATCH2027-CSE), holds durable, cohort-shared facts: skill-graph narratives, readiness plans, and skill gaps surfaced from rejection decoding. Individual students stay addressable inside that shared pool via zenmem's tags parameter (e.g. studentId), so a call can pull back just one student's history without leaking across the cohort. Session scope covers one live coaching conversation, started and ended around a single chat and promoted to long-term storage by zenmem on close. Company scope is reserved for org-wide facts but not used by any of the four modules yet.

How it works

The four modules, wired together by CoachEngine.

Profile the student

Academics, aspirations, motivations and private coach notes build a Unified Student Profile; an LLM call turns it into a coach-facing narrative.

Score achievements

A coach rates and assigns a confidence factor to a submission; the Hard/Knowledge/Soft skill scores recalculate immediately, deterministically.

Match to drives

Students are shortlisted against a drive's CGPA, backlog, skill-score and domain thresholds, then given a personalized readiness plan.

Diagnose rejections

Round-wise interview results are classified into fixed failure buckets and folded back into the student's SWOT and next readiness plan.

Coach live

A session-scoped chat lets a student or coach talk to the engine directly, gated so a student can only act on their own profile.

What it does

CoachEngine's public methods, grouped by module.

Capabilities

  • register_student / update_own_details / add_coach_note build and maintain the Unified Student Profile, including private coach notes.
  • synthesize_profile_narrative turns the structured profile into a coach-facing narrative via an LLM call.
  • submit_achievement / evaluate_achievement let a student submit work and a coach rate and confidence-weight it, recalculating skill scores on the spot.
  • explain_skill_graph gives a narrative read of a student's latest skill breakdown against a cohort benchmark.
  • add_drive / shortlist_for_drive register a company drive and filter eligible students on CGPA, backlogs, skill score and domain match.
  • generate_readiness_plan drafts a personalized prep plan โ€” target topics, practice tests, mock-interview goals โ€” for one student against one drive.
  • record_post_drive_report logs round-wise interview results, decodes the rejection into fixed buckets, and updates the student's SWOT.
  • start_coaching_session / coaching_chat / end_coaching_session run a free-form, session-scoped coaching conversation.
  • Role-based access control (@require_role, Actor) restricts students to their own profile while coaches and admins can act on any.