From d37d47080ee9a8ed7d62574e714b18a944b018c3 Mon Sep 17 00:00:00 2001 From: Kyle Belanger Date: Fri, 14 Feb 2025 08:58:00 -0500 Subject: [PATCH] update generate.js add section to download cover letter --- routes/generate.js | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/routes/generate.js b/routes/generate.js index 640ca3c..06dc51e 100644 --- a/routes/generate.js +++ b/routes/generate.js @@ -43,7 +43,7 @@ router.post('/', upload.single('resume'), async (req, res) =>{ // Send resume to LLM const resumeResponse = await anthropic.messages.create(resume_parser_api); - const candiateProfile = resumeResponse.content[0].text.split('```json')[1].split('```')[0].trim(); + const candidateProfile = resumeResponse.content[0].text.split('```json')[1].split('```')[0].trim(); // Replace variables in cover letter API prompt cover_letter_api.messages[0].content[0].text = cover_letter_api.messages[0].content[0].text @@ -60,4 +60,37 @@ router.post('/', upload.single('resume'), async (req, res) =>{ console.error(error); res.status(500).json({ error: 'Error generating cover letter' }); } -}); \ No newline at end of file +}); + +router.post('/download', async (req, res) => { + try { + const { coverLetterText } = res.body; + + const outputFilename = path.join(__dirname, '../uploads/cover_letter.docx'); + generateCoverLetter(coverLetterText, outputFilename); + + res.json({downloadLink: '/uploads/cover_letter.docx'}); + } catch (error) { + console.error(error); + res.status(500).json({ error: 'Error generating document' }); + } +}); + +function generateCoverLetter(rawText, outputFilename) { + const doc = new Document({ + sections: [ + { + children: [new Paragraph({ children: [new TextRun(rawText)] })], + }, + ], + }); + + Packer.toBuffer(doc).then((buffer) => { + fs.writeFileSync(outputFilename, buffer); + console.log(`Cover letter saved to ${outputFilename}`); + }).catch(error => console.error("Error generating document:", error)); +} + + + +module.exports = router; \ No newline at end of file