Compare commits
2 commits
d8967f29f0
...
641f70b68c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
641f70b68c | ||
|
|
62b8af2ab8 |
3 changed files with 38 additions and 7 deletions
|
|
@ -24,7 +24,8 @@ import type {
|
||||||
ScoreResponse,
|
ScoreResponse,
|
||||||
TailorCvResponse,
|
TailorCvResponse,
|
||||||
TaskRun,
|
TaskRun,
|
||||||
TodayResponse
|
TodayResponse,
|
||||||
|
TodayResponseV11
|
||||||
} from '@/types'
|
} from '@/types'
|
||||||
|
|
||||||
const API_BASE: string =
|
const API_BASE: string =
|
||||||
|
|
@ -204,8 +205,8 @@ export function batchScore(applicationIds: string[]): Promise<BatchScoringRespon
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getToday(): Promise<TodayResponse> {
|
export function getToday(): Promise<TodayResponseV11> {
|
||||||
return request<TodayResponse>('/today')
|
return request<TodayResponseV11>('/today')
|
||||||
}
|
}
|
||||||
|
|
||||||
export function interviewPrep(applicationId: string): Promise<InterviewPrepResponse> {
|
export function interviewPrep(applicationId: string): Promise<InterviewPrepResponse> {
|
||||||
|
|
@ -270,5 +271,6 @@ export type {
|
||||||
ScoreResponse,
|
ScoreResponse,
|
||||||
TailorCvResponse,
|
TailorCvResponse,
|
||||||
TaskRun,
|
TaskRun,
|
||||||
TodayResponse
|
TodayResponse,
|
||||||
|
TodayResponseV11
|
||||||
}
|
}
|
||||||
|
|
@ -4,12 +4,12 @@ import { useRouter } from 'vue-router'
|
||||||
import { useToastStore } from '@/stores/toast'
|
import { useToastStore } from '@/stores/toast'
|
||||||
import * as api from '@/api'
|
import * as api from '@/api'
|
||||||
import CostDisplay from '@/components/CostDisplay.vue'
|
import CostDisplay from '@/components/CostDisplay.vue'
|
||||||
import type { TodayResponse, TodayDeadline, EmailSuggestion, NotificationLogEntry, SuggestionClassification } from '@/types'
|
import type { TodayResponseV11, TodayDeadline, EmailSuggestion, NotificationLogEntry, SuggestionClassification } from '@/types'
|
||||||
|
|
||||||
const toast = useToastStore()
|
const toast = useToastStore()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
|
|
||||||
const today = ref<(TodayResponse & { deadlines?: TodayDeadline[] }) | null>(null)
|
const today = ref<TodayResponseV11 | null>(null)
|
||||||
const loading = ref(true)
|
const loading = ref(true)
|
||||||
const deadlines = ref<TodayDeadline[]>([])
|
const deadlines = ref<TodayDeadline[]>([])
|
||||||
const suggestions = ref<EmailSuggestion[]>([])
|
const suggestions = ref<EmailSuggestion[]>([])
|
||||||
|
|
|
||||||
|
|
@ -116,4 +116,33 @@ This transparency helps you make informed decisions about when to use AI feature
|
||||||
- Run without API keys first to explore the platform with mock data. Use `POST /concierge/seed-demo` (via curl or the API) to populate demo data instantly.
|
- Run without API keys first to explore the platform with mock data. Use `POST /concierge/seed-demo` (via curl or the API) to populate demo data instantly.
|
||||||
- Check the Today page daily for new nudges and digest items.
|
- Check the Today page daily for new nudges and digest items.
|
||||||
- Always review AI-generated content before sending. The system assists you, but you are the decision maker.
|
- Always review AI-generated content before sending. The system assists you, but you are the decision maker.
|
||||||
- Use the scam/red-flag indicators to avoid suspicious postings.
|
- Use the scam/red-flag indicators to avoid suspicious postings.
|
||||||
|
|
||||||
|
## v1.1: email radar, dedupe, tailor CV
|
||||||
|
|
||||||
|
Three new features help you move faster without missing anything.
|
||||||
|
|
||||||
|
### Email radar on the Today page
|
||||||
|
|
||||||
|
The Today page now has two extra strips above the digest:
|
||||||
|
|
||||||
|
- **Deadlines This Week** shows upcoming application deadlines as cards. Cards turn red when the deadline is within two days. Click a card to jump to the application.
|
||||||
|
- **Inbox Insights** lists classified email suggestions (interview invite, rejection, question, noise) pulled from your inbox monitoring. Each card has Accept and Dismiss buttons. Accepted suggestions stay on file; dismissed ones disappear. A **Recent Notifications** mini-log at the bottom shows the last five system events so you can see what happened recently.
|
||||||
|
|
||||||
|
### Dedupe in Research
|
||||||
|
|
||||||
|
The Research table now groups duplicate postings by cluster. When the same role appears through multiple agencies or sources, the cluster header shows "also via N more." Click the header to expand the alternates list and see all sources side by side with their scores. This saves you from applying to the same job three times.
|
||||||
|
|
||||||
|
### Tailor CV
|
||||||
|
|
||||||
|
On any application detail page, click **Tailor My CV** to generate a CV variant tuned to that specific posting. The panel shows:
|
||||||
|
|
||||||
|
- A keyword coverage bar indicating how well your CV matches the posting description.
|
||||||
|
- A change log listing every modification (reordered sections, rephrased bullets). No facts are invented; only rephrased and reordered.
|
||||||
|
- A download link for the tailored CV as a PDF.
|
||||||
|
|
||||||
|
The tailored CV appears in the artifacts list for that application, ready to use in the approval and send flow.
|
||||||
|
|
||||||
|
### Cost breakdown by provider
|
||||||
|
|
||||||
|
The Cost Summary on the Today page now includes a per-model breakdown table showing tokens in, tokens out, cost, and run count for each LLM model used. This helps you compare spending across providers at a glance.
|
||||||
Loading…
Reference in a new issue