Skip to content

Commit bc21b6f

Browse files
committed
feat: gpt-reword-desc
1 parent 2dd0d0c commit bc21b6f

File tree

4 files changed

+47
-2
lines changed

4 files changed

+47
-2
lines changed

.env.example

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
OPENAI_API_KEY=''

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22
.venv
33
.pytest_cache/
44
__pycache__
5-
.vscode
5+
.vscode
6+
.env

app.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22
Flask Application
33
"""
44

5+
import openai
6+
7+
from dotenv import load_dotenv
8+
import os
9+
10+
load_dotenv()
11+
openai.api_key = os.getenv("OPENAI_API_KEY")
12+
513
from dataclasses import asdict
614

715
from flask import Flask, jsonify, request
@@ -216,3 +224,36 @@ def get_skill(skill_id):
216224
return jsonify({"error": "Skill not found"}), 404
217225
except TypeError as e:
218226
return jsonify({"error": str(e)}), 400
227+
228+
229+
@app.route("/resume/suggest-description", methods=["POST"])
230+
def suggest_description():
231+
"""
232+
Uses OpenAI API to suggest improvements for a description field.
233+
Expects JSON: { "type": "experience"|"education", "description": "..." }
234+
"""
235+
data_in = request.get_json()
236+
desc = data_in.get("description", "")
237+
section_type = data_in.get("type", "experience")
238+
239+
if not desc:
240+
return jsonify({"error": "Description is required"}), 400
241+
242+
prompt = (
243+
f"Suggest a more professional and concise version of this {section_type} description:\n{desc}"
244+
)
245+
246+
try:
247+
client = openai.OpenAI()
248+
response = client.chat.completions.create(
249+
model="gpt-3.5-turbo",
250+
messages=[
251+
{"role": "system", "content": "You are a helpful assistant for resume writing"},
252+
{"role": "user", "content": prompt},
253+
],
254+
max_tokens=100,
255+
)
256+
suggestion = response.choices[0].message.content.strip()
257+
return jsonify({"suggestion": suggestion}), 200
258+
except Exception as e:
259+
return jsonify({"error": str(e)}), 500

requirements.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
flask
22
pytest
3-
pylint
3+
pylint
4+
openai
5+
python-dotenv

0 commit comments

Comments
 (0)