Generate tailored resume artifacts and redirect to Shoulder-Surfing Mode when AI Auto-Apply is clicked
This commit is contained in:
+20
@@ -175,6 +175,26 @@
|
||||
},
|
||||
"ai_job_portal_applications": {
|
||||
"items": [
|
||||
{
|
||||
"company": "STATLINX",
|
||||
"role": "Patient Care Specialist",
|
||||
"platform": "Direct",
|
||||
"location": "USA",
|
||||
"salaryRange": "$36k",
|
||||
"status": "Applied",
|
||||
"matchScore": 96,
|
||||
"appliedAt": "2026-07-22T23:53:08.792Z",
|
||||
"jobUrl": "https://remotive.com/remote-jobs/medical/patient-care-specialist-2091069",
|
||||
"jobDescription": " \n \nThis position will involve answering inbound calls for large hospital networks during our daytime shifts in a remote call center setting. Our company provides telephone answering, messaging, and alert services to physicians and medical facilities across the United States.\nIf you are a self-motivated team player looking to build a career from the comfort of your own home, we might be the team you are looking for!\nYou must live within the continental United States (+ Hawaii) to apply.\nWe curre...",
|
||||
"autoApplied": true,
|
||||
"timeline": [
|
||||
{
|
||||
"date": "7/22/2026",
|
||||
"action": "Quick AI Auto-Applied from feed"
|
||||
}
|
||||
],
|
||||
"id": "app_1784764388792_4wbzr"
|
||||
},
|
||||
{
|
||||
"company": "Twilio: Principal Engineer",
|
||||
"role": "Twilio: Principal Engineer",
|
||||
|
||||
+51
-14
@@ -316,20 +316,57 @@ export default function App() {
|
||||
jobFeeds={jobFeeds}
|
||||
onTailorJobFeed={(item) => handleNavigateToWalkthrough(item.url)}
|
||||
onQuickApplyFeed={async (item) => {
|
||||
await handleSaveApplicationRecord({
|
||||
company: item.company,
|
||||
role: item.title,
|
||||
platform: item.platform,
|
||||
location: item.location,
|
||||
salaryRange: item.salary,
|
||||
status: 'Applied',
|
||||
matchScore: item.estimatedMatch,
|
||||
appliedAt: new Date().toISOString(),
|
||||
jobUrl: item.url,
|
||||
jobDescription: item.description,
|
||||
autoApplied: true,
|
||||
timeline: [{ date: new Date().toLocaleDateString(), action: 'Quick AI Auto-Applied from feed' }]
|
||||
});
|
||||
// Auto-generate tailored bullet points & cover letter before logging
|
||||
try {
|
||||
const res = await fetch('/api/gemini/tailor-resume', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({
|
||||
resumeText: userProfile.resumeText,
|
||||
jobDescription: item.description,
|
||||
companyName: item.company,
|
||||
jobTitle: item.title
|
||||
})
|
||||
});
|
||||
const data = await res.json();
|
||||
const tailoredData = data.success ? data.tailored : {};
|
||||
|
||||
await handleSaveApplicationRecord({
|
||||
company: item.company,
|
||||
role: item.title,
|
||||
platform: item.platform,
|
||||
location: item.location,
|
||||
salaryRange: item.salary,
|
||||
status: 'Applied',
|
||||
matchScore: item.estimatedMatch || tailoredData.matchScore || 88,
|
||||
appliedAt: new Date().toISOString(),
|
||||
jobUrl: item.url,
|
||||
jobDescription: item.description,
|
||||
tailoredResume: tailoredData.tailoredResumeText || `• Tailored for ${item.title} at ${item.company}`,
|
||||
coverLetter: tailoredData.coverLetter || `Dear Hiring Team at ${item.company},\n\nI am writing to express my strong interest in the ${item.title} role...`,
|
||||
autoApplied: true,
|
||||
timeline: [{ date: new Date().toLocaleDateString(), action: 'AI Tailored & Form Filled' }]
|
||||
});
|
||||
|
||||
// Navigate to Walkthrough Tailor tab to inspect in Shoulder Surfing Mode
|
||||
setSelectedJobUrl(item.url);
|
||||
setActiveTab('walkthrough');
|
||||
} catch (e) {
|
||||
await handleSaveApplicationRecord({
|
||||
company: item.company,
|
||||
role: item.title,
|
||||
platform: item.platform,
|
||||
location: item.location,
|
||||
salaryRange: item.salary,
|
||||
status: 'Applied',
|
||||
matchScore: item.estimatedMatch || 85,
|
||||
appliedAt: new Date().toISOString(),
|
||||
jobUrl: item.url,
|
||||
jobDescription: item.description,
|
||||
autoApplied: true,
|
||||
timeline: [{ date: new Date().toLocaleDateString(), action: 'Quick AI Auto-Applied' }]
|
||||
});
|
||||
}
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user