Photo Cleanup Reset
Decision status
Core pain
They know the problem is real, but existing solutions feel too generic, heavy, or hard to turn into a daily behavior.
Target: Gen Z users who feel stuck around photo cleanup
Value moment (30–60s)
User opens the app, answers one prompt, and gets a tiny action plan for photo cleanup in under a minute.
Return trigger: daily streak/check-in when the pain usually repeats
Next action
Run deep_dive_dossier before founder/build decision; build_ready is not automatic.
Native iOS MVP looks buildable as prompts, local history, and one shareable result screen; no backend required for v1.
Scores
0-5 component scores; Apple result_count counted only as api_metadata, not ASO popularity/difficulty.
Strongest evidence quote
I’ve emailed multiple times about my subscription as well as various requests like asking for a pdf copy of the manual and never once have I received a response and yet I’m charged every week for an app I haven’t used once in the last 6+ months because I can’t figure things out or get any help. Don’t waste your time or money.
Source coverage
| Source family | Type | Status | Confidence | Summary |
|---|---|---|---|---|
| tiktok_csi | manual_import | not_collected | 0 | No TikTok CSI/manual content-gap artifact linked to this seed. No TikTok volume or gap label invented. |
| app_store_competitors | apple_itunes_search_api | api_metadata | 4.5 | Apple iTunes Search API returned 9 App Store competitor metadata rows. Revenue/downloads/screenshots not collected. |
| reviews_pain | apple_reviews_rss | collected | 5 | Fetched 30 recent App Store reviews from top competitors; 8 low-star pain quotes and 8 gap notes. |
| aso | apple_itunes_search_api_metadata | api_metadata | 1 | Recorded 5 Apple Search API keyword metadata rows. Popularity/difficulty intentionally null until Astro/approved ASO source exists. |
| google_trends | collector_missing | not_collected | 0 | Google Trends collector is not wired; trend series, slopes, and rising queries are not fabricated. |
| reddit_community | collector_missing | not_collected | 0 | Reddit/community collector is not wired; posts/comments/upvotes are not fabricated. |
| ugc_public_web | collector_missing | not_collected | 0 | YouTube/X/public web/UGC collector is not wired; traction/comments/hooks are not fabricated. |
Evidence links
| Source family | Role | Table | Weight | Note |
|---|---|---|---|---|
| app_store_competitors | competitor | competitor_apps #86 | 3 | — |
| app_store_competitors | competitor | competitor_apps #87 | 3 | — |
| app_store_competitors | competitor | competitor_apps #88 | 3 | — |
| app_store_competitors | competitor | competitor_apps #89 | 3 | — |
| app_store_competitors | competitor | competitor_apps #90 | 3 | — |
| app_store_competitors | competitor | competitor_apps #91 | 3 | — |
| app_store_competitors | competitor | competitor_apps #92 | 3 | — |
| app_store_competitors | competitor | competitor_apps #93 | 3 | — |
| app_store_competitors | competitor | competitor_apps #94 | 3 | — |
| app_store_competitors | competitor_metadata | research_rows #412 | 2 | — |
| app_store_competitors | competitor_metadata | research_rows #413 | 2 | — |
| app_store_competitors | competitor_metadata | research_rows #414 | 2 | — |
| app_store_competitors | competitor_metadata | research_rows #415 | 2 | — |
| app_store_competitors | competitor_metadata | research_rows #416 | 2 | — |
| app_store_competitors | competitor_metadata | research_rows #417 | 2 | — |
| app_store_competitors | competitor_metadata | research_rows #418 | 2 | — |
| app_store_competitors | competitor_metadata | research_rows #419 | 2 | — |
| app_store_competitors | competitor_metadata | research_rows #420 | 2 | — |
| reviews_pain | review | reviews #114 | 2 | — |
| reviews_pain | review_row | research_rows #421 | 2 | — |
| reviews_pain | review | reviews #115 | 2 | — |
| reviews_pain | review_row | research_rows #422 | 2 | — |
| reviews_pain | review | reviews #116 | 2 | — |
| reviews_pain | review_row | research_rows #423 | 2 | — |
| reviews_pain | pain_quote | review_quotes #70 | 4 | surprise subscription or pricing pain |
| reviews_pain | competitor_gap | competitor_gap_notes #70 | 4 | surprise subscription or pricing pain |
| reviews_pain | review | reviews #117 | 2 | — |
| reviews_pain | review_row | research_rows #424 | 2 | — |
| reviews_pain | review | reviews #118 | 2 | — |
| reviews_pain | review_row | research_rows #425 | 2 | — |
| reviews_pain | review | reviews #119 | 2 | — |
| reviews_pain | review_row | research_rows #426 | 2 | — |
| reviews_pain | pain_quote | review_quotes #71 | 4 | unclear low-rating pain |
| reviews_pain | competitor_gap | competitor_gap_notes #71 | 4 | unclear low-rating pain |
| reviews_pain | review | reviews #120 | 2 | — |
| reviews_pain | review_row | research_rows #427 | 2 | — |
| reviews_pain | pain_quote | review_quotes #72 | 4 | unclear low-rating pain |
| reviews_pain | competitor_gap | competitor_gap_notes #72 | 4 | unclear low-rating pain |
| reviews_pain | review | reviews #121 | 2 | — |
| reviews_pain | review_row | research_rows #428 | 2 | — |
| reviews_pain | review | reviews #122 | 2 | — |
| reviews_pain | review_row | research_rows #429 | 2 | — |
| reviews_pain | review | reviews #123 | 2 | — |
| reviews_pain | review_row | research_rows #430 | 2 | — |
| reviews_pain | review | reviews #124 | 2 | — |
| reviews_pain | review_row | research_rows #431 | 2 | — |
| reviews_pain | pain_quote | review_quotes #73 | 4 | surprise subscription or pricing pain |
| reviews_pain | competitor_gap | competitor_gap_notes #73 | 4 | surprise subscription or pricing pain |
| reviews_pain | review | reviews #125 | 2 | — |
| reviews_pain | review_row | research_rows #432 | 2 | — |
| reviews_pain | review | reviews #126 | 2 | — |
| reviews_pain | review_row | research_rows #433 | 2 | — |
| reviews_pain | pain_quote | review_quotes #74 | 4 | unclear low-rating pain |
| reviews_pain | competitor_gap | competitor_gap_notes #74 | 4 | unclear low-rating pain |
| reviews_pain | review | reviews #127 | 2 | — |
| reviews_pain | review_row | research_rows #434 | 2 | — |
| reviews_pain | review | reviews #128 | 2 | — |
| reviews_pain | review_row | research_rows #435 | 2 | — |
| reviews_pain | review | reviews #129 | 2 | — |
| reviews_pain | review_row | research_rows #436 | 2 | — |
| reviews_pain | pain_quote | review_quotes #75 | 4 | unclear low-rating pain |
| reviews_pain | competitor_gap | competitor_gap_notes #75 | 4 | unclear low-rating pain |
| reviews_pain | review | reviews #130 | 2 | — |
| reviews_pain | review_row | research_rows #437 | 2 | — |
| reviews_pain | review | reviews #131 | 2 | — |
| reviews_pain | review_row | research_rows #438 | 2 | — |
| reviews_pain | review | reviews #132 | 2 | — |
| reviews_pain | review_row | research_rows #439 | 2 | — |
| reviews_pain | review | reviews #133 | 2 | — |
| reviews_pain | review_row | research_rows #440 | 2 | — |
| reviews_pain | review | reviews #134 | 2 | — |
| reviews_pain | review_row | research_rows #441 | 2 | — |
| reviews_pain | pain_quote | review_quotes #76 | 4 | unclear low-rating pain |
| reviews_pain | competitor_gap | competitor_gap_notes #76 | 4 | unclear low-rating pain |
| reviews_pain | review | reviews #135 | 2 | — |
| reviews_pain | review_row | research_rows #442 | 2 | — |
| reviews_pain | review | reviews #136 | 2 | — |
| reviews_pain | review_row | research_rows #443 | 2 | — |
| reviews_pain | review | reviews #137 | 2 | — |
| reviews_pain | review_row | research_rows #444 | 2 | — |
| reviews_pain | pain_quote | review_quotes #77 | 4 | surprise subscription or pricing pain |
| reviews_pain | competitor_gap | competitor_gap_notes #77 | 4 | surprise subscription or pricing pain |
| reviews_pain | review | reviews #138 | 2 | — |
| reviews_pain | review_row | research_rows #445 | 2 | — |
| reviews_pain | review | reviews #139 | 2 | — |
| reviews_pain | review_row | research_rows #446 | 2 | — |
| reviews_pain | review | reviews #140 | 2 | — |
| reviews_pain | review_row | research_rows #447 | 2 | — |
| reviews_pain | review | reviews #141 | 2 | — |
| reviews_pain | review_row | research_rows #448 | 2 | — |
| reviews_pain | review | reviews #142 | 2 | — |
| reviews_pain | review_row | research_rows #449 | 2 | — |
| reviews_pain | review | reviews #143 | 2 | — |
| reviews_pain | review_row | research_rows #450 | 2 | — |
| aso | api_metadata_keyword | aso_keyword_snapshots #28 | 1 | Apple result_count only; no popularity/difficulty. |
| aso | api_metadata_keyword | aso_keyword_snapshots #29 | 1 | Apple result_count only; no popularity/difficulty. |
| aso | api_metadata_keyword | aso_keyword_snapshots #30 | 1 | Apple result_count only; no popularity/difficulty. |
| aso | api_metadata_keyword | aso_keyword_snapshots #31 | 1 | Apple result_count only; no popularity/difficulty. |
| aso | api_metadata_keyword | aso_keyword_snapshots #32 | 1 | Apple result_count only; no popularity/difficulty. |
| superduck_review | created_candidate_card | idea_cards #8 | 5 | — |
Review quotes
Competitor gaps
Related competitors
ASO / keyword metadata
Apple Search API rows are api_metadata only. Popularity/difficulty are shown only when a real ASO source provides them.
| Keyword | Country | Source | Apps/result count | Popularity | Difficulty | Status |
|---|---|---|---|---|---|---|
| photo cleanup reset | US | Apple iTunes Search API | 5 | not collected | not collected | api_metadata |
| photo cleanup planner | US | Apple iTunes Search API | 5 | not collected | not collected | api_metadata |
| photo cleanup tracker | US | Apple iTunes Search API | 5 | not collected | not collected | api_metadata |
| photo cleanup app | US | Apple iTunes Search API | 5 | not collected | not collected | api_metadata |
| photo cleanup | US | Apple iTunes Search API | 5 | not collected | not collected | api_metadata |