Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,6 @@ OLLAMA_ENDPOINT=http://localhost:11434
ALIBABA_ENDPOINT=https://dashscope.aliyuncs.com/compatible-mode/v1
ALIBABA_API_KEY=

MODELSCOPE_ENDPOINT=https://api-inference.modelscope.cn/v1
MODELSCOPE_API_KEY=

MOONSHOT_ENDPOINT=https://api.moonshot.cn/v1
MOONSHOT_API_KEY=

Expand Down
194 changes: 5 additions & 189 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,192 +1,8 @@
# Byte-compiled / optimized / DLL files
# Python / Streamlit

@cubic-dev-ai cubic-dev-ai Bot Aug 6, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: Rewriting .gitignore dropped the data/ entry (plus *.pdf, browser_cookies.json, cookies.json, AgentHistory.json, .venv/venv/). This is a privacy regression: data/ is where the app persists profiles, application history and resumes (the new env.example even documents PROFILE_DIR=data / APPLICATIONS_DIR=data), and it is already tracked in git — data/profile/documents/Dinesh_Satram_Resume_DS_.pdf, data/profile/profile.json and data/applications/applications.json are currently committed. Browser session cookies and personal resumes will now also be candidates for accidental commits. Please restore the ignored patterns for data/, cookie/history files and virtualenvs so user PII and session data stay out of version control. The file also documents those intentionally-removed patterns (e.g. the previous data/, *.pdf, workflow lines) as absent now.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .gitignore, line 8:

<comment>Rewriting `.gitignore` dropped the `data/` entry (plus `*.pdf`, `browser_cookies.json`, `cookies.json`, `AgentHistory.json`, `.venv`/`venv/`). This is a privacy regression: `data/` is where the app persists profiles, application history and resumes (the new `env.example` even documents `PROFILE_DIR=data` / `APPLICATIONS_DIR=data`), and it is already tracked in git — `data/profile/documents/Dinesh_Satram_Resume_DS_.pdf`, `data/profile/profile.json` and `data/applications/applications.json` are currently committed. Browser session cookies and personal resumes will now also be candidates for accidental commits. Please restore the ignored patterns for `data/`, cookie/history files and virtualenvs so user PII and session data stay out of version control. The file also documents those intentionally-removed patterns (e.g. the previous `data/`, `*.pdf`, `workflow` lines) as absent now.</comment>

<file context>
@@ -1,192 +1,8 @@
-workflow
\ No newline at end of file
+# Browser automation cache
+playwright/.cache/
</file context>
Fix with cubic

__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock

# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
.pdm.toml
.pdm-python
.pdm-build/

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
*.pyc
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
test_env/
myenv


# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
.idea/
temp
tmp


.DS_Store

private_example.py
private_example

browser_cookies.json
cookies.json
AgentHistory.json
cv_04_24.pdf
AgentHistoryList.json
*.gif

# For Sharing (.pem files)
.gradio/

# For Docker
data/

# For Config Files (Current Settings)
.config.pkl
*.pdf
.streamlit/secrets.toml

workflow
# Browser automation cache
playwright/.cache/
41 changes: 41 additions & 0 deletions .streamlit/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
[global]
# Streamlit configuration for Job Application Agent

developmentMode = false
showWarningOnDirectExecution = false

[server]
# Server configuration
port = 8501
headless = true
runOnSave = true
allowRunOnSave = true
enableCORS = false
enableXsrfProtection = true
maxUploadSize = 200

[browser]
# Browser configuration
serverAddress = "localhost"
gatherUsageStats = false
serverPort = 8501

[theme]
# Theme configuration
primaryColor = "#1f77b4"
backgroundColor = "#ffffff"
secondaryBackgroundColor = "#f0f2f6"
textColor = "#262730"
font = "sans serif"

[runner]
# Runner configuration
magicEnabled = true
postScriptGC = true
fastReruns = true
enforceSerializableSessionState = false

[client]
# Client configuration
showErrorDetails = true
toolbarMode = "minimal"
32 changes: 20 additions & 12 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
FROM python:3.11-slim-bookworm
FROM python:3.11.13-slim-bookworm

# Set platform for multi-arch builds (Docker Buildx will set this)
ARG TARGETPLATFORM
ARG NODE_MAJOR=20

# Install system dependencies (removed libgconf-2-4)
# Install system dependencies
RUN apt-get update && apt-get install -y \
wget \
netcat-traditional \
Expand All @@ -29,8 +29,6 @@ RUN apt-get update && apt-get install -y \
libxrandr2 \
xdg-utils \
fonts-liberation \
fonts-noto-color-emoji \
fonts-unifont \
dbus \
xauth \
x11vnc \
Expand All @@ -44,8 +42,7 @@ RUN apt-get update && apt-get install -y \
fonts-dejavu \
fonts-dejavu-core \
fonts-dejavu-extra \
vim \
&& rm -rf /var/lib/apt/lists/*
vim && rm -rf /var/lib/apt/lists/*

# Install noVNC
RUN git clone https://github.com/novnc/noVNC.git /opt/novnc \
Expand All @@ -57,27 +54,37 @@ RUN mkdir -p /etc/apt/keyrings \
&& curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \
&& echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \
&& apt-get update \
&& apt-get install -y nodejs \
&& apt-get install nodejs -y \
&& rm -rf /var/lib/apt/lists/*

# Verify Node.js and npm installation
# Verify Node.js and npm installation (optional, but good for debugging)
RUN node -v && npm -v && npx -v

# Set up working directory
WORKDIR /app

# Copy requirements and install Python dependencies
COPY requirements.txt .

RUN pip install --no-cache-dir -r requirements.txt

# Playwright setup
# Install playwright browsers and dependencies
# playwright documentation suggests PLAYWRIGHT_BROWSERS_PATH is still relevant
# or that playwright installs to a similar default location that Playwright would.
# Let's assume playwright respects PLAYWRIGHT_BROWSERS_PATH or its default install location is findable.
ENV PLAYWRIGHT_BROWSERS_PATH=/ms-browsers
RUN mkdir -p $PLAYWRIGHT_BROWSERS_PATH

# Install Chromium via Playwright without --with-deps
RUN PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=0 playwright install chromium
# Install recommended: Google Chrome (instead of just Chromium for better undetectability)
# The 'playwright install chrome' command might download and place it.
# The '--with-deps' equivalent for playwright install is to run 'playwright install-deps chrome' after.
# RUN playwright install chrome --with-deps

# Alternative: Install Chromium if Google Chrome is problematic in certain environments
RUN playwright install chromium --with-deps


# Copy application code
# Copy the application code
COPY . .

# Set up supervisor configuration
Expand All @@ -87,3 +94,4 @@ COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
EXPOSE 7788 6080 5901 9222

CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
#CMD ["/bin/bash"]
Loading