Inspiration
Students paste claim-heavy essays and posts into ChatGPT and get one vague answer with weak or invented citations. For Reverie Hacks’ ML Prompt Engineering track, we wanted a real multi-step workflow that separates extraction, retrieval, and verification—and can prove it beats a single prompt.
What it does
ClaimCheck fact-checks pasted text by:
- Extracting atomic claims
- Retrieving evidence with Firecrawl
- Verifying each claim with a Featherless LLM (supported / unsupported / unclear + confidence + citations)
- Synthesizing a report
- Optionally rewriting unsupported parts It also includes A/B evals against a one-shot “fact-check this and cite sources” baseline.
How we built it
- Python pipeline with Pydantic schemas between nodes
- Featherless (OpenAI-compatible) for extract / verify / rewrite
- Firecrawl for web evidence
- Streamlit demo UI
- Fixture set + baseline/score scripts for samples
- Docs + workflow flowchart for the track submission
Challenges we ran into
- Making retrieval degrade safely when sources fail (never crash; mark unclear)
- Getting structured JSON reliably from LLMs
- Showing a fair A/B comparison vs free-form single-prompt output
- Keeping the MVP shippable for a student hackathon timeline
Accomplishments that we're proud of
- End-to-end live pipeline with real citations (not mock-only)
- Clear claim cards judges can scan quickly
- Measurable lift in structured citation coverage vs the baseline
- Submission-ready artifacts: workflow PNG, samples, documentation, public GitHub
What we learned
Structured multi-node prompting + retrieval grounding is more reliable than one mega-prompt. Conservative verification (prefer unclear over false “supported”) matters for student trust and safety.
What's next for ClaimCheck
Classroom/API mode, source caching, stronger eval scoring with human labels, and a browser extension for drafts.
Built With
- fact-checking
- featherless
- firecrawl
- llm
- openai
- prompt-engineering
- pydantic
- python
- streamlit
Log in or sign up for Devpost to join the conversation.