Compare commits

...

2 commits

Author SHA1 Message Date
Kyle Belanger
d37d47080e update generate.js
add section to download cover letter
2025-02-14 08:58:00 -05:00
Kyle Belanger
a67aae3796 update gitignore 2025-02-14 08:49:22 -05:00
2 changed files with 42 additions and 4 deletions

9
.gitignore vendored
View file

@ -136,6 +136,11 @@ dist
# Don't save environmental variables
.env
# Don't save job description generate the file on each computer
# Don't save job description generate the file on each computer this was just used as an example
job_description.txt
# Don't commit the uploads folder it is temporary
uploads/

View file

@ -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' });
}
});
});
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;