Spaces:
Running
Running
import gspread | |
from oauth2client.service_account import ServiceAccountCredentials | |
from pathlib import Path | |
import logging | |
logger = logging.getLogger(__name__) | |
''' | |
class ApplicationTracker: | |
def __init__(self, creds_path: str): | |
self.scope = ["https://www.googleapis.com/auth/spreadsheets"] | |
self.creds = ServiceAccountCredentials.from_json_keyfile_name(creds_path, self.scope) | |
def track(self, application_data: dict): | |
"""Track application in Google Sheets with enhanced fields""" | |
client = gspread.authorize(self.creds) | |
sheet = client.open("Job Applications").sheet1 | |
sheet.append_row([ | |
application_data['company'], | |
application_data['position'], | |
application_data['date'], | |
application_data['status'], | |
application_data['score'], | |
application_data['url'], | |
application_data['resume_version'], | |
application_data['notes'] | |
]) | |
''' | |
class ApplicationTracker: | |
def __init__(self, creds_path: str): | |
if not Path(creds_path).exists(): | |
raise FileNotFoundError(f"Credentials file not found at {creds_path}") | |
try: | |
self.scope = ["https://www.googleapis.com/auth/spreadsheets"] | |
self.creds = ServiceAccountCredentials.from_json_keyfile_name(creds_path, self.scope) | |
self.client = gspread.authorize(self.creds) | |
except Exception as e: | |
logger.error(f"Google Sheets auth failed: {e}") | |
raise | |
def track(self, application_data: dict, sheet_name="Job Applications"): | |
try: | |
sheet = self.client.open(sheet_name).sheet1 | |
sheet.append_row([ | |
application_data.get('company', ''), | |
application_data.get('position', ''), | |
application_data.get('date_applied', ''), | |
application_data.get('status', 'Applied'), | |
application_data.get('score', ''), | |
application_data.get('url', '') | |
]) | |
return True | |
except Exception as e: | |
logger.error(f"Tracking failed: {e}") | |
return False |