← Ideas
Project Thread
Lost Pet Poster Network: Print-Ready Flyer Generator
Turn a panicked pet owner's details into a coordinated neighborhood search kit in minutes
# Lost Pet Poster Network: Print-Ready Flyer Generator ## The Problem When a beloved pet goes missing, the owner's stress response actively works against effective action—they forget details, can't think of where to post flyers, and lose precious hours to panic. Meanwhile, the "found pet" posts scattered across community boards, social media, and free item listings rarely connect with the frantic owner searching in different places. This tool transforms a panicked 45-minute scramble into a 3-minute coordinated response that blankets the neighborhood with optimized materials and surfaces existing found-pet reports. ## Who Uses It **Primary: Panicked Pet Owners** — Someone whose cat slipped out the back door 20 minutes ago or whose dog broke off-leash at the park. They're shaking, can barely type, and need the tool to think for them. **Secondary: Helpful Neighbors** — The person who spots the "lost dog" post on Nextdoor and wants to help by printing flyers to post on their block. **Tertiary: Local Business Owners** — Coffee shops, laundromats, and pet stores who want to register as "poster-friendly" locations and help reunite pets with families. **Edge Case: Animal Rescuers** — Foster networks and TNR volunteers who need to quickly generate "do you know this cat?" flyers for strays they're trying to identify. ## Core Features 1. **Panic-Mode Photo Upload** — Single large upload target that accepts any image, auto-crops to the pet, enhances for print quality, and extracts dominant colors for the flyer border. Works with blurry phone photos because that's what people have. 2. **Stress-Proof Form with Smart Defaults** — Minimal required fields (pet photo, name, contact number) with optional details that auto-expand. Last-seen location defaults to user's current GPS with one-tap confirm. Pre-fills "last seen wearing" with common options (red collar, blue harness, no collar). 3. **Print-Ready Flyer Generator** — Creates three flyer variants optimized for different contexts: (a) Full-page with large photo and tear-off contact tabs, (b) Quarter-page for bulletin board clusters, (c) Car window cling format. All export as high-DPI PDFs with crop marks. 4. **Nearby Posting Spot Finder** — Maps local businesses likely to allow window postings (coffee shops, pet stores, laundromats, community centers) within 1-mile radius of last-seen location, with addresses and hours for efficient posting routes. 5. **Found-Pet Cross-Reference** — Automatically searches free item listings and news for recent "found pet" posts matching the description, surfaces matches with confidence scores, and shows contact info for promising leads. 6. **Civic Services Quick-Connect** — One-tap access to local animal control, shelters, and municipal found-pet reporting lines. Shows which services have online lost-pet registries and pre-fills their forms where possible. 7. **Shareable Search Kit** — Generates a unique URL with the flyer, posting map, and found-pet matches that the owner can text to neighbors who want to help canvas the area. ## WellSpr.ing Integration Points ### MCP Tools (via POST https://wellspr.ing/mcp, JSON-RPC 2.0) **`get_businesses`** — Core integration. Query for pet-related and poster-friendly business types near the last-seen location: - Pet stores, veterinary clinics (high likelihood of allowing posters + may have seen the pet) - Coffee shops, laundromats, grocery stores (community bulletin boards) - Community centers, libraries (official posting spots) **`get_free_items`** — Critical for found-pet matching. Search listings for keywords like "found dog," "found cat," "stray," combined with breed/color descriptors. Surface posts from the last 14 days within a configurable radius. **`get_local_news`** — Check for any local news coverage of found pets, animal rescue events, or relevant community alerts that might surface the missing pet. **`search_civic_services`** — Find animal control offices, municipal shelters, and pet licensing departments. Query for services related to "animal control," "lost pets," "animal shelter." **`get_city_services`** — Retrieve official city services for animal-related issues, including after-hours contacts and online reporting portals. **`get_business_detail`** — When user selects a specific business from the posting map, fetch full details including hours, phone number, and any notes about community board policies. **`reach_number`** — Display the community reach metric to show users how connected their search area is, encouraging them to expand if coverage is low. **`ask_ody`** — Power a "help me think" feature where overwhelmed users can describe their situation in natural language ("my tabby cat got out near the park, she's scared of loud noises") and get contextual suggestions for search strategies. ### REST Endpoints **`GET /api/geo/portals?area_code=NNN`** — Fetch geographic portal data to understand neighborhood boundaries and suggest expanding search to adjacent areas if the pet was last seen near a border. ### Future Integrations (Not Yet Live) **Roadmap: Covenant Commerce** — When available, enable pet-friendly businesses to flag themselves as "poster-friendly" through merchant registration, creating a verified network of posting locations. **Roadmap: Alert Network** — Future capability to push lost-pet alerts to opted-in local residents, creating a distributed search party. ## Data Model ### `lost_pet_reports` | Field | Type | Notes | |-------|------|-------| | id | uuid | Primary key | | pet_name | string | Required | | pet_type | enum | dog, cat, bird, rabbit, other | | breed | string | Optional, helps matching | | color_primary | string | Extracted from photo or entered | | photo_url | string | Processed/optimized image | | last_seen_lat | float | GPS coordinates | | last_seen_lng | float | GPS coordinates | | last_seen_time | timestamp | When owner last saw pet | | contact_phone | string | Required, shown on flyers | | contact_name | string | Optional | | status | enum | active, found, closed | | share_code | string | 6-char code for shareable URL | | created_at | timestamp | | ### `flyer_variants` | Field | Type | Notes | |-------|------|-------| | id | uuid | Primary key | | report_id | uuid | FK to lost_pet_reports | | variant_type | enum | full_page, quarter, window_cling | | pdf_url | string | Generated PDF location | | accent_color | string | Extracted from pet photo | ### `found_pet_matches` | Field | Type | Notes | |-------|------|-------| | id | uuid | Primary key | | report_id | uuid | FK to lost_pet_reports | | source | enum | free_items, news, manual | | source_id | string | ID from WellSpr.ing response | | match_confidence | float | 0-1 score based on description | | reviewed | boolean | Has owner looked at this? | | matched | boolean | Owner confirmed this is their pet | ### `posting_locations` | Field | Type | Notes | |-------|------|-------| | id | uuid | Primary key | | report_id | uuid | FK to lost_pet_reports | | business_id | string | From get_businesses | | business_name | string | Cached for display | | address | string | Cached | | posted | boolean | User marked as posted |
◎

This is your project thread with Ody.
Ask questions, share screenshots, talk through the build.
Anyone with this link can join the conversation.

Paste screenshots or upload images/PDFs · Shift+Enter for new line