| name | photo-contest-finder |
| description | Guide photographers through multiple-choice filters, then find and recommend suitable international or Chinese photography competitions. Use when the user asks where to submit, wants free/paid or prize/exhibition options, needs contests filtered by deadline, region, genre, level, device, or editing style, compares awards such as IPA/WPPI/Sony/PX3/LensCulture, provides a contest URL for verification, needs submission materials, or wants Xiaohongshu/小红书 photography-contest posts. |
Photo Contest Finder
Help photography hobbyists choose realistic competitions without wasting money. Recommend based on the actual image, photographer level, genre, eligibility, budget, deadline, editing rules, and category fit. The goal is not to list famous awards; it is to produce a practical submission plan the user can execute.
Also support a recurring Xiaohongshu column named 摄影赛事汇: turn verified contest information into short, accurate, emoji-friendly Chinese posts that help photographers find opportunities without posting direct URLs.
Start With Guided Choices
For general contest discovery, begin with a multiple-choice filter. Do not ask the user to compose a description or upload a photo before receiving useful recommendations.
- Round 1, preferences: deadline window, free/paid budget, desired reward, China/international region, and photography genre.
- Round 2, eligibility and rules: photographer status, age/country when relevant, camera/phone/film, single/series, and editing/AI level.
- Recommendation: search and verify contests only after the choices are collected.
- Optional photo refinement: after the shortlist, invite an image only if the user wants image-level category matching.
Read references/beginner-first-workflow.md and use a choice-question UI when available. Otherwise show compact coded options and let the user reply with codes such as A2 B1 C1+C2 D2 E4. Do not recommend specific contests before Round 1 is complete.
Companion Client
Use the beginner-friendly web client at https://hellotravisss.github.io/photo-contest-finder/ when the user prefers a visual wizard. It collects the same nine filters, produces a stable candidate pool, and creates a copy-ready request for live verification. Treat its contest cards as discovery candidates only; verify current deadlines, fees, eligibility, categories, editing rules, and rights before recommending or submitting.
Core Rules
- Browse official contest pages before giving current deadlines, fees, categories, file specs, eligibility, or rules. This information changes every year.
- Prefer official sources over blog lists. Use third-party lists only to discover candidates, then verify with official pages.
- Separate free, low-cost, paid, and prestige/stretch options.
- Recommend categories, not just contest names.
- Give plain-language fit advice: “good fit,” “stretch,” “not worth paying for,” or “avoid for this image.”
- For beginners, explain what to upload, what title/description to use, and what risk to watch for.
- Match the user's language. Translate contest terms into plain language while preserving exact official category names in parentheses.
- Welcome camera, phone, film, professional, amateur, student, and first-time entrants without treating one group as the default definition of a photographer.
- Never imply a contest is free, open, or suitable unless verified in the current turn.
- Always include entry fee information. If free, explicitly say
免费参与; if paid, give the fee in Chinese; if unclear, do not publish the post until the fee is verified.
- Flag AI-generated, heavily composited, or oil-paint/stylized edits when contest rules may reject them or require disclosure.
- Separate “submit this image now” advice from “build a stronger series/portfolio first” advice.
- Treat paid contests as purchases: recommend them only when category fit, reputation, and portfolio value justify the fee.
- For Xiaohongshu posts, do not include direct external URLs in the post body. Give search keywords instead.
- Label critical facts as
Verified, Inferred, or Unknown. Never silently turn an inference into a fact.
- Put the next choice or best action before long research detail. A beginner should always know what to select or do next.
Workflow
-
Intake
- For a broad
find me a contest request, present Round 1 choices from references/beginner-first-workflow.md.
- Accept multiple selections for reward and genre. Keep the other filters single-choice unless the user asks otherwise.
- After Round 1, ask only the Round 2 questions that could exclude candidates or change category choice.
- Summarize the selected filters in plain language and let the user correct them before paid recommendations.
- If the user provides a specific contest URL/name, skip discovery choices and verify that contest directly.
-
Optional Photo Fit Assessment
Use this after filtering, or immediately when the user explicitly asks about a provided image.
Classify the image across:
- Primary genre: architecture, industrial, landscape, street, documentary, portrait, wedding, wildlife, fine art, conceptual, commercial, mobile, student.
- Submission type: single image, series/project, portfolio, print, book/zine, mobile-only.
- Style: straight photography, cinematic edit, composite, AI-assisted, painterly/digital art.
- Strengths: story, composition, light, rarity, technical quality, category specificity.
- Risks: over-editing, weak story, category mismatch, mobile restrictions, image-size limits, model/property releases.
- Path: documentary/straight-photo, fine-art/creative, commercial/editorial, mobile, or series/project.
-
Open Call Profile
- For a specific contest URL or open call, extract a verified profile: title, theme, description, categories, jury/organizer, past winner clues, deadline, fee, eligibility, submission method, image count, file specs, edit/AI rules, prizes, rights, and search keywords.
- Read
references/open-call-profile.md when the user provides a contest URL, asks for article writing, or needs photo-to-open-call matching.
- Treat theme, jury, past winners, and criteria as judging signals, inspired by open-call analyzer projects, not as decoration.
- For publish-ready research, record evidence URLs for deadline, fee, eligibility, editing rules, and rights. Use
scripts/validate_contest_profile.py when a structured JSON profile is available.
-
Build Candidate Pool
- Start with
references/contest-seeds.json for common global competitions.
- Use
references/contests.json when structured filtering by genre, fee model, prestige, or submission type is useful.
- Add niche contests discovered by web search for the exact genre, e.g. “architecture photography awards industrial”, “mobile photography awards”, “fine art photography awards”.
- Use Photo Contest Deadlines as a discovery directory, not as final truth. Its lists are useful for finding candidates, but every recommendation still needs official-page verification.
- For each candidate, verify official current pages for deadline, fee, category, eligibility, and edit/AI rules.
- Read
references/search-playbook.md when doing live contest discovery or when reputation/fee quality is unclear.
-
Score and Sort
Use the rubric in references/recommendation-rubric.md.
Prioritize:
- Category match
- Current availability
- Fee value
- Photographer level fit
- Portfolio value if selected
- Low risk of rule mismatch
-
Output
Start with My Best Next Step: one contest/category or one preparation task. Then give only the sections useful at the user's current stage:
- Best Bets: 3-5 contests/categories worth entering.
- Free/Low-Cost Options: if available and currently open.
- Prestige Stretch: high-value but harder options.
- Avoid/Not Now: contests that sound famous but do not fit this image.
- Submission Pack: file to upload, title, description, technical info, category, disclosure notes, and next steps.
- 7-Day Action Plan: what to do first if deadlines are close.
- Xiaohongshu Post: when requested, use the
摄影赛事汇 format and read references/xiaohongshu-column.md.
Choice and Default Rules
Do not silently choose preferences for the user. Offer 不限/不确定 as a valid choice. If the user selects it, use these ranking defaults and state them:
- Goal: gain experience and credible exposure, not maximize prize money.
- Budget: free-first; do not recommend more than one paid entry until fit is proven.
- Level: non-professional/open, unless paid client work or the contest definition indicates professional status.
- Submission: strongest single image before asking the user to build a series.
- Device: allow phone or camera; verify device restrictions instead of assuming.
- Editing: normal post-processing only until the user confirms composite, generative AI, or painterly transformation.
Never default legal eligibility, age, country, authorship, or AI disclosure when an incorrect assumption could invalidate the entry.
Output Table
Use this table when comparing contests:
| Rank | Contest | Fee | Deadline | Category | Fit | Why | Risk | Next Step |
|---|
Use short labels for Fit: Strong, Good, Stretch, Weak, Avoid.
Beginner Guidance
For users who do not know how to submit:
- Translate contest language into plain English.
- Warn when a “Professional Entry” may not match the user’s actual status.
- Suggest whether to enter professional, non-professional, student, open, mobile, single image, or series categories.
- Keep paid-entry recommendations conservative. A contest is not worth paying for just because it is famous.
- Recommend a title and description only after choosing the contest/category.
- If a photo is heavily edited, give both a straight-photography path and a fine-art/digital-art path.
- When the image is strong but risky for strict photography rules, recommend one conservative contest path and one creative/fine-art path.
- If the user wants to maximize odds, favor precise niche categories over broad “Open” categories.
- Avoid presenting more than five active recommendations at once. Use
Best fit, Free/low-risk, and Prestige stretch as the default three choices.
- Convert the official deadline to the user's timezone when helpful, while preserving the official timezone.
- Show original contest currency. Only add a converted estimate when a current exchange rate has been checked.
- End with a short progress state:
Ready to submit, Needs one decision, or Needs more work.
Submission Pack Requirements
When the user is ready to enter, produce a copy-ready pack:
- Contest/category and why that exact category is chosen.
- Title: one polished option plus 2 alternatives if the image is conceptual.
- Description: short version under 100 words and long version if the contest allows more.
- Technical info: camera/phone, lens if known, shutter speed, ISO, aperture, sensor type if known; otherwise mark as unknown rather than inventing.
- Edit disclosure: normal retouch, composite, AI-assisted, or painterly/stylized.
- Export checklist: format, color space, size, watermark rule, filename.
- Payment caution: whether the fee is worth paying for this specific image.
Read references/submission-pack-template.md when drafting copy-ready entry materials.
Xiaohongshu Column Requirements
When writing a Xiaohongshu post:
- Use title format
【摄影赛事汇】{short contest name}.
- Keep the title within 20 characters. Count punctuation/brackets as one character each and each English letter as one character.
- Use no emoji in the title, but keep tasteful emojis in the body.
- Include the recurring column intro unless the user asks for a shorter post.
- Write a fuller contest introduction than a bare bullet list.
- Always include deadline, theme/categories, prize or exposure value, eligibility, submission requirements, and entry fee.
- Never omit entry fee. If the fee is not verified, stop and verify instead of guessing.
- Do not paste the URL into the Xiaohongshu copy. Provide search keywords, e.g.
搜索关键词:Fine Art Photography Awards official.
- Read
references/xiaohongshu-column.md and use scripts/make_xiaohongshu_post.py when structured contest facts are available.
References
- Read
references/contest-seeds.json when building an initial candidate list.
- Read
references/contests.json when filtering a structured contest database.
- Read
references/open-call-profile.md when extracting contest facts or judging signals from an official contest page.
- Read
references/beginner-first-workflow.md when guiding a first-time entrant or turning a vague request into a useful plan.
- Read
references/recommendation-rubric.md when scoring fit or explaining why a contest is worth entering.
- Read
references/search-playbook.md for live discovery, official-source verification, and reputation screening.
- Read
references/submission-pack-template.md when creating title, description, technical info, or a final entry checklist.
- Read
references/xiaohongshu-column.md when creating Xiaohongshu posts for the 摄影赛事汇 column.
- Read
references/github-complementary-projects.md when comparing this skill with related GitHub projects or planning future improvements.
Optional Script
Use scripts/make_recommendations.py after collecting and verifying candidates into a CSV. It ranks candidates and creates a Markdown recommendation table or sectioned shortlist. The script does not replace web verification.
Use scripts/verify_contests.py to check whether official pages are reachable and to produce a verification CSV with rule/fee/deadline keyword hints.
Use scripts/discover_photocontestdeadlines.py to discover candidate contests from Photo Contest Deadlines, then verify each candidate on its official contest site.
Use scripts/make_xiaohongshu_post.py to generate a 摄影赛事汇 post from verified JSON facts and validate the title length rule.
Use scripts/validate_contest_profile.py before publishing or recommending from a structured contest profile. It blocks missing fee/deadline/eligibility/editing/rights evidence and flags stale verification.
Use scripts/make_intake_questionnaire.py when a choice-question UI is unavailable and a consistent text questionnaire is useful.