Summary
The Arachnode roadmap lists resume parsing as a planned and partially built feature (resume_parser.py exists in email-generator-service/). However, the dashboard UI has no interface for uploading a resume, and the gateway's /api/generate endpoint does not appear to expose resume context as a first-class parameter for email personalization. The infrastructure exists — it just needs to be wired up end-to-end.
Problem
email-generator-service/resume_parser.py and RESUME_PARSER_EXAMPLES.md confirm parsing logic exists, but there is no upload interface in dashboard.html.
- The
/api/generate endpoint accepts candidate_skills, candidate_role, and candidate_experience as optional body parameters, but these must be typed manually — there is no mechanism to auto-populate them from a parsed resume.
- Cold emails generated without resume context are generic and less likely to receive responses — the core value proposition of the email generator is undermined.
- The roadmap explicitly calls this out: "Add resume parsing module adapting outbound email drafting according to distinct required keywords mapped off CV text profiles." — this is a maintainer-endorsed feature.
Impact
- Without resume integration, every generated email requires manual skill/experience input, which defeats the automation purpose.
- Outreach quality is directly proportional to how well the email reflects the candidate's actual background.
- The existing
resume_parser.py code goes largely unused in the actual user flow.
Proposed Solution
1. Add resume upload form to dashboard.html:
<div id="resume-upload-panel" class="panel">
<h3>Upload Resume</h3>
<input type="file" id="resume-file" accept=".pdf,.txt" />
<button id="parse-resume-btn">Parse & Save</button>
<div id="parsed-resume-preview"></div>
</div>
2. Add /api/resume/parse endpoint in the gateway:
@app.post("/api/resume/parse")
async def parse_resume(file: UploadFile = File(...)):
content = await file.read()
parsed = resume_parser.parse(content, file.content_type)
# Store parsed context in session or DB for use by /api/generate
return {"skills": parsed.skills, "experience": parsed.experience, "role": parsed.target_role}
3. Auto-populate /api/generate from stored resume context:
// In dashboard.html JS
async function generateWithResume(jobId, contactId) {
const resumeCtx = JSON.parse(sessionStorage.getItem('parsed_resume') || '{}');
const response = await fetch('/api/generate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
job_id: jobId,
contact_id: contactId,
template: 'cold_outreach',
candidate_skills: resumeCtx.skills,
candidate_role: resumeCtx.role,
candidate_experience: resumeCtx.experience
})
});
}
Additional Notes
- I will update the
email-generator-service to accept resume context from the gateway rather than requiring it to be embedded in each request.
- The parsed resume will be stored in
sessionStorage on the frontend for the current browser session.
- I will add a "Resume Loaded" indicator in the dashboard showing which resume is currently active.
I'd love to be assigned this issue and implement it completely.
Labels: enhancement, feature, roadmap, help wanted, GSSoC 2026
Summary
The Arachnode roadmap lists resume parsing as a planned and partially built feature (
resume_parser.pyexists inemail-generator-service/). However, the dashboard UI has no interface for uploading a resume, and the gateway's/api/generateendpoint does not appear to expose resume context as a first-class parameter for email personalization. The infrastructure exists — it just needs to be wired up end-to-end.Problem
email-generator-service/resume_parser.pyandRESUME_PARSER_EXAMPLES.mdconfirm parsing logic exists, but there is no upload interface indashboard.html./api/generateendpoint acceptscandidate_skills,candidate_role, andcandidate_experienceas optional body parameters, but these must be typed manually — there is no mechanism to auto-populate them from a parsed resume.Impact
resume_parser.pycode goes largely unused in the actual user flow.Proposed Solution
1. Add resume upload form to
dashboard.html:2. Add
/api/resume/parseendpoint in the gateway:3. Auto-populate
/api/generatefrom stored resume context:Additional Notes
email-generator-serviceto accept resume context from the gateway rather than requiring it to be embedded in each request.sessionStorageon the frontend for the current browser session.I'd love to be assigned this issue and implement it completely.
Labels:
enhancement,feature,roadmap,help wanted,GSSoC 2026