AI Skill Report Card
Cataloging Embroidery Seminar Classes
Quick Start14 / 15
Given raw seminar listing text (instructor bio + class description blocks), extract each class into a standardized record:
Class #: 2102
Title: Whitework Spot Sampler
Instructor: Terri Bay
Dates: Oct 10-11, 2026 (2-day, Sat-Sun)
Location: Orlando, FL
Status: Open
Technique: Ukrainian Whitework
Proficiency: Intermediate (requires: basic whitework skills, chart reading)
Kit Cost: $60
Design Area: 6" x 8"
Kit Includes: Pearl Cotton #8/#12, linen, needles, chart/instructions
Student Provides: Standard kit + 10-11" hoop/QSnap/scroll frame, magnification/lighting
Strip instructor bios into a separate reference table (name → credentials) to avoid repeating long bios per class.
Recommendation▾
Add an example showing output in JSON format (mentioned in workflow Step 8) since only table format is demonstrated
Workflow14 / 15
Progress:
- Step 1: Identify category codes (1100, 1200, 2100, 2200, 3100, 3200, 4100, 5000) and map to day/date patterns
- Step 2: Segment raw text into individual class blocks (split on class number pattern, e.g.
\d{4}\s+[A-Z]) - Step 3: For each block, extract fixed fields: class #, title, instructor, dates, location, waitlist/open status
- Step 4: Extract description paragraph separately from the structured metadata (Technique/Proficiency/Kit Cost/Design Area/Kit Contents/Student Provides)
- Step 5: Deduplicate instructor bios — create one bio entry per instructor, reference by name elsewhere
- Step 6: Normalize proficiency levels to the four standard EGA definitions (Basic, Intermediate, Advanced, All Levels)
- Step 7: Flag missing fields (e.g., kit cost not stated, prerequisite not listed) rather than guessing
- Step 8: Output as table, JSON, or markdown cards depending on requested use case (registration planning vs. catalog browsing)
Recommendation▾
Include a 'bad output' example contrasting a poorly extracted record (e.g., merged bio+description) vs. the correct structured version
Examples16 / 20
Example 1: Input: Raw text block for class 1105 "Strawberries and Cream Needlebook" with full Eileen Bennett bio inline. Output:
| Field | Value |
|---|---|
| Class # | 1105 |
| Title | Strawberries and Cream Needlebook |
| Instructor | Eileen Bennett (see bio ref: EB-01) |
| Date | Oct 9, 2026 (1-day, Friday) |
| Status | Waitlist Available |
| Technique | Pulled Thread |
| Proficiency | Intermediate (requires cross stitch knowledge, diagram reading, linen experience) |
| Kit Cost | $75 |
| Design Area | 10" x 5" |
Bio EB-01 stored once, referenced by all her classes (1105, 2105, etc.)
Example 2: Input: "Choose a Category" filter list with codes like 2100, 2200, 3100. Output: Decoded schedule table:
| Code | Length | Days |
|---|---|---|
| 1100 | 1-day | Friday 10/9 |
| 1200 | 1-day | Monday 10/12 |
| 2100 | 2-day | Sat-Sun 10/10-10/11 |
| 2200 | 2-day | Tue-Wed 10/13-10/14 |
| 3100 | 3-day | Sat/Sun/Mon 10/10-10/12 |
| 3200 | 3-day | Mon/Tue/Wed 10/12-10/14 |
| 4100 | 4-day | Sat/Sun/Tue/Wed (Mon off) |
Recommendation▾
Address what to do with highly malformed or inconsistent source text (e.g., missing class numbers, non-standard date formats) as an edge case
Best Practices
- Keep instructor bios in a lookup table, not repeated per class — this is the single biggest redundancy in these catalogs.
- Preserve exact kit costs and dates verbatim; these are registration-critical and must not be paraphrased or rounded.
- Always normalize proficiency language to the four canonical levels even if the source text adds color ("Beginner/Intermediate" → flag as combined level, don't silently pick one).
- Surface "WAITLIST AVAILABLE" / "FULL" / open status prominently — it affects registration decisions.
- When building comparison tables across many classes, use consistent column order so users can scan technique/proficiency/cost quickly.
- Note registration deadlines (opens, change deadline, final deadline) once at the top level — don't repeat per class.
Common Pitfalls
- Don't merge the class description narrative with the structured kit/proficiency data — keep them as distinct fields.
- Don't infer a proficiency level if the listing says "All levels" with added caveats; preserve caveats as notes.
- Don't drop the "Student Provides" section — it's often required for the student to attend prepared and gets lost when summarizing.
- Don't assume date patterns from class number alone without checking the actual date text, since multi-year catalogs can reuse codes with different calendar dates.
- Don't collapse waitlist status into "unavailable" — a waitlisted class can still be joined and may auto-refund if never enrolled.