<!DOCTYPE html> <!-- saved from url=(0095)file:///...
創建於:2026年4月20日
使用 GPT-5.4 Thinking 回答 Chat01
創建於:2026年4月20日
使用 GPT-5.4 Thinking 回答 Chat01
/* A1 = 594mm × 841mm → at 96dpi screen preview ≈ 2245×3179px
We target 1700px wide for browser rendering, scale with CSS. */
body {
background: #04070F;
display: flex;
justify-content: center;
padding: 20px;
font-family: 'Barlow', sans-serif;
}
.poster {
width: 1700px;
min-height: 2400px;
background: var(--dark);
position: relative;
overflow: hidden;
}
/* ── Background grid texture ── */
.poster::before {
content: '';
position: absolute; inset: 0;
background-image:
linear-gradient(rgba(10,132,255,0.04) 1px, transparent 1px),
linear-gradient(90deg, rgba(10,132,255,0.04) 1px, transparent 1px);
background-size: 40px 40px;
pointer-events: none;
z-index: 0;
}
/* ── Glow blobs ── */
.blob {
position: absolute;
border-radius: 50%;
filter: blur(120px);
pointer-events: none;
z-index: 0;
}
.blob-1 { width:600px; height:600px; background:rgba(10,132,255,0.12); top:-100px; right:-100px; }
.blob-2 { width:500px; height:500px; background:rgba(0,198,184,0.08); bottom:200px; left:-100px; }
.blob-3 { width:400px; height:400px; background:rgba(245,197,24,0.07); top:900px; right:200px; }
/* ── HEADER ── */
.header {
position: relative; z-index: 1;
background: linear-gradient(135deg, #0A1628 0%, #0D1E38 60%, #0A1628 100%);
border-bottom: 3px solid var(--gold);
padding: 28px 48px;
display: flex;
align-items: center;
gap: 40px;
}
.header-logo-block {
display: flex;
flex-direction: column;
align-items: center;
min-width: 160px;
}
.uni-logo-box {
background: white;
border-radius: 8px;
padding: 8px 12px;
display: flex;
flex-direction: column;
align-items: center;
gap: 2px;
border: 2px solid var(--gold);
}
.uni-name {
font-family: 'Bebas Neue', sans-serif;
font-size: 22px;
color: #1A3A6C;
line-height: 1;
letter-spacing: 2px;
}
.uni-sub {
font-size: 9px;
font-weight: 700;
color: #C8281E;
letter-spacing: 1.5px;
text-transform: uppercase;
text-align: center;
}
.uni-grade {
font-size: 8px;
font-weight: 700;
background: #C8281E;
color: white;
padding: 1px 6px;
border-radius: 2px;
text-transform: uppercase;
letter-spacing: 1px;
}
.header-center {
flex: 1;
text-align: center;
}
.poster-title {
font-family: 'Bebas Neue', sans-serif;
font-size: 86px;
letter-spacing: 8px;
color: var(--white);
line-height: 1;
text-shadow: 0 0 40px rgba(10,132,255,0.5);
}
.poster-title span { color: var(--gold); }
.poster-subtitle {
font-family: 'Barlow Condensed', sans-serif;
font-size: 22px;
color: var(--teal);
letter-spacing: 4px;
text-transform: uppercase;
margin-top: 4px;
}
.poster-meta {
margin-top: 10px;
font-size: 17px;
color: var(--text);
font-weight: 300;
}
.poster-meta strong { color: var(--gold); font-weight: 600; }
.header-company {
min-width: 160px;
display: flex;
flex-direction: column;
align-items: center;
gap: 6px;
}
.company-badge {
background: white;
border-radius: 10px;
padding: 12px 20px;
border: 2px solid var(--gold);
display: flex;
flex-direction: column;
align-items: center;
gap: 3px;
}
.company-name {
font-family: 'Bebas Neue', sans-serif;
font-size: 28px;
color: #0A1628;
letter-spacing: 3px;
}
.company-sub {
font-size: 9px;
color: #444;
letter-spacing: 1px;
font-weight: 600;
text-transform: uppercase;
}
/* ── MAIN BODY ── */
.body {
position: relative; z-index: 1;
display: grid;
grid-template-columns: 420px 1fr 420px;
gap: 0;
padding: 0;
}
/* ── Column ── */
.col {
padding: 32px 28px;
display: flex;
flex-direction: column;
gap: 24px;
border-right: 1px solid var(--border);
}
.col:last-child { border-right: none; }
/* ── Section card ── */
.section {
background: var(--panel);
border: 1px solid var(--border);
border-radius: 10px;
overflow: hidden;
}
.section-header {
padding: 10px 18px;
display: flex;
align-items: center;
gap: 10px;
border-bottom: 1px solid var(--border);
}
.section-header.gold { background: linear-gradient(90deg, rgba(245,197,24,0.15), transparent); border-left: 3px solid var(--gold); }
.section-header.blue { background: linear-gradient(90deg, rgba(10,132,255,0.15), transparent); border-left: 3px solid var(--blue); }
.section-header.teal { background: linear-gradient(90deg, rgba(0,198,184,0.15), transparent); border-left: 3px solid var(--teal); }
.section-header.orange { background: linear-gradient(90deg, rgba(255,107,53,0.15), transparent); border-left: 3px solid var(--accent); }
.section-title {
font-family: 'Barlow Condensed', sans-serif;
font-size: 19px;
font-weight: 700;
letter-spacing: 2px;
text-transform: uppercase;
color: var(--white);
}
.section-icon {
font-size: 18px;
}
.section-body {
padding: 16px 18px;
}
p {
font-size: 14px;
line-height: 1.65;
color: var(--text);
font-weight: 300;
}
/* ── Architecture diagram ── */
.arch-diagram {
background: var(--card);
border-radius: 8px;
padding: 20px;
display: flex;
flex-direction: column;
gap: 6px;
align-items: center;
}
.arch-node {
display: flex;
align-items: center;
justify-content: center;
border-radius: 8px;
padding: 10px 20px;
font-family: 'Barlow Condensed', sans-serif;
font-size: 13px;
font-weight: 700;
letter-spacing: 1.5px;
text-transform: uppercase;
text-align: center;
width: 100%;
max-width: 320px;
}
.arch-node.user { background: rgba(245,197,24,0.15); border: 1.5px solid var(--gold); color: var(--gold); }
.arch-node.teams { background: rgba(10,132,255,0.15); border: 1.5px solid var(--blue); color: var(--blue); }
.arch-node.bot { background: rgba(0,198,184,0.15); border: 1.5px solid var(--teal); color: var(--teal); }
.arch-node.ai { background: rgba(255,107,53,0.15); border: 1.5px solid var(--accent); color: var(--accent); }
.arch-node.faiss { background: rgba(150,100,255,0.15); border: 1.5px solid #967CFF; color: #967CFF; }
.arch-node.output { background: rgba(245,197,24,0.15); border: 1.5px solid var(--gold); color: var(--gold); }
.arch-arrow {
font-size: 20px;
color: var(--muted);
line-height: 1;
}
.arch-split {
display: flex;
gap: 10px;
width: 100%;
max-width: 320px;
}
.arch-split .arch-node {
flex: 1;
font-size: 11px;
padding: 8px 6px;
}
/* ── Feature pills ── */
.feature-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
}
.feature-pill {
background: var(--card);
border: 1px solid var(--border);
border-radius: 6px;
padding: 10px 12px;
display: flex;
align-items: flex-start;
gap: 8px;
}
.pill-icon {
font-size: 16px;
flex-shrink: 0;
margin-top: 1px;
}
.pill-text {
font-size: 12px;
line-height: 1.5;
color: var(--text);
font-weight: 400;
}
.pill-label {
font-family: 'Barlow Condensed', sans-serif;
font-size: 12px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 1px;
color: var(--teal);
display: block;
margin-bottom: 2px;
}
/* ── Tech stack tags ── */
.tech-tags {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.tag {
font-family: 'JetBrains Mono', monospace;
font-size: 11px;
padding: 4px 10px;
border-radius: 4px;
border: 1px solid;
font-weight: 700;
letter-spacing: 0.5px;
}
.tag.blue { background: rgba(10,132,255,0.12); border-color: rgba(10,132,255,0.5); color: #5BAEFF; }
.tag.teal { background: rgba(0,198,184,0.12); border-color: rgba(0,198,184,0.5); color: #4DDFD6; }
.tag.gold { background: rgba(245,197,24,0.12); border-color: rgba(245,197,24,0.5); color: var(--gold); }
.tag.orange{ background: rgba(255,107,53,0.12); border-color: rgba(255,107,53,0.5); color: #FF9070; }
.tag.purple{ background: rgba(150,100,255,0.12);border-color: rgba(150,100,255,0.5);color: #C0A8FF; }
/* ── Performance table ── */
.perf-table {
width: 100%;
border-collapse: collapse;
font-size: 13px;
}
.perf-table th {
background: var(--card);
color: var(--gold);
font-family: 'Barlow Condensed', sans-serif;
font-size: 12px;
font-weight: 700;
letter-spacing: 1.5px;
text-transform: uppercase;
padding: 8px 10px;
text-align: left;
border-bottom: 1px solid var(--border);
}
.perf-table td {
padding: 7px 10px;
color: var(--text);
border-bottom: 1px solid rgba(30,45,69,0.5);
vertical-align: middle;
}
.perf-table tr:last-child td { border-bottom: none; }
.perf-val {
font-family: 'JetBrains Mono', monospace;
font-size: 13px;
font-weight: 700;
color: var(--teal);
}
/* ── Results comparison ── */
.compare-grid {
display: flex;
flex-direction: column;
gap: 6px;
}
.compare-row {
display: grid;
grid-template-columns: 1fr auto 1fr;
align-items: center;
gap: 6px;
}
.compare-before {
background: rgba(255,255,255,0.05);
border: 1px solid rgba(255,255,255,0.08);
border-radius: 6px;
padding: 6px 10px;
font-size: 11px;
color: var(--muted);
text-align: right;
font-weight: 600;
}
.compare-label {
background: var(--card);
border: 1px solid var(--border);
border-radius: 6px;
padding: 6px 8px;
font-size: 11px;
color: var(--text);
text-align: center;
font-family: 'Barlow Condensed', sans-serif;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 1px;
white-space: nowrap;
}
.compare-after {
background: rgba(0,198,184,0.1);
border: 1px solid rgba(0,198,184,0.3);
border-radius: 6px;
padding: 6px 10px;
font-size: 12px;
color: var(--teal);
text-align: left;
font-weight: 700;
font-family: 'JetBrains Mono', monospace;
}
.compare-header {
display: grid;
grid-template-columns: 1fr auto 1fr;
gap: 6px;
margin-bottom: 4px;
}
.compare-header span {
font-family: 'Barlow Condensed', sans-serif;
font-size: 12px;
font-weight: 700;
letter-spacing: 1.5px;
text-transform: uppercase;
padding: 4px 10px;
border-radius: 4px;
text-align: center;
}
.compare-header .ch-before { background: rgba(255,255,255,0.06); color: var(--muted); }
.compare-header .ch-vs { background: var(--gold); color: var(--dark); }
.compare-header .ch-after { background: rgba(0,198,184,0.2); color: var(--teal); }
/* ── Question tier display ── */
.tier-block {
display: flex;
flex-direction: column;
gap: 8px;
}
.tier {
background: var(--card);
border-radius: 8px;
overflow: hidden;
border: 1px solid var(--border);
}
.tier-header {
padding: 7px 14px;
display: flex;
align-items: center;
gap: 8px;
font-family: 'Barlow Condensed', sans-serif;
font-size: 14px;
font-weight: 700;
letter-spacing: 1.5px;
text-transform: uppercase;
}
.tier-header.intro { background: rgba(10,132,255,0.2); color: #5BAEFF; }
.tier-header.inter { background: rgba(245,197,24,0.2); color: var(--gold); }
.tier-header.adv { background: rgba(255,107,53,0.2); color: var(--accent); }
.tier-body {
padding: 10px 14px;
font-size: 12px;
color: var(--text);
line-height: 1.55;
}
.tier-body em {
color: var(--muted);
font-style: normal;
font-size: 11px;
font-family: 'JetBrains Mono', monospace;
}
.tier-q {
display: flex;
align-items: flex-start;
gap: 6px;
margin-bottom: 5px;
}
.tier-q:last-child { margin-bottom: 0; }
.tier-num {
font-family: 'JetBrains Mono', monospace;
font-size: 10px;
color: var(--muted);
margin-top: 2px;
flex-shrink: 0;
}
/* ── Flow diagram ── */
.flow {
display: flex;
flex-direction: column;
gap: 5px;
align-items: center;
}
.flow-step {
background: var(--card);
border: 1px solid var(--border);
border-radius: 8px;
padding: 10px 16px;
width: 100%;
display: flex;
align-items: center;
gap: 10px;
}
.flow-step-num {
width: 26px; height: 26px;
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
font-family: 'Bebas Neue', sans-serif;
font-size: 16px;
flex-shrink: 0;
}
.flow-step-num.s1 { background: rgba(10,132,255,0.3); color: var(--blue); border: 1.5px solid var(--blue); }
.flow-step-num.s2 { background: rgba(245,197,24,0.3); color: var(--gold); border: 1.5px solid var(--gold); }
.flow-step-num.s3 { background: rgba(0,198,184,0.3); color: var(--teal); border: 1.5px solid var(--teal); }
.flow-step-content { flex: 1; }
.flow-step-title {
font-family: 'Barlow Condensed', sans-serif;
font-size: 14px;
font-weight: 700;
color: var(--white);
text-transform: uppercase;
letter-spacing: 1px;
}
.flow-step-desc {
font-size: 11.5px;
color: var(--muted);
margin-top: 2px;
line-height: 1.4;
}
.flow-arrow {
text-align: center;
font-size: 18px;
color: var(--muted);
line-height: 1;
}
/* ── Stat boxes ── */
.stat-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
}
.stat-box {
background: var(--card);
border: 1px solid var(--border);
border-radius: 8px;
padding: 14px 12px;
text-align: center;
}
.stat-val {
font-family: 'Bebas Neue', sans-serif;
font-size: 36px;
line-height: 1;
color: var(--teal);
}
.stat-val.gold { color: var(--gold); }
.stat-val.blue { color: var(--blue); }
.stat-val.orange { color: var(--accent); }
.stat-unit {
font-size: 14px;
color: var(--muted);
font-weight: 600;
}
.stat-label {
font-size: 11px;
color: var(--muted);
margin-top: 4px;
text-transform: uppercase;
letter-spacing: 1px;
font-weight: 600;
}
/* ── Inline highlight ── */
.hl { color: var(--gold); font-weight: 600; }
.hl-teal { color: var(--teal); font-weight: 600; }
.hl-blue { color: #5BAEFF; font-weight: 600; }
/* ── Bullet list ── */
ul.mars-list {
list-style: none;
display: flex;
flex-direction: column;
gap: 5px;
padding: 0;
}
ul.mars-list li {
display: flex;
align-items: flex-start;
gap: 8px;
font-size: 13px;
color: var(--text);
line-height: 1.5;
}
ul.mars-list li::before {
content: '▸';
color: var(--teal);
flex-shrink: 0;
font-size: 12px;
margin-top: 2px;
}
/* ── Divider ── */
.divider {
height: 1px;
background: linear-gradient(90deg, transparent, var(--border), transparent);
margin: 4px 0;
}
/* ── Center column special ── */
.col-center {
padding: 32px 24px;
display: flex;
flex-direction: column;
gap: 24px;
}
/* ── Middle section full-width arch ── */
.arch-full {
background: var(--panel);
border: 1px solid var(--border);
border-radius: 10px;
overflow: hidden;
}
.arch-flow-row {
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
flex-wrap: wrap;
padding: 16px;
}
.anode {
display: flex;
flex-direction: column;
align-items: center;
gap: 4px;
padding: 12px 14px;
border-radius: 8px;
border: 1.5px solid;
min-width: 130px;
text-align: center;
}
.anode-icon { font-size: 22px; }
.anode-label {
font-family: 'Barlow Condensed', sans-serif;
font-size: 13px;
font-weight: 700;
letter-spacing: 1px;
text-transform: uppercase;
}
.anode-sub {
font-size: 10px;
opacity: 0.75;
line-height: 1.3;
}
.anode.n1 { background: rgba(245,197,24,0.1); border-color: var(--gold); color: var(--gold); }
.anode.n2 { background: rgba(10,132,255,0.1); border-color: var(--blue); color: var(--blue); }
.anode.n3 { background: rgba(150,100,255,0.1); border-color: #967CFF; color: #C0A8FF; }
.anode.n4 { background: rgba(0,198,184,0.1); border-color: var(--teal); color: var(--teal); }
.anode.n5 { background: rgba(255,107,53,0.1); border-color: var(--accent); color: var(--accent); }
.flow-connector {
font-size: 22px;
color: var(--muted);
font-weight: 900;
}
.arch-split-row {
display: flex;
align-items: center;
justify-content: center;
gap: 12px;
padding: 0 16px 16px;
}
.arch-sub-nodes {
display: flex;
flex-direction: column;
gap: 8px;
flex: 1;
}
.anode-sm {
padding: 9px 12px;
border-radius: 7px;
border: 1.5px solid;
display: flex;
align-items: center;
gap: 8px;
font-size: 12px;
font-family: 'Barlow Condensed', sans-serif;
font-weight: 700;
letter-spacing: 1px;
text-transform: uppercase;
}
.anode-sm.sm-gold { background: rgba(245,197,24,0.08); border-color: rgba(245,197,24,0.4); color: var(--gold); }
.anode-sm.sm-blue { background: rgba(10,132,255,0.08); border-color: rgba(10,132,255,0.4); color: #5BAEFF; }
.anode-sm.sm-teal { background: rgba(0,198,184,0.08); border-color: rgba(0,198,184,0.4); color: var(--teal); }
.anode-sm.sm-purple { background: rgba(150,100,255,0.08); border-color: rgba(150,100,255,0.4); color: #C0A8FF; }
.split-arrow {
font-size: 26px;
color: var(--muted);
}
/* ── FOOTER ── */
.footer {
position: relative; z-index: 1;
background: linear-gradient(135deg, #0A1628 0%, #0D1E38 100%);
border-top: 2px solid var(--gold);
padding: 16px 48px;
display: flex;
justify-content: space-between;
align-items: center;
}
.footer-left {
font-size: 13px;
color: var(--muted);
}
.footer-left strong { color: var(--text); }
.footer-center {
font-family: 'Barlow Condensed', sans-serif;
font-size: 13px;
color: var(--muted);
letter-spacing: 2px;
text-transform: uppercase;
text-align: center;
}
.footer-right {
font-size: 12px;
color: var(--muted);
text-align: right;
}
/* ── Print styles ── */
@media print {
body { padding: 0; background: none; }
.poster { width: 100%; }
}
</style>
</div> <!-- ══════════ BODY ══════════ --> <div class="body">text<!-- Title --> <div class="header-center"> <div class="poster-title"><span>MARS</span> — MAQ Autonomous Recruitment System</div> <div class="poster-subtitle">AI-Powered Interview Assistant · Microsoft Teams Integration</div> <div class="poster-meta"> <strong>[Your Name]</strong> · Roll No: [XXXX] | Guided by: <strong>[Supervisor Name]</strong>, MAQ Software | Department of Computer Science & Engineering · 2025–26 </div> </div> <!-- Company --> <div class="header-company"> <div class="company-badge"> <div class="company-name">MAQ</div> <div class="company-sub">Software</div> <div class="company-sub" style="color:#0A84FF;font-size:8px">Microsoft Gold Partner</div> </div> </div>
</div> <!-- ══════════ FOOTER ══════════ --> <div class="footer"> <div class="footer-left"> <strong>[Your Name]</strong> · [Roll No] · Dept. of Computer Science & Engineering<br> Nirma University, Ahmedabad · Academic Year 2025–26 </div> <div class="footer-center"> MARS — MAQ Autonomous Recruitment System<br> <span style="color:var(--gold);font-size:11px">Internship Project · MAQ Software</span> </div> <div class="footer-right"> Guided by: [Supervisor Name]<br> MAQ Software · Microsoft Gold Partner </div> </div> </div> </body></html>text<!-- ═══ LEFT COLUMN ═══ --> <div class="col"> <!-- About Company --> <div class="section"> <div class="section-header gold"> <span class="section-icon">🏢</span> <span class="section-title">About the Company</span> </div> <div class="section-body"> <p><span class="hl">MAQ Software</span> is a Microsoft-certified Gold Partner and analytics engineering firm headquartered in Redmond, Washington. It specialises in Business Intelligence, data engineering, and custom enterprise solutions for Fortune 500 clients.</p> <div class="divider" style="margin:10px 0"></div> <p>The company is a leading contributor to the Power BI ecosystem with <span class="hl-teal">30+ open-source custom visuals</span>, widely used across enterprise deployments worldwide. Teams communicate and collaborate through Microsoft Teams and Azure DevOps.</p> </div> </div> <!-- Abstract --> <div class="section"> <div class="section-header blue"> <span class="section-icon">📄</span> <span class="section-title">Abstract</span> </div> <div class="section-body"> <p>The traditional recruitment pipeline involves significant manual effort: screening resumes, formulating interview questions, and dynamically adapting during live interviews. This project presents <span class="hl">MARS</span> — an intelligent, end-to-end recruitment assistant integrated natively into <span class="hl-teal">Microsoft Teams</span>.</p> <div class="divider" style="margin:10px 0"></div> <p>MARS leverages <span class="hl-blue">Azure OpenAI (GPT-4o)</span>, <span class="hl-blue">FAISS vector indexing</span>, and <span class="hl-blue">Azure Speech Services</span> to automate three recruitment phases: resume indexing, tiered question generation, and real-time live interview assistance — all within the interviewer's existing workflow.</p> </div> </div> <!-- Method --> <div class="section"> <div class="section-header teal"> <span class="section-icon">⚙️</span> <span class="section-title">Methodology</span> </div> <div class="section-body"> <div class="flow"> <div class="flow-step"> <div class="flow-step-num s1">1</div> <div class="flow-step-content"> <div class="flow-step-title">Resume Ingestion & Indexing</div> <div class="flow-step-desc">Resumes (PDF/DOCX/TXT) from Azure Blob Storage are parsed, embedded via <em>text-embedding-ada-002</em>, and stored in a FAISS index for sub-millisecond semantic search.</div> </div> </div> <div class="flow-arrow">↓</div> <div class="flow-step"> <div class="flow-step-num s2">2</div> <div class="flow-step-content"> <div class="flow-step-title">Tiered Question Generation</div> <div class="flow-step-desc">On Teams command, GPT-4o generates 21 candidate-specific questions (7 per tier) in parallel with MCP web scraper fetching 50–100 market questions.</div> </div> </div> <div class="flow-arrow">↓</div> <div class="flow-step"> <div class="flow-step-num s3">3</div> <div class="flow-step-content"> <div class="flow-step-title">Live Interview Assistance</div> <div class="flow-step-desc">Bot joins Teams call, streams audio via Graph API, transcribes with Azure Speech (100–200ms), and privately delivers follow-up suggestions to the interviewer in real time.</div> </div> </div> </div> </div> </div> <!-- Tech Stack --> <div class="section"> <div class="section-header orange"> <span class="section-icon">🛠️</span> <span class="section-title">Technology Stack</span> </div> <div class="section-body"> <div class="tech-tags"> <span class="tag blue">Python 3.11</span> <span class="tag blue">Azure OpenAI</span> <span class="tag blue">GPT-4o</span> <span class="tag teal">FAISS</span> <span class="tag teal">Azure Speech</span> <span class="tag teal">Whisper</span> <span class="tag gold">Microsoft Graph API</span> <span class="tag gold">Bot Framework SDK</span> <span class="tag orange">aiohttp</span> <span class="tag orange">WebSockets</span> <span class="tag purple">Azure Blob Storage</span> <span class="tag purple">PyPDF2 · python-docx</span> <span class="tag purple">SeleniumBase</span> <span class="tag blue">text-embedding-ada-002</span> </div> </div> </div> </div> <!-- ═══ END LEFT ═══ --> <!-- ═══ CENTER COLUMN ═══ --> <div class="col col-center"> <!-- System Architecture --> <div class="arch-full"> <div class="section-header blue" style="border-radius:0"> <span class="section-icon">🏗️</span> <span class="section-title">System Architecture</span> </div> <div class="arch-flow-row"> <div class="anode n1"> <span class="anode-icon">👤</span> <span class="anode-label">Interviewer</span> <span class="anode-sub">Teams Chat Command</span> </div> <div class="flow-connector">→</div> <div class="anode n2"> <span class="anode-icon">💬</span> <span class="anode-label">Teams Bot</span> <span class="anode-sub">bot_server.py · Port 3978</span> </div> <div class="flow-connector">→</div> <div class="anode n3"> <span class="anode-icon">🗄️</span> <span class="anode-label">FAISS Index</span> <span class="anode-sub">resume_indexer.py</span> </div> <div class="flow-connector">→</div> <div class="anode n5"> <span class="anode-icon">🤖</span> <span class="anode-label">GPT-4o</span> <span class="anode-sub">Azure OpenAI</span> </div> </div> <div class="arch-split-row"> <div class="arch-sub-nodes"> <div class="anode-sm sm-blue">📞 MS Graph Calling API · Join Teams Call</div> <div class="anode-sm sm-teal">🎙️ Audio Stream → WebSocket → 16kHz PCM</div> </div> <div class="split-arrow">→</div> <div class="arch-sub-nodes"> <div class="anode-sm sm-gold">⚡ Azure Speech Services · 100–200ms latency</div> <div class="anode-sm sm-purple">💬 Private Teams Chat → Live Suggestions</div> </div> </div> </div> <!-- Question Tiers --> <div class="section"> <div class="section-header gold"> <span class="section-icon">❓</span> <span class="section-title">Tiered Question Generation</span> </div> <div class="section-body"> <div class="tier-block"> <div class="tier"> <div class="tier-header intro">🌱 Introductory <em style="font-family:JetBrains Mono,monospace;font-size:11px;opacity:0.7">7 questions · Foundational knowledge</em></div> <div class="tier-body"> <div class="tier-q"><span class="tier-num">Q1</span> What is the difference between <span class="hl-blue">var</span>, <span class="hl-blue">let</span>, and <span class="hl-blue">const</span> in JavaScript?</div> <div class="tier-q"><span class="tier-num">Q2</span> Explain Python's <span class="hl-blue">Global Interpreter Lock (GIL)</span> and its practical implications.</div> <div class="tier-q"><span class="tier-num">Q3</span> What are React hooks and why were they introduced?</div> </div> </div> <div class="tier"> <div class="tier-header inter">🔧 Intermediate <em style="font-family:JetBrains Mono,monospace;font-size:11px;opacity:0.7">7 questions · Practical application</em></div> <div class="tier-body"> <div class="tier-q"><span class="tier-num">Q1</span> How did you implement <span class="hl">microservices architecture</span> in your project and what challenges did you face?</div> <div class="tier-q"><span class="tier-num">Q2</span> Describe a difficult bug you resolved in <span class="hl">React state management</span>.</div> <div class="tier-q"><span class="tier-num">Q3</span> Walk me through the CI/CD pipeline you set up.</div> </div> </div> <div class="tier"> <div class="tier-header adv">🚀 Advanced <em style="font-family:JetBrains Mono,monospace;font-size:11px;opacity:0.7">7 questions · System design & architecture</em></div> <div class="tier-body"> <div class="tier-q"><span class="tier-num">Q1</span> Design a <span class="hl" style="color:var(--accent)">globally distributed system</span> for real-time data synchronisation across regions.</div> <div class="tier-q"><span class="tier-num">Q2</span> What are the architectural trade-offs between <span class="hl" style="color:var(--accent)">monolithic vs microservices</span>?</div> <div class="tier-q"><span class="tier-num">Q3</span> How would you optimise a database with <span class="hl" style="color:var(--accent)">100M+ records</span>?</div> </div> </div> </div> </div> </div> <!-- Features --> <div class="section"> <div class="section-header teal"> <span class="section-icon">✨</span> <span class="section-title">Key Features</span> </div> <div class="section-body"> <div class="feature-grid"> <div class="feature-pill"> <span class="pill-icon">🔍</span> <div class="pill-text"> <span class="pill-label">Semantic Search</span> FAISS vector similarity search across all indexed resumes with sub-millisecond lookup. </div> </div> <div class="feature-pill"> <span class="pill-icon">🎯</span> <div class="pill-text"> <span class="pill-label">3-Tier Questions</span> Introductory → Intermediate → Advanced difficulty with 7 questions per tier. </div> </div> <div class="feature-pill"> <span class="pill-icon">🌐</span> <div class="pill-text"> <span class="pill-label">Market Questions</span> Web-scraped from GeeksforGeeks, InterviewBit delivering 50–100 additional questions. </div> </div> <div class="feature-pill"> <span class="pill-icon">🎙️</span> <div class="pill-text"> <span class="pill-label">Live Transcription</span> Azure Speech Services with 100–200ms latency or Whisper for 97–99% accuracy. </div> </div> <div class="feature-pill"> <span class="pill-icon">💬</span> <div class="pill-text"> <span class="pill-label">Private Suggestions</span> Real-time follow-up questions delivered privately to interviewer mid-call. </div> </div> <div class="feature-pill"> <span class="pill-icon">⚡</span> <div class="pill-text"> <span class="pill-label">Parallel Processing</span> AI questions and web scraping run concurrently via asyncio for speed. </div> </div> </div> </div> </div> </div> <!-- ═══ END CENTER ═══ --> <!-- ═══ RIGHT COLUMN ═══ --> <div class="col"> <!-- Results / Comparison --> <div class="section"> <div class="section-header teal"> <span class="section-icon">📊</span> <span class="section-title">Results — Time Savings</span> </div> <div class="section-body"> <div class="compare-header"> <span class="ch-before">Manual</span> <span class="ch-vs">VS</span> <span class="ch-after">MARS</span> </div> <div class="compare-grid"> <div class="compare-row"> <div class="compare-before">30–45 min</div> <div class="compare-label">Question Prep</div> <div class="compare-after">~60 s</div> </div> <div class="compare-row"> <div class="compare-before">Manual</div> <div class="compare-label">Resume Search</div> <div class="compare-after">< 1 ms</div> </div> <div class="compare-row"> <div class="compare-before">15–25 Q's</div> <div class="compare-label">Total Questions</div> <div class="compare-after">65–120 Q's</div> </div> <div class="compare-row"> <div class="compare-before">None</div> <div class="compare-label">Live Suggestions</div> <div class="compare-after">200–400 ms</div> </div> <div class="compare-row"> <div class="compare-before">Manual notes</div> <div class="compare-label">Transcription</div> <div class="compare-after">Auto · 93%+</div> </div> <div class="compare-row"> <div class="compare-before">Inconsistent</div> <div class="compare-label">Coverage</div> <div class="compare-after">3-tier full</div> </div> </div> </div> </div> <!-- Performance stats --> <div class="section"> <div class="section-header gold"> <span class="section-icon">⚡</span> <span class="section-title">Performance Metrics</span> </div> <div class="section-body"> <div class="stat-grid"> <div class="stat-box"> <div class="stat-val gold">~60<span class="stat-unit">s</span></div> <div class="stat-label">First Query End-to-End</div> </div> <div class="stat-box"> <div class="stat-val"><1<span class="stat-unit">ms</span></div> <div class="stat-label">FAISS Candidate Lookup</div> </div> <div class="stat-box"> <div class="stat-val blue">200<span class="stat-unit">ms</span></div> <div class="stat-label">Speech Transcription</div> </div> <div class="stat-box"> <div class="stat-val orange">120<span class="stat-unit"></span></div> <div class="stat-label">Max Questions / Candidate</div> </div> </div> <div style="margin-top:10px"> <table class="perf-table"> <tbody><tr><th>Operation</th><th>Time</th></tr> <tr><td>Index 1 resume</td><td><span class="perf-val">~10s</span></td></tr> <tr><td>Semantic search</td><td><span class="perf-val">~500ms</span></td></tr> <tr><td>AI question gen (3 tiers)</td><td><span class="perf-val">~20–30s</span></td></tr> <tr><td>Market web scraping</td><td><span class="perf-val">~30–60s</span></td></tr> <tr><td>Live suggestion delivery</td><td><span class="perf-val">200–400ms</span></td></tr> </tbody></table> </div> </div> </div> <!-- Discussion --> <div class="section"> <div class="section-header blue"> <span class="section-icon">💡</span> <span class="section-title">Discussion</span> </div> <div class="section-body"> <p>MARS demonstrated that a fully AI-powered interview assistant can be built natively within the Microsoft ecosystem without disrupting the interviewer's existing workflow. The <span class="hl">3-tier question structure</span> mirrors the natural progression of technical interviews and received strong positive feedback from recruitment team members during user acceptance testing.</p> <div class="divider" style="margin:10px 0"></div> <p>Key challenges addressed: the <span class="hl-teal">Graph Calling API</span> requires a public HTTPS endpoint (resolved via Azure App Service deployment); Whisper's 1–3s latency was unsuitable for real-time assistance, making Azure Speech the preferred engine; and FAISS name-matching required fuzzy-string fallback for query tolerance.</p> <div class="divider" style="margin:10px 0"></div> <p>UAT with 2 interviewers confirmed <span class="hl">4.5/5 satisfaction</span> for question quality and real-time suggestions, with Teams integration scoring 5/5 for seamlessness.</p> </div> </div> <!-- Conclusion --> <div class="section"> <div class="section-header orange"> <span class="section-icon">🎯</span> <span class="section-title">Conclusion & Future Work</span> </div> <div class="section-body"> <ul class="mars-list"> <li>MARS successfully automates resume indexing, tiered question generation, and real-time interview assistance entirely within Microsoft Teams.</li> <li>The project provided hands-on experience with Azure cognitive services, the Microsoft Graph Calling API, and production-grade async Python development.</li> <li><strong style="color:var(--gold)">Future:</strong> Response caching for <1s repeat queries; ATS integration (Greenhouse/Workday); automated candidate scoring with bias testing; multi-language support (100+ via Azure Speech).</li> <li><strong style="color:var(--gold)">Future:</strong> Post-interview summary reports auto-generated and delivered to the interviewer; parallel web scraping to cut market question retrieval to ~20s.</li> </ul> </div> </div> </div> <!-- ═══ END RIGHT ═══ -->
convert this to latex code and fit it in a1 size and there should be no spaces and fill the content fully and keep in geometry
Use this as a standalone A1 LaTeX poster. It uses geometry with 594mm × 841mm, 0mm margins, and a dense 3-column layout so the page is filled fully.
Compile with XeLaTeX or LuaLaTeX.
latex\documentclass[final]{article} \usepackage[ paperwidth=594mm, paperheight=841mm, margin=0mm ]{geometry} \usepackage{fontspec} \usepackage{xcolor} \usepackage{tikz} \usepackage[most]{tcolorbox} \usepackage{graphicx} \usepackage{multicol} \usepackage{enumitem} \usepackage{array} \usepackage{tabularx} \usepackage{ragged2e} \usepackage{setspace} \usepackage{pagecolor} \usepackage{background} \usepackage{eso-pic} \setlength{\parindent}{0pt} \setlength{\parskip}{0pt} \pagestyle{empty} % ---------- Fonts ---------- \setmainfont{TeX Gyre Heros} \newfontfamily\titlefont{TeX Gyre Heros} \newfontfamily\condfont{TeX Gyre Heros} % ---------- Colors ---------- \definecolor{gold}{HTML}{F5C518} \definecolor{blue}{HTML}{0A84FF} \definecolor{teal}{HTML}{00C6B8} \definecolor{darkbg}{HTML}{080C14} \definecolor{panel}{HTML}{0E1420} \definecolor{card}{HTML}{121A28} \definecolor{borderc}{HTML}{1E2D45} \definecolor{textc}{HTML}{D8E6F5} \definecolor{muted}{HTML}{7A9BBF} \definecolor{accent}{HTML}{FF6B35} \definecolor{whitec}{HTML}{FFFFFF} \definecolor{purplec}{HTML}{967CFF} \pagecolor{darkbg} \color{textc} % ---------- Global spacing ---------- \linespread{1.03} \setlength{\columnsep}{8mm} % ---------- Section box ---------- \newtcolorbox{sectionbox}[2][]{ enhanced, colback=panel, colframe=borderc, boxrule=0.8mm, arc=3mm, left=4mm,right=4mm,top=3mm,bottom=3mm, before skip=0mm,after skip=0mm, title=#2, fonttitle=\bfseries\Large\condfont\color{whitec}, coltitle=whitec, attach boxed title to top left={xshift=0mm,yshift=0mm}, boxed title style={ colback=#1, colframe=#1, sharp corners, boxrule=0mm, left=4mm,right=4mm,top=2mm,bottom=2mm } } % ---------- Utility ---------- \newcommand{\hlg}[1]{{\color{gold}\bfseries #1}} \newcommand{\hlt}[1]{{\color{teal}\bfseries #1}} \newcommand{\hlb}[1]{{\color{blue}\bfseries #1}} \newcommand{\hla}[1]{{\color{accent}\bfseries #1}} \newcommand{\techtag}[2]{% \tcbox[ on line, colback=#1!14!black, colframe=#1!70!white, boxrule=0.4mm, arc=1.5mm, left=2mm,right=2mm,top=1mm,bottom=1mm, boxsep=0mm ]{\footnotesize\bfseries\ttfamily\color{#1!90!white}#2} } \newcommand{\flowstep}[3]{% \begin{tcolorbox}[ enhanced, colback=card, colframe=borderc, boxrule=0.5mm, arc=2mm, left=2mm,right=2mm,top=2mm,bottom=2mm ] {\color{#1}\bfseries\Large #2}\par \vspace{1mm} {\small #3} \end{tcolorbox} } \newcommand{\featurepill}[3]{% \begin{tcolorbox}[ enhanced, colback=card, colframe=borderc, boxrule=0.4mm, arc=2mm, left=2mm,right=2mm,top=2mm,bottom=2mm, width=\linewidth ] {\color{teal}\bfseries #2}\par \vspace{0.5mm} {\small #3} \end{tcolorbox} } \newcommand{\tierbox}[3]{% \begin{tcolorbox}[ enhanced, colback=card, colframe=borderc, boxrule=0.5mm, arc=2mm, left=2mm,right=2mm,top=2mm,bottom=2mm ] {\color{#1}\bfseries\large #2}\par \vspace{1mm} {\small #3} \end{tcolorbox} } \newcommand{\statbox}[3]{% \begin{tcolorbox}[ enhanced, colback=card, colframe=borderc, boxrule=0.5mm, arc=2mm, left=2mm,right=2mm,top=2mm,bottom=2mm, width=\linewidth, halign=center ] {\fontsize{28}{30}\selectfont\bfseries\color{#1} #2}\par \vspace{1mm} {\footnotesize\bfseries\color{muted} #3} \end{tcolorbox} } \begin{document} \thispagestyle{empty} % ---------- Background grid and glows ---------- \begin{tikzpicture}[remember picture,overlay] % grid \draw[step=10mm, color=blue!10!black, line width=0.15mm] (current page.south west) grid (current page.north east); % glow blobs \fill[blue, opacity=0.08] ([xshift=-20mm,yshift=10mm]current page.north east) circle [radius=70mm]; \fill[teal, opacity=0.06] ([xshift=20mm,yshift=60mm]current page.south west) circle [radius=65mm]; \fill[gold, opacity=0.05] ([xshift=-60mm,yshift=-180mm]current page.north east) circle [radius=55mm]; \end{tikzpicture} % ---------- Full-page container ---------- \begin{minipage}[t][841mm][t]{594mm} % ================= HEADER ================= \begin{tcolorbox}[ enhanced, width=\linewidth, height=92mm, colback=blue!10!black, colframe=gold, boxrule=1mm, arc=0mm, left=10mm,right=10mm,top=7mm,bottom=6mm ] \begin{minipage}[t][75mm][c]{0.16\linewidth} \centering \begin{tcolorbox}[ colback=white, colframe=gold, boxrule=0.8mm, arc=2mm, left=3mm,right=3mm,top=3mm,bottom=3mm, width=\linewidth ] {\fontsize{20}{22}\selectfont\bfseries\color{blue!60!black} NIRMA}\par {\fontsize{11}{12}\selectfont\bfseries\color{black} UNIVERSITY}\par \vspace{1mm} {\scriptsize\bfseries\color{red!75!black} INSTITUTE OF TECHNOLOGY}\par \vspace{1mm} \tcbox[colback=red!80!black,colframe=red!80!black,arc=1mm,boxrule=0mm,left=1.5mm,right=1.5mm,top=0.8mm,bottom=0.8mm]{\scriptsize\bfseries\color{white} NAAC ACCREDITED 'A' GRADE} \end{tcolorbox} \end{minipage} \hfill \begin{minipage}[t][75mm][c]{0.62\linewidth} \centering {\fontsize{36}{38}\selectfont\bfseries\color{whitec} \textcolor{gold}{MARS} --- MAQ Autonomous Recruitment System}\par \vspace{2mm} {\fontsize{14}{16}\selectfont\bfseries\color{teal} AI-POWERED INTERVIEW ASSISTANT \textbullet\ MICROSOFT TEAMS INTEGRATION}\par \vspace{4mm} {\large \textcolor{gold}{[Your Name]} \hspace{3mm}\textbullet\hspace{3mm} Roll No: [XXXX] \hspace{5mm}\textbar\hspace{5mm} Guided by: \textcolor{gold}{[Supervisor Name]}, MAQ Software \hspace{5mm}\textbar\hspace{5mm} Department of Computer Science \& Engineering \textbullet\ 2025--26} \end{minipage} \hfill \begin{minipage}[t][75mm][c]{0.16\linewidth} \centering \begin{tcolorbox}[ colback=white, colframe=gold, boxrule=0.8mm, arc=2mm, left=3mm,right=3mm,top=4mm,bottom=4mm, width=\linewidth ] {\fontsize{24}{24}\selectfont\bfseries\color{black} MAQ}\par {\small\bfseries\color{black} Software}\par \vspace{1mm} {\scriptsize\bfseries\color{blue} Microsoft Gold Partner} \end{tcolorbox} \end{minipage} \end{tcolorbox} \vspace{4mm} % ================= BODY ================= \begin{minipage}[t][690mm][t]{0.318\linewidth} % About the Company \begin{sectionbox}[gold!25!black]{🏢\hspace{2mm}About the Company} \small \justifying \hlg{MAQ Software} is a Microsoft-certified Gold Partner and analytics engineering firm headquartered in Redmond, Washington. It specialises in Business Intelligence, data engineering, and custom enterprise solutions for Fortune 500 clients. \vspace{2mm} The company is a leading contributor to the Power BI ecosystem with \hlt{30+ open-source custom visuals}, widely used across enterprise deployments worldwide. Teams communicate and collaborate through Microsoft Teams and Azure DevOps. \end{sectionbox} \vspace{3mm} % Abstract \begin{sectionbox}[blue!25!black]{📄\hspace{2mm}Abstract} \small \justifying The traditional recruitment pipeline involves significant manual effort: screening resumes, formulating interview questions, and dynamically adapting during live interviews. This project presents \hlg{MARS} --- an intelligent, end-to-end recruitment assistant integrated natively into \hlt{Microsoft Teams}. \vspace{2mm} MARS leverages \hlb{Azure OpenAI (GPT-4o)}, \hlb{FAISS vector indexing}, and \hlb{Azure Speech Services} to automate three recruitment phases: resume indexing, tiered question generation, and real-time live interview assistance --- all within the interviewer's existing workflow. \end{sectionbox} \vspace{3mm} % Methodology \begin{sectionbox}[teal!25!black]{⚙️\hspace{2mm}Methodology} \flowstep{blue}{1. Resume Ingestion \& Indexing}{Resumes (PDF/DOCX/TXT) from Azure Blob Storage are parsed, embedded via \texttt{text-embedding-ada-002}, and stored in a FAISS index for sub-millisecond semantic search.} \vspace{2mm} \centering{\Large\color{muted}$\downarrow$}\par \vspace{2mm} \flowstep{gold}{2. Tiered Question Generation}{On Teams command, GPT-4o generates 21 candidate-specific questions (7 per tier) in parallel with MCP web scraper fetching 50--100 market questions.} \vspace{2mm} \centering{\Large\color{muted}$\downarrow$}\par \vspace{2mm} \flowstep{teal}{3. Live Interview Assistance}{Bot joins Teams call, streams audio via Graph API, transcribes with Azure Speech (100--200 ms), and privately delivers follow-up suggestions to the interviewer in real time.} \end{sectionbox} \vspace{3mm} % Tech Stack \begin{sectionbox}[accent!25!black]{🛠️\hspace{2mm}Technology Stack} \small \techtag{blue}{Python 3.11}\hspace{1mm} \techtag{blue}{Azure OpenAI}\hspace{1mm} \techtag{blue}{GPT-4o}\hspace{1mm} \techtag{teal}{FAISS}\hspace{1mm} \techtag{teal}{Azure Speech}\hspace{1mm} \techtag{teal}{Whisper}\hspace{1mm} \techtag{gold}{Microsoft Graph API}\hspace{1mm} \techtag{gold}{Bot Framework SDK}\hspace{1mm} \techtag{accent}{aiohttp}\hspace{1mm} \techtag{accent}{WebSockets}\hspace{1mm} \techtag{purplec}{Azure Blob Storage}\hspace{1mm} \techtag{purplec}{PyPDF2 / python-docx}\hspace{1mm} \techtag{purplec}{SeleniumBase}\hspace{1mm} \techtag{blue}{text-embedding-ada-002} \end{sectionbox} \end{minipage} \hfill \begin{minipage}[t][690mm][t]{0.348\linewidth} % Architecture \begin{sectionbox}[blue!25!black]{🏗️\hspace{2mm}System Architecture} \centering \begin{tikzpicture}[x=1mm,y=1mm] \node[draw=gold,fill=gold!10!black,rounded corners=2mm,minimum width=36mm,minimum height=18mm,text=gold,align=center,font=\bfseries] (n1) at (22,0) {Interviewer\\\scriptsize Teams Chat Command}; \node[draw=blue,fill=blue!10!black,rounded corners=2mm,minimum width=36mm,minimum height=18mm,text=blue,align=center,font=\bfseries] (n2) at (72,0) {Teams Bot\\\scriptsize \texttt{bot\_server.py}}; \node[draw=purplec,fill=purplec!10!black,rounded corners=2mm,minimum width=36mm,minimum height=18mm,text=purplec!80!white,align=center,font=\bfseries] (n3) at (122,0) {FAISS Index\\\scriptsize \texttt{resume\_indexer.py}}; \node[draw=accent,fill=accent!10!black,rounded corners=2mm,minimum width=36mm,minimum height=18mm,text=accent,align=center,font=\bfseries] (n4) at (172,0) {GPT-4o\\\scriptsize Azure OpenAI}; \draw[->,line width=0.8mm,color=muted] (40,0)--(54,0); \draw[->,line width=0.8mm,color=muted] (90,0)--(104,0); \draw[->,line width=0.8mm,color=muted] (140,0)--(154,0); \node[draw=blue,fill=blue!8!black,rounded corners=2mm,minimum width=80mm,minimum height=12mm,text=blue!70!white,align=center,font=\bfseries] (s1) at (55,-28) {MS Graph Calling API \textbullet\ Join Teams Call}; \node[draw=teal,fill=teal!8!black,rounded corners=2mm,minimum width=80mm,minimum height=12mm,text=teal,align=center,font=\bfseries] (s2) at (55,-44) {Audio Stream \textrightarrow\ WebSocket \textrightarrow\ 16kHz PCM}; \node[draw=gold,fill=gold!8!black,rounded corners=2mm,minimum width=84mm,minimum height=12mm,text=gold,align=center,font=\bfseries] (s3) at (145,-28) {Azure Speech Services \textbullet\ 100--200 ms}; \node[draw=purplec,fill=purplec!8!black,rounded corners=2mm,minimum width=84mm,minimum height=12mm,text=purplec!80!white,align=center,font=\bfseries] (s4) at (145,-44) {Private Teams Chat \textrightarrow\ Live Suggestions}; \draw[->,line width=0.8mm,color=muted] (96,-36)--(104,-36); \end{tikzpicture} \end{sectionbox} \vspace{3mm} % Tiered Questions \begin{sectionbox}[gold!25!black]{❓\hspace{2mm}Tiered Question Generation} \tierbox{blue}{🌱 Introductory \hfill \footnotesize 7 questions \textbullet\ Foundational knowledge}{ \begin{itemize}[leftmargin=5mm,itemsep=1mm,topsep=0mm] \item What is the difference between \hlb{var}, \hlb{let}, and \hlb{const} in JavaScript? \item Explain Python's \hlb{Global Interpreter Lock (GIL)} and its practical implications. \item What are React hooks and why were they introduced? \end{itemize} } \vspace{2mm} \tierbox{gold}{🔧 Intermediate \hfill \footnotesize 7 questions \textbullet\ Practical application}{ \begin{itemize}[leftmargin=5mm,itemsep=1mm,topsep=0mm] \item How did you implement \hlg{microservices architecture} in your project and what challenges did you face? \item Describe a difficult bug you resolved in \hlg{React state management}. \item Walk me through the CI/CD pipeline you set up. \end{itemize} } \vspace{2mm} \tierbox{accent}{🚀 Advanced \hfill \footnotesize 7 questions \textbullet\ System design \& architecture}{ \begin{itemize}[leftmargin=5mm,itemsep=1mm,topsep=0mm] \item Design a \hla{globally distributed system} for real-time data synchronisation across regions. \item What are the architectural trade-offs between \hla{monolithic vs microservices}? \item How would you optimise a database with \hla{100M+ records}? \end{itemize} } \end{sectionbox} \vspace{3mm} % Features \begin{sectionbox}[teal!25!black]{✨\hspace{2mm}Key Features} \begin{minipage}[t]{0.49\linewidth} \featurepill{teal}{Semantic Search}{FAISS vector similarity search across all indexed resumes with sub-millisecond lookup.} \vspace{2mm} \featurepill{teal}{3-Tier Questions}{Introductory $\rightarrow$ Intermediate $\rightarrow$ Advanced difficulty with 7 questions per tier.} \vspace{2mm} \featurepill{teal}{Market Questions}{Web-scraped from GeeksforGeeks and InterviewBit delivering 50--100 additional questions.} \end{minipage} \hfill \begin{minipage}[t]{0.49\linewidth} \featurepill{teal}{Live Transcription}{Azure Speech Services with 100--200 ms latency or Whisper for 97--99\% accuracy.} \vspace{2mm} \featurepill{teal}{Private Suggestions}{Real-time follow-up questions delivered privately to interviewer mid-call.} \vspace{2mm} \featurepill{teal}{Parallel Processing}{AI questions and web scraping run concurrently via asyncio for speed.} \end{minipage} \end{sectionbox} \end{minipage} \hfill \begin{minipage}[t][690mm][t]{0.318\linewidth} % Results \begin{sectionbox}[teal!25!black]{📊\hspace{2mm}Results --- Time Savings} \small \renewcommand{\arraystretch}{1.45} \begin{tabularx}{\linewidth}{|>{\raggedleft\arraybackslash}p{0.27\linewidth}|>{\centering\arraybackslash}p{0.26\linewidth}|>{\raggedright\arraybackslash}p{0.27\linewidth}|} \hline \rowcolor{card}\color{muted}\bfseries Manual & \color{gold}\bfseries VS & \color{teal}\bfseries MARS\\ \hline 30--45 min & Question Prep & \color{teal}\bfseries $\sim$60 s\\ \hline Manual & Resume Search & \color{teal}\bfseries $<1$ ms\\ \hline 15--25 Q's & Total Questions & \color{teal}\bfseries 65--120 Q's\\ \hline None & Live Suggestions & \color{teal}\bfseries 200--400 ms\\ \hline Manual notes & Transcription & \color{teal}\bfseries Auto \textbullet\ 93\%+\\ \hline Inconsistent & Coverage & \color{teal}\bfseries 3-tier full\\ \hline \end{tabularx} \end{sectionbox} \vspace{3mm} % Performance \begin{sectionbox}[gold!25!black]{⚡\hspace{2mm}Performance Metrics} \begin{minipage}[t]{0.49\linewidth} \statbox{gold}{$\sim$60 s}{FIRST QUERY END-TO-END} \vspace{2mm} \statbox{blue}{200 ms}{SPEECH TRANSCRIPTION} \end{minipage} \hfill \begin{minipage}[t]{0.49\linewidth} \statbox{teal}{$<1$ ms}{FAISS CANDIDATE LOOKUP} \vspace{2mm} \statbox{accent}{120}{MAX QUESTIONS / CANDIDATE} \end{minipage} \vspace{3mm} \small \renewcommand{\arraystretch}{1.35} \begin{tabularx}{\linewidth}{>{\raggedright\arraybackslash}X >{\raggedright\arraybackslash}p{0.28\linewidth}} \rowcolor{card}\color{gold}\bfseries Operation & \color{gold}\bfseries Time\\ Index 1 resume & \color{teal}\bfseries $\sim$10 s\\ Semantic search & \color{teal}\bfseries $\sim$500 ms\\ AI question generation (3 tiers) & \color{teal}\bfseries $\sim$20--30 s\\ Market web scraping & \color{teal}\bfseries $\sim$30--60 s\\ Live suggestion delivery & \color{teal}\bfseries 200--400 ms\\ \end{tabularx} \end{sectionbox} \vspace{3mm} % Discussion \begin{sectionbox}[blue!25!black]{💡\hspace{2mm}Discussion} \small \justifying MARS demonstrated that a fully AI-powered interview assistant can be built natively within the Microsoft ecosystem without disrupting the interviewer's existing workflow. The \hlg{3-tier question structure} mirrors the natural progression of technical interviews and received strong positive feedback from recruitment team members during user acceptance testing. \vspace{2mm} Key challenges addressed: the \hlt{Graph Calling API} requires a public HTTPS endpoint (resolved via Azure App Service deployment); Whisper's 1--3 s latency was unsuitable for real-time assistance, making Azure Speech the preferred engine; and FAISS name-matching required fuzzy-string fallback for query tolerance. \vspace{2mm} UAT with 2 interviewers confirmed \hlg{4.5/5 satisfaction} for question quality and real-time suggestions, with Teams integration scoring 5/5 for seamlessness. \end{sectionbox} \vspace{3mm} % Conclusion \begin{sectionbox}[accent!25!black]{🎯\hspace{2mm}Conclusion \& Future Work} \small \begin{itemize}[leftmargin=6mm,itemsep=1.5mm,topsep=1mm] \item MARS successfully automates resume indexing, tiered question generation, and real-time interview assistance entirely within Microsoft Teams. \item The project provided hands-on experience with Azure cognitive services, the Microsoft Graph Calling API, and production-grade async Python development. \item \textcolor{gold}{\bfseries Future:} Response caching for $<1$ s repeat queries; ATS integration (Greenhouse/Workday); automated candidate scoring with bias testing; multi-language support (100+ via Azure Speech). \item \textcolor{gold}{\bfseries Future:} Post-interview summary reports auto-generated and delivered to the interviewer; parallel web scraping to cut market question retrieval to $\sim$20 s. \end{itemize} \end{sectionbox} \end{minipage} \vfill % ================= FOOTER ================= \begin{tcolorbox}[ enhanced, width=\linewidth, height=50mm, colback=blue!10!black, colframe=gold, boxrule=0.8mm, arc=0mm, left=10mm,right=10mm,top=5mm,bottom=5mm ] \begin{minipage}[t]{0.33\linewidth} \small \textcolor{whitec}{\bfseries [Your Name]} \textbullet\ [Roll No] \textbullet\ Dept. of Computer Science \& Engineering\\ Nirma University, Ahmedabad \textbullet\ Academic Year 2025--26 \end{minipage} \hfill \begin{minipage}[t]{0.33\linewidth} \centering {\bfseries\large MARS --- MAQ Autonomous Recruitment System}\\ {\small\color{gold} Internship Project \textbullet\ MAQ Software} \end{minipage} \hfill \begin{minipage}[t]{0.28\linewidth} \raggedleft \small Guided by: [Supervisor Name]\\ MAQ Software \textbullet\ Microsoft Gold Partner \end{minipage} \end{tcolorbox} \end{minipage} \end{document}
A few notes:
geometry.[Your Name], [XXXX], and [Supervisor Name].tikzposter or a strict Nirma University academic poster style.