pperpich/ad-pilot

0

stars

28

commits

TypeScript

primary language

Oct 11, 2025

updated

README

Data Flow

  1. User inputs product name, audience, and tone.
  2. Agent 1 generates 3 ad variants.
  3. Agent 2 predicts CTR for each.
  4. Agent 3 reallocates spend accordingly.
  5. Dashboard updates in real time.

5. Tech Stack

ComponentTool
LLMAzure OpenAI (GPT-4-turbo or Claude 3.5 mini)
CTR Predictorscikit-learn regression or rule-based scoring
Data HandlingPandas + CSV / Google Sheets API
FrontendStreamlit / React + Tailwind
BackendFastAPI / Flask
HostingDaytona serverless credits

6. Task Breakdown

RoleTaskEst. Time
Dev 1Build GPT ad generator + prompt UI0.5 hr
Dev 2Implement CTR predictor (heuristic/ML)0.5 hr
Dev 3Build allocator + CSV/Sheet integration0.75 hr
Dev 4Create dashboard visualization (Streamlit/React)0.75 hr
AllIntegration, testing, and polish0.5 hr

Total: 2.5 hours


7. Stretch Goals

  • 🔁 Feedback loop: use predicted CTRs to refine ad generation prompts
  • 📈 Visualize budget changes over iterations
  • 🔗 Connect to Google Ads or Meta APIs for real ad testing
  • 🧩 Integrate Weave for agent tracing and observability

8. Demo Scenario

Input:

Product: “AI Resume Builder for Job Seekers”
Audience: “Young professionals switching careers”

Output:

  • 3 generated ad variants
  • Predicted CTRs (e.g., 3.1%, 2.6%, 4.5%)
  • Reallocated budget (e.g., $450 → best ad, $300 → next, $250 → lowest)
  • Dashboard showing rankings and spend distribution bar chart

9. Naming, Tagline & Elevator Pitch

Product Name: AdSymphony
Tagline: “Where creativity meets optimization — in perfect harmony.”
One-liner:

AdSymphony is an AI-driven marketing orchestrator that automates ad generation, evaluation, and spend optimization through intelligent agents — saving marketers hours and maximizing ROI.


10. Repository Structure

/adsymphony ├── agents/ │ ├── copywriter.py │ ├── predictor.py │ └── allocator.py ├── app.py ├── data/ │ └── spend_simulation.csv ├── frontend/ │ └── streamlit_app.py └── README.md


API Endpoints

MethodPathDescription
GET/Health root; confirms service is running.
GET/api/healthSimple ping returning status and timestamp.
POST/api/ads/generateGenerates three ad variants using the copywriter agent.

Calling POST /api/ads/generate

Example payload:

{
  "product_name": "AI Resume Builder for Job Seekers",
  "audience": "Young professionals switching careers",
  "tone": "Professional",
  "key_benefits": ["ATS-friendly formats", "Fast feedback"],
  "call_to_action": "Get started",
  "length_preference": "medium"
}

Response summary:

  • variants – array of 3 ads with variant_id, headline, body, cta.
  • metadata – request id, timestamps, token usage, model details.

Start the server with:

uvicorn app:app --reload --port 8000

Swagger UI: http://127.0.0.1:8000/docs
ReDoc: http://127.0.0.1:8000/redoc


11. Judging Fit

CriterionHow it’s addressed
Commercial Impact (TAM)$250B+ digital marketing automation industry
CompletenessEnd-to-end MVP in 2.5 hours
Human ImpactRemoves creative bottlenecks, democratizes ad optimization

Authors:
Team of 4 — AI engineer, frontend dev, ML dev, and orchestrator.
Build Time: 2.5 hours
Hackathon Track: Self-Improving Agents
Sponsors: Weave, Daytona, Serverless RL, AG-UI, Tavily, Mastra

Contributors

deysanjeeb

13 commits

pperpich

7 commits

mochiyaki

6 commits

Copilot

2 commits

pperpich/ad-pilot

0

stars

28

commits

TypeScript

primary language

Oct 11, 2025

updated

README

Data Flow

  1. User inputs product name, audience, and tone.
  2. Agent 1 generates 3 ad variants.
  3. Agent 2 predicts CTR for each.
  4. Agent 3 reallocates spend accordingly.
  5. Dashboard updates in real time.

5. Tech Stack

ComponentTool
LLMAzure OpenAI (GPT-4-turbo or Claude 3.5 mini)
CTR Predictorscikit-learn regression or rule-based scoring
Data HandlingPandas + CSV / Google Sheets API
FrontendStreamlit / React + Tailwind
BackendFastAPI / Flask
HostingDaytona serverless credits

6. Task Breakdown

RoleTaskEst. Time
Dev 1Build GPT ad generator + prompt UI0.5 hr
Dev 2Implement CTR predictor (heuristic/ML)0.5 hr
Dev 3Build allocator + CSV/Sheet integration0.75 hr
Dev 4Create dashboard visualization (Streamlit/React)0.75 hr
AllIntegration, testing, and polish0.5 hr

Total: 2.5 hours


7. Stretch Goals

  • 🔁 Feedback loop: use predicted CTRs to refine ad generation prompts
  • 📈 Visualize budget changes over iterations
  • 🔗 Connect to Google Ads or Meta APIs for real ad testing
  • 🧩 Integrate Weave for agent tracing and observability

8. Demo Scenario

Input:

Product: “AI Resume Builder for Job Seekers”
Audience: “Young professionals switching careers”

Output:

  • 3 generated ad variants
  • Predicted CTRs (e.g., 3.1%, 2.6%, 4.5%)
  • Reallocated budget (e.g., $450 → best ad, $300 → next, $250 → lowest)
  • Dashboard showing rankings and spend distribution bar chart

9. Naming, Tagline & Elevator Pitch

Product Name: AdSymphony
Tagline: “Where creativity meets optimization — in perfect harmony.”
One-liner:

AdSymphony is an AI-driven marketing orchestrator that automates ad generation, evaluation, and spend optimization through intelligent agents — saving marketers hours and maximizing ROI.


10. Repository Structure

/adsymphony ├── agents/ │ ├── copywriter.py │ ├── predictor.py │ └── allocator.py ├── app.py ├── data/ │ └── spend_simulation.csv ├── frontend/ │ └── streamlit_app.py └── README.md


API Endpoints

MethodPathDescription
GET/Health root; confirms service is running.
GET/api/healthSimple ping returning status and timestamp.
POST/api/ads/generateGenerates three ad variants using the copywriter agent.

Calling POST /api/ads/generate

Example payload:

{
  "product_name": "AI Resume Builder for Job Seekers",
  "audience": "Young professionals switching careers",
  "tone": "Professional",
  "key_benefits": ["ATS-friendly formats", "Fast feedback"],
  "call_to_action": "Get started",
  "length_preference": "medium"
}

Response summary:

  • variants – array of 3 ads with variant_id, headline, body, cta.
  • metadata – request id, timestamps, token usage, model details.

Start the server with:

uvicorn app:app --reload --port 8000

Swagger UI: http://127.0.0.1:8000/docs
ReDoc: http://127.0.0.1:8000/redoc


11. Judging Fit

CriterionHow it’s addressed
Commercial Impact (TAM)$250B+ digital marketing automation industry
CompletenessEnd-to-end MVP in 2.5 hours
Human ImpactRemoves creative bottlenecks, democratizes ad optimization

Authors:
Team of 4 — AI engineer, frontend dev, ML dev, and orchestrator.
Build Time: 2.5 hours
Hackathon Track: Self-Improving Agents
Sponsors: Weave, Daytona, Serverless RL, AG-UI, Tavily, Mastra

Contributors

deysanjeeb

13 commits

pperpich

7 commits

mochiyaki

6 commits

Copilot

2 commits

Languages

TypeScript

77.8%

Python

20.1%

CSS

1.4%