1. What we use AI for
Resume Portfolio uses OpenAI’s API (currently the gpt-4o family) for a small set of focused tasks:
- Resume extraction — turning an uploaded PDF/DOCX/TXT or pasted text into structured fields (name, headline, experience, education, skills, etc.).
- Job posting import — reading a LinkedIn or pasted job description and extracting role title, company, requirements, and keywords.
- Role research — suggesting role-specific skills, themes, and KPIs to consider when targeting a position.
- Cover letter drafting — producing a first-pass cover letter based on your resume and the target role.
- Resume / plan optimization — comparing your resume against the target role and suggesting rewrites for the headline, summary, experience bullets, role summaries, cover letter paragraphs, and 90-day / 12-month / 2-year plan phases.
- Interview prep — generating practice behavioral, technical, and “questions to ask the employer” lists for the target role.
That’s the entire list. We do not use AI to make hiring decisions, score you as a candidate, or judge your suitability for any job.
2. What data is sent to OpenAI
Only the data needed for the task you triggered is sent. Nothing is sent in the background, on page load, or while you’re just typing.
- For extraction: the raw text we pulled from your uploaded file (or the text you pasted) plus a short instruction telling the model to return JSON.
- For optimization: the structured resume fields you see on screen (headline, summary, skills, experience bullets, education, plus your cover letter and plan if you generated them) and the target role details (title, company, description, keywords).
- For interview prep / role research: the target role title, company, and a compact summary of your background.
We do not send: your password, payment information, billing data, IP address, browsing history outside this app, or any data from other tabs/sites. We do not send your account email or Firebase user ID to OpenAI — only the resume and role content itself.
Important: avoid putting highly sensitive personal data (Social Security numbers, full date of birth, financial account numbers, government IDs, medical details) into your resume or pasted text. Anything in those fields will be sent to the AI provider as part of the request.
3. What we get back
Every AI request is constrained to return structured JSON, not free-form text, so we can validate it before showing it to you. Typical responses include:
- Extraction: a normalized resume object (name, headline, sections, experience array, etc.).
- Optimization:
- A
matchScore with an overall 0–100 number, label (e.g. “Strong Match”), and explanation.
- A
baselineScore (your resume as-is) and a projectedScore (estimated score after suggested changes).
- A
scoreGate object that tells the app whether the changes would improve, maintain, or hurt the match.
- A
suggestions object with rewrite candidates for the resume, cover letter, and plan. Each rewrite carries the original text, the suggested text, a short reason, and a safeToApply flag.
- Optional
resumeInsights, atsCheck, and interview_prep data.
4. How “Apply Safe Updates” decides what to apply
When you click Apply Safe Updates, the app does not blindly accept everything the AI suggested. Each suggested change is checked against three rules first:
- Score gate — if the AI’s own
scoreGate.status is rejected (i.e. the changes would lower your match score), nothing is applied. You’ll see a banner explaining why.
- Per-item safety flag — the AI marks each suggestion with
safeToApply. Items flagged false are skipped.
- Placeholder check — the app scans every suggestion for placeholder tokens like
[insert measurable result], [X%], [$X], or [N-person team]. If any are found, that item is shown with a Review only badge and is not applied automatically — you decide whether to fill in the real number and apply it manually.
Items that pass all three checks get the Will apply / Applied badge in the Optimize results view, so you can see exactly what changed before and after you click apply.
The Skills to add section is intentionally review only. We never auto-merge skills into your profile because you’re the only one who knows whether a suggested skill is actually accurate for you.
5. Snapshots, undo, and your control
Before applying any AI suggestions, the app saves a snapshot of your resume, cover letter, and plan. You can:
- Click Undo at any time to roll back to the snapshot.
- Edit any field manually after applying — nothing is locked.
- Re-run optimization as many times as you want.
- Skip optimization entirely and use the builder as a regular resume editor.
6. Server-side timeouts and error handling
AI calls are made from our backend server, not directly from your browser, so your API key and request shape are never exposed. Each call has a hard timeout (about 60 seconds) and the server returns a clear error to the app if the model is slow or returns malformed output. When that happens, your existing data is left untouched.
7. Training and retention
We use OpenAI’s API (not ChatGPT). Per OpenAI’s API policy, content sent through the API is not used to train OpenAI’s models by default. OpenAI may retain API request data for a limited period for abuse monitoring and legal compliance. See OpenAI’s privacy policy for details.
On our side, we store the results of optimization (your suggestions, scores, applied changes) alongside your resume version in Firestore so you can come back to them later. We do not log or store the raw prompt text after the response is returned.
8. AI is a draft, not the final word
Every AI suggestion is a starting point. Match scores are estimates, not a guarantee of being interviewed or hired. Always read the rewrites for accuracy, factual correctness, and your own voice before applying them or sending the final document.
9. Questions
If you have questions about how AI is used in this app, contact: stevenk@careersolutionsfortoday.com.