generate_enhanced_cv
Enhance your CV by integrating recent work data from git commits, Jira tickets, and certifications with your existing resume content.
Instructions
Generate an enhanced CV by combining existing CV content with data from all sources
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| existingCvPath | Yes | Path to existing CV (PDF or LaTeX) | |
| since | No | Time range for fetching recent work | 6 months ago |
Implementation Reference
- The handler function that executes the generate_enhanced_cv tool. It parses the existing CV (PDF or LaTeX), gathers recent data from git logs, wins.md, Jira tickets, Credly badges, LinkedIn config, and compiles a comprehensive report with guidelines for enhancing the CV.async def generate_enhanced_cv(existing_cv_path: Optional[str], since: str) -> list[TextContent]: """Generate enhanced CV combining all data sources.""" if not existing_cv_path: return [TextContent(type="text", text="Error: existingCvPath parameter is required")] # Resolve path if existing_cv_path.startswith('/'): resolved_path = Path(existing_cv_path) else: resolved_path = Path(REPO_PATH) / existing_cv_path if not resolved_path.exists(): return [TextContent(type="text", text=f"CV file not found: {resolved_path}")] try: # Step 1: Parse existing CV if resolved_path.suffix.lower() == '.pdf': reader = pypdf.PdfReader(str(resolved_path)) existing_content = "" for page in reader.pages: existing_content += page.extract_text() + "\n" else: existing_content = resolved_path.read_text() # Step 2: Gather all data sources data_sections = [] # Git commits git_result = await get_git_log(since) data_sections.append(f"\n## Git Commits ({since}):\n{git_result[0].text}") # Wins wins_result = await read_wins() data_sections.append(f"\n## Achievements (wins.md):\n{wins_result[0].text}") # Jira tickets if all([JIRA_URL, JIRA_EMAIL, JIRA_API_TOKEN]): jira_result = await get_jira_tickets(since, "Done") data_sections.append(f"\n{jira_result[0].text}") else: data_sections.append("\n## Jira Tickets: Not configured") # Credly badges if CREDLY_USER_ID: credly_result = await get_credly_badges(50) data_sections.append(f"\n{credly_result[0].text}") else: data_sections.append("\n## Credly Badges: Not configured") # LinkedIn if LINKEDIN_PROFILE_URL: data_sections.append(f"\n## LinkedIn Profile: {LINKEDIN_PROFILE_URL}\n(Manual review recommended)") # Step 3: Compile report truncated_cv = existing_content[:2000] if len(existing_content) > 2000: truncated_cv += "\n... (truncated, full content available)" report = f"""# Enhanced CV Generation Report ## Existing CV Content: {truncated_cv} ## Recent Work & Achievements ({since}): {''.join(data_sections)} --- ## CV Guidelines: - Maximum {MAX_BULLETS_PER_EXPERIENCE} bullet points per experience - Focus on quantifiable impact and results - Use action verbs (Engineered, Designed, Implemented, Led, etc.) - Include metrics (percentages, time savings, scale) ## Next Steps: 1. Review the existing CV content above 2. Analyze the recent work data (git commits, Jira tickets, badges) 3. Identify the top {MAX_BULLETS_PER_EXPERIENCE} most impactful achievements 4. Generate enhanced CV bullet points in LaTeX format 5. Ensure each bullet demonstrates clear business value ## Suggested Approach: Ask the AI to: "Based on the above data, generate {MAX_BULLETS_PER_EXPERIENCE} enhanced CV bullet points in LaTeX format that highlight my most significant recent achievements with quantifiable results." """ return [TextContent(type="text", text=report)] except Exception as e: return [TextContent(type="text", text=f"Enhanced CV generation error: {str(e)}")]
- src/cv_resume_builder_mcp/server.py:282-300 (registration)Registers the generate_enhanced_cv tool in the MCP server's list_tools() function, including name, description, and input schema.Tool( name="generate_enhanced_cv", description="Generate an enhanced CV by combining existing CV content with data from all sources", inputSchema={ "type": "object", "properties": { "existingCvPath": { "type": "string", "description": "Path to existing CV (PDF or LaTeX)" }, "since": { "type": "string", "description": "Time range for fetching recent work", "default": "6 months ago" } }, "required": ["existingCvPath"] } )
- Input schema definition for the generate_enhanced_cv tool, specifying required existingCvPath and optional since parameter.inputSchema={ "type": "object", "properties": { "existingCvPath": { "type": "string", "description": "Path to existing CV (PDF or LaTeX)" }, "since": { "type": "string", "description": "Time range for fetching recent work", "default": "6 months ago" } }, "required": ["existingCvPath"] }